2013-07-20 3 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", и это можно доступ "test1" строка. Заранее спасибо!

+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-адрес в веб-браузере.

+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> 
Смежные вопросы