卷曲特定的行/短语

时间:2013-04-07 09:47:44

标签: php 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; }

1 个答案:

答案 0 :(得分:1)

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

您使用:

curl_setopt($ch, CURLOPT_NOBODY, true);

PHP documentation说:

  

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

第二点。更好地检查回复

你做什么。您将“VoIP(Voice over IP,Internet Phone)”字符串值分配给$ response,然后检查它是否为null。是的,它不是空的。

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

然后php执行
第三个错误点

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

Drop curl_setopt($ ch,CURLOPT_NOBODY,true);并试着这样做:

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

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