【发布时间】:2013-10-01 17:11:29
【问题描述】:
我正在尝试将HTTP_HOST 与我失败的域名进行比较。为了找出造成这种情况的原因,我试图打印它的长度。令我惊讶的是,它输出了我实际域名的长度(尽管我使用的是网络代理)。
使用strlen 我会收到与var_dump() 输出中相同的长度(仅显示必要的部分):
["HTTP_HOST"]=>
string(12) "mydomain.com.s48.wbprx.com"
["SERVER_NAME"]=>
string(12) "mydomain.com.s48.wbprx.com"
我的原始域已替换为 mydomain.com,包括字符串的长度。
我很震惊,为什么我可以使用echo打印字符串并看到它的整体,但没有得到字符串的长度?即使我做了str_replace('.','', $str),它也会回复我"mydomaincom"
如果有任何帮助,我的网站也使用以下 htaccess 代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Removes .php
RewriteCond $1 !\.(gif|jpe?g|png|bmp)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
</IfModule>
我尝试过使用 .php 和不使用。结果一样。
这个结果是使用:https://incloak.com/产生的
我的 PHP 版本是 5.3.14,如果这有什么不同的话。
【问题讨论】:
-
我没有看到 strlen() echo 的输出?
-
@Martijn 事实上,我没有正确地制定自己。 strlen 给出的长度与 var_dump 中的相同
-
@Jakub 你没有看到 var_dump 输出吗?长度是 12,即使它应该是完整的字符串? "mydomain.com.s48.wbprx.com"
-
在将参数传递给
strlen之前,您应该始终先将其传递给trim。试试这个,strlen(trim($string)) -
我认为您要表达的意思是,您说该字符串是 26 个字符,但仅报告长度为 12。对吗?当你
$hh = $_SERVER['HTTP_HOST']; var_dump($hh);时会发生什么?
标签: php