разобрать параметры URL из html в php?

У меня есть сайт с большим количеством динамического контента. У меня есть основная страница шаблона, которая затем загружает в нее содержимое. У меня SSI работает нормально (в том числе для php-файлов), но я не могу заставить php-файлы видеть параметры URL-адреса с html-страницы. Я бы предпочел не конвертировать все мои html-файлы в php-файлы, если я могу помочь.

Следующий код попадает в файл php нормально (т.е. отображает hello world.) но что мне поставить для ???? чтобы тема передавалась из URL-адреса html во включенный файл php?

Я пробовал $_GET, который работает, если я вызываю страницу напрямую (т.е. помещаю getDynamicContent.php?topic=X в браузер), но не при вызове через #include.

.

для URL: mainPage.shtml?topic=X

.

в mainPage.shtml

//this includes fine - no problems
    <!--#include "commonHeaderStuff.html"-->

//this includes but does not parse variable
    <!--#include "getDynamicContent.php"-->

.

в getDynamicContent.php

//get topic variable
    $topic=????

//return content based on $topic
    echo "hello world";
    if($topic=="X"){echo "You passes an X"}
    else {echo "You passes a Y";}

person user3237002    schedule 26.01.2014    source источник
comment
Вы должны использовать $_GET, чтобы получить переменную из параметра URL   -  person ElendilTheTall    schedule 26.01.2014


Ответы (1)


Вам нужно использовать $_GET

if(isset($_GET['topic'])){
    $topic = $_GET['topic'];
    echo "hello world";
    if($topic == "X"){
        echo "You passes an X";
    }else{
        echo "You passes a Y";
    }
}else{
    #no topic
}

Вот моя попытка поиска способа передачи переменных во включенное из Получить URL-адрес и параметры с помощью SSI

<!-- set default value for SSI variable "topic" -->    
<!--#set var="topic" value="" -->

<!-- get "topic" value from URL --> 
<!--#if expr="$QUERY_STRING = /topic=([a-zA-Z0-9]+)/" -->
<!--#set var="topic" value="?topic=$1" -->
<!--#endif -->

<!--#include virtual="getDynamicContent.php${topic}"-->

Я только что протестировал это, и оно работает, также мне пришлось добавить virtual=, чтобы оно заработало, но вам может потребоваться изменить его на file=. вы можете изменить <!--#set var="topic" value="" --> на любое значение по умолчанию, например: value="?topic=X"

person Class    schedule 26.01.2014
comment
Спасибо, я пробовал $_GET, и это не работает. $_GET работает, если я вызываю страницу напрямую (т.е. помещаю getDynamicContent.php?topic=X в браузер), но не при вызове через #include. - person user3237002; 26.01.2014