В PHP, как я могу получить любую строку после домена, чтобы быть переменной PHP? Пример: me.com/FOO, me.com/VAR3 - PullRequest
1 голос
/ 27 мая 2010

, поэтому мой index.php может быть таким:

<?php
      $restOfURL = ''; //idk how to get this
      print $restOfURL; //this should print 'FOO', 'VAR3', or any string after the domain.
 ?>

Ответы [ 6 ]

4 голосов
/ 27 мая 2010

Вы хотите использовать,

<?php
    $restOfURL = $_SERVER['REQUEST_URI'];

    // If you want to remove the slash at the beginning you can use ltrim()
    $restOfURL = ltrim($restOfURL, "/");
?>

Вы можете найти больше предопределенных серверных переменных в документации PHP .

Обновление
Исходя из вашего комментария к вопросу, я предполагаю, что вы используете что-то вроде mod_rewrite, чтобы переписать FOO и т. Д. И перенаправить все в один файл (index.php). В этом случае я ожидаю, что остальная часть URL уже будет передана в файл index.php. Однако, если нет, вы можете использовать mod_rewrite, чтобы передать оставшуюся часть URL-адреса как переменную GET, а затем просто использовать эту переменную GET в файле index.php.

Так что если вы включите mod_rewrite , а затем добавите что-то подобное в ваш файл .htaccess,

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

Тогда остальная часть URL будет доступна вам в вашем файле index.php из переменной $_GET['url'].

1 голос
/ 27 мая 2010

Просто взглянув на примеры, я думаю, что вы ищете apache mod_rewrite. Вы можете применить RewriteRule через файл htaccess, например:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([\w]+)$ /checkin.php?string=$1 [L]

Например, этот URL http://foo.com/aka2 будет обработан сценарием checkin.php, и «aka2» будет передано как $ _GET ['string'].

Не заблуждайтесь, URL будет по-прежнему отображаться в браузере как http://foo.com/aka2, но сервер фактически обработает http://foo.com/checkin.php?string=aka

документация mod_rewrite

1 голос
/ 27 мая 2010

Чтение $_SERVER['REQUEST_URI'], как все отмечали, может сказать вам, как выглядит URL, но на самом деле это не работает так, как вы хотите, если у вас нет способа указать запросы для me.com/VALUE1 и me.com/VALUE2 к сценарию, который будет выполнять обработку. (В противном случае ваш сервер вернет ошибку 404, если у вас нет сценария для каждого требуемого значения, и в этом случае сценарий уже знает значение ...)

Предполагая, что вы используете apache, вы хотите использовать mod_rewrite . Вам нужно будет установить и включить модуль, а затем добавить некоторые директивы в ваш .htaccess, httpd.conf или конфигурацию виртуального хоста. Это позволяет сделать запрос для me.com/XXX сопоставления внутри с me.com/index.php?var=XXX, чтобы вы могли прочитать значение из $_GET['var'].

1 голос
/ 27 мая 2010
$var = ltrim( $_SERVER['REQUEST_URI'], '/' )

http://www.php.net/manual/en/reserved.variables.server.php

0 голосов
/ 28 мая 2010

Зачем беспокоиться о всех модных бизнесах mod_rewrite / query_string? Уже $_SERVER['PATH_INFO'] доступно только для таких данных.

0 голосов
/ 27 мая 2010
$_SERVER['REQUEST_URI']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...