我正在接着另一个开发人员拿起这些碎片并找到了这个片段。它没有评论,我很难解释它为什么存在。在requests.php中可以找到它。
$host = $_SERVER['HTTP_HOST'];
$self = $_SERVER['PHP_SELF'];
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self";
有什么想法吗?
更新 我能够理解URL已被解析,但我无法理解为什么(这应该是任何代码文档的本质)。我不认为这需要投票。提供了代码和问题,我将其打开,以便不指导答案。对这样一个问题的无数回答表明这不是一件坏事。
答案 0 :(得分:2)
$host = $_SERVER['HTTP_HOST']; // returns the host of the site
$self = $_SERVER['PHP_SELF']; // returns the current page
/*
* a ternary condition asking if the URL has a query string,
* if so make $query equal to the string,
* if not make $query null
*/
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
/*
* a ternary condition checking if $query is empty
* if it isn't, concatenate the three elements
* if it is only concatenate two of them
*/
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self";
答案 1 :(得分:1)
它正在尝试解析当前正在执行的页面的URL。所以:
http://example.com/somepage.php?foo=bar
将是:
$host = 'example.com';
$self = '/somepage.php';
$query = 'foo=bar';
答案 2 :(得分:0)
如果您的网页位于http://www.test.com/test.php?x=y&1=2
$ query will ='x = y& 1 = 2'
和...
$ url will ='http://www.test.com/test.php?x=y&1=2'
例如,当您在某些页面上时,或者仅在存在查询等情况下,这可用于显示某些内容...
答案 3 :(得分:0)
$host = $_SERVER['HTTP_HOST']; // gets host header
$self = $_SERVER['PHP_SELF']; // filename of current file
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null; // if the query string is not empty (query string is stuff after the `?` in the URL) set `$query` to that else set it to null
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self"; // if `$query` is not empty print a url with the host the name of the current file and the query string else just print a url with the host and current file
答案 4 :(得分:0)
服务器的域名
$host = $_SERVER['HTTP_HOST'];
目前正在执行的脚本。
$self = $_SERVER['PHP_SELF'];
如果服务器查询字符串不为null,则查询将等于服务器的查询字符串,否则查询将等于null。
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
如果查询不为null,则url将等于$host.$self.$query
,否则它的末尾没有查询字符串。
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self";