我遇到了一个问题,PHP正在逃避我在这段代码中真正不想要的地方:
$url_ = stripslashes(((substr(strtolower($url),0,7)!="http://")? "http://".$url:$url));
$host = $this->googleDomains[mt_rand(0,count($this->googleDomains)-1)];
$target = "/search?";
$querystring = sprintf("client=navclient-auto&ch=%s&features=Rank&q=%s",
$this->CheckHash($this->HashURL($url_)),urlencode("info:".$url_));
$contents="";
$this->debugRes("host", $host);
$this->debugRes("query_string", $querystring);
$this->debugRes("user_agent", $this->userAgent);
因此产生这样的URL,导致脚本失败:
{"urls":[{"url":"hostcule.com","converted_url":"http:\/\/toolbarqueries.google.com\/search??client=navclient-auto&ch=74451333464&features=Rank&q=info%3Ahttp%3A%2F%2Fhostcule.com"}]}
如何阻止它?
魔术行情已关闭。
以下是$ url来自:
foreach (preg_split('#[\r\n]+#', $_POST['urls']) as $url) {
$url = trim($url);
if ($url)
$_SESSION['converted_urls'][] = array('url' => $url, 'converted_url' => $pr->GetPR($url, true, true));
}
在这个阶段,$ _POST ['urls']看起来像:
{"urls":[{"url":"hostcule.com","converted_url":"http:\/\/www.google.com\/search??client=navclient-auto&ch=74451333464&features=Rank&q=info%3Ahttp%3A%2F%2Fhostcule.com"}]}
虽然$ url看起来像
{"urls":[{"url":"hostcule.com","converted_url":"http:\/\/www.google.com\/search??client=navclient-auto&ch=74451333464&features=Rank&q=info%3Ahttp%3A%2F%2Fhostcule.com"}]}
答案 0 :(得分:2)
该代码中没有任何内容可以生成您引用的代码。
我怀疑$url
已经包含了乱码http\/\/
,因此你的http://识别机制永远不会触发。
您需要退一步看看$url
的来源。你的问题就在那里。
答案 1 :(得分:1)
你在那里的代码根本没有任何逃避。您需要在此行之后将您所做的内容发布到$ url_。
答案 2 :(得分:0)
使用'代替“