2013-07-20 84 views
0

昨天我想知道是否可以在PHP中使用文件名作爲文件本身的參數......基本上,我有一個名爲「file.php」的文件,並且每當通過瀏覽器請求任何文件即「test1.php」時,我都會將文件「file.php」作爲參數傳遞給前一個文件的名稱。有可能做這樣的事情嗎?使用PHP文件名作爲文件本身的參數

<Files *.php> 
    //I call the "anotherpath/file.php" file passing as argument the filename of the file called before 
    //i.e. Call anotherpath/file.php?arg=filename of the "virtual" file 
</Files> 

「test1.php」(這是不是即使在服務器)所說的 「anotherpath/file.php」,而這一次能訪問的 「測試1」 字符串。提前致謝!

+1

我會設置一個查詢'?q = any',它將把你帶到'file.php'並在'.htaccess'中添加一個重寫規則。我不會保留'.php'擴展名。 – elclanrs

+0

我會這麼做嗎? – Fehniix

+1

這不會在'$ _SERVER ['REQUEST_URI']'下面變得可用嗎? –

回答

1

創建.htaccess文件的根目錄,該代碼添加到它。

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

現在,這會將所有請求重定向到index.php。現在,在index.php中添加此代碼,

<?php 
    echo $_SERVER['REQUEST_URI'] ; 
?> 

這將打印請求的URL到Web瀏覽器。

+0

這個伎倆,謝謝! :d – Fehniix

0

取而代之的是使用規則,另一個選項是將最後一頁存儲在會話中。就像是;

$lastpage = $_SESSION['LastPage']; 
$_SESSION['LastPage'] = 'this page.php'; 
0

url中發送的文件名:

<a href="<?php echo $_SERVER['PHP_SELF'].'?p=page1';?>" >page1</a> 
<a href="<?php echo $_SERVER['PHP_SELF'].'?p=page2';?>" >page2</a> 
<div id="main-content" > 
    <?php 
    if(isset($_GET['p'])) 
     $page = $_GET['p'].".php"; 
    else 
     $page = "default.php" 
    include($page); 
</div>