0

我正在尝试 curl searchbug.com 以查看它是否返回短语:“VoIP(IP 语音,互联网电话)”如果返回,则 make $voip==TRUE;

这就是我所拥有的,并且我确信我在这里遗漏了一些东西。非常感谢我能得到的任何帮助!

$url = 'http://www.searchbug.com/tools/landline-or-cellphone.aspx?&FULLPHONE=2093201364';
$useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2';
$ch = curl_init($link);

curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

if ($response="VoIP (Voice over IP, Internet Phone)") { $voip==True; }
4

1 回答 1

1

第一点。不要从输出中排除正文。

你用:

curl_setopt($ch, CURLOPT_NOBODY, true);

PHP 文档说:

CURLOPT_NOBODY - TRUE 从输出中排除正文。

第二点。更好地检查响应

你做什么。您将“VoIP(IP 语音,互联网电话)”字符串值分配给 $response,然后检查它是否不为空。是的,它不为空。

if ($response="VoIP (Voice over IP, Internet Phone)") { $voip==True; }

那么 php 执行
第三个错误点

$voip==True;  // Wrong! It is a conditional expression
$voip = true; // Ok;

删除 curl_setopt($ch, CURLOPT_NOBODY, true); 试试这个:

if ( strpos($response, "VoIP (Voice over IP, Internet Phone)") !== false )
{
    $voip = true;
}

$response 可能包含大量数据。所以strpos可能会有所帮助。

于 2013-04-07T18:02:30.263 回答