Intereting Posts
Что такое сокращение PHP для: print var, если var существует laravel разница сеанса :: flash и request-> session-> flash Как мы можем открыть ссылку в режиме частного просмотра PHP-почта и строки не должны превышать 70 символов Как отправить JQuery Добавление строк в mysql с помощью PHP создание эскизов без их сохранения Как я могу запретить пользователям доступ к частям моего приложения Backbone, если они не вошли в систему? как предотвратить эту ошибку: Предупреждение: mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в … в строке 11 PHP показывает изображение как BLOB mysqli Как «доказательство несанкционированного доступа» является переменной $ _SERVER в php? Функция PHP для разметки тегов, за исключением списка белых тегов и атрибутов Синтаксис обратной косой черты при создании объектов Размер файла не будет отображаться на скрипте загрузки PHP во время загрузки файла Подключение к удаленной базе данных MS Access с Linux Server с помощью PHP Получение списка имен друзей из MySQL

Получение полного URL-адреса текущей страницы (PHP)

Я работаю над этой страницей: http://localhost/projectname/custom.php

И <?php echo $_SERVER['REQUEST_URI']; ?> <?php echo $_SERVER['REQUEST_URI']; ?> и <?php echo $PHP_SELF; ?> <?php echo $PHP_SELF; ?> не дают полного места. Что я должен использовать, чтобы захватить полное местоположение URL?

Solutions Collecting From Web of "Получение полного URL-адреса текущей страницы (PHP)"

 function selfURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; } function strleft($s1, $s2) { return substr($s1, 0, strpos($s1, $s2)); } 

Насколько я знаю, нет собственного метода, но вы можете использовать это:

 function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } 

Если вы пытаетесь добавить переменные обратно в конец URL-адреса, который проходит через скрипт отслеживания ссылок, например, вы можете попробовать следующее:

 $URI = array(); foreach($_GET as $key=>$val) { if ($key!="link"&&$key!="id"&&$key!="type") $URI[] = "$key=".urlencode($val); } if (sizeof($URI)>0) $link.="&".join("&",$URI); 

В этом случае «ссылка», «id» и «type» были переменными, которые мне нужны для отслеживания, но URL-адрес, который я хотел отслеживать, имел переменную на конце, которая была отключена моим скриптом, как если бы это было часть отправляемого запроса; Мне нужно было добавить его обратно к URL-адресу ссылки, прежде чем передавать его в заголовок («Расположение:». $ Link).

Если это то, чего вы пытаетесь достичь, это отлично работает и короче, чем приведенный выше пример.

проверьте этот … немного длинный и грязный, но работает хорошо …

  function absolutizeUrl ( $u, $p ) { $url = parse_url( $u ); $page = parse_url( $p ); if ( strpos( $u , '/' ) === 0 ) { //already absolute } else { $basePath = ''; if ( isset( $page[ 'path' ] ) && strpos( ltrim( $page[ 'path' ], '/' ), '/' ) ) { $baseTokens = explode( '/', $page[ 'path' ] ); array_pop( $baseTokens ); // strip basename $baseTokens[] = $u; $u = join( '/', $baseTokens ); } } if ( ! isset( $url[ 'host' ])) { $u = 'http://'.$page[ 'host' ].'/'.ltrim( $u, '/' ); } return $u; } 

Я нашел этот код очень полезным

 $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https'; // Get protocol HTTP/HTTPS $host = $_SERVER['HTTP_HOST']; // Get www.domain.com $script = $_SERVER['SCRIPT_NAME']; // Get folder/file.php $params = $_SERVER['QUERY_STRING'];// Get Parameters occupation=odesk&name=ashik $currentUrl = $protocol . '://' . $host . $script . '?' . $params; // Adding all echo $currentUrl;