如果网站抓取后声明

时间:2013-04-27 02:45:40

标签: php web-crawler

我陷入了一些问题

这是我的代码

<?php
$code='$var';
$phone='$var1';
$default='0';
$html = file_get_contents('http://www.phunwa.com/phone/0191/2604122');
$name = preg_replace('/(.*)(<p><strong>Name:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);

$myVar = isset($name)?$name:$default;

$address = preg_replace('/(.*)(<p><strong>Address:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);
$location = preg_replace('/(.*)(<p><strong>Location:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);
$othernumbers = preg_replace('/(.*)(<p><strong>Other Numbers:<\/strong> )(.*)/mis','$3',$html);
list($othernumbers,$trash)= preg_split('/<\/p>/mis',$othernumbers,0);

if ($myVar ==0){echo 'Not Found'; }
else{echo 'name: '.$myVar.'<br>address: '.$address.'<br>location: '.$location.'<br>other numbers: '.$othernumbers;
}
exit;
?>

我正在尝试ftech网站数据。如果phoen编号存在,代码正在使用if语句。如果电话号码存在,原始网站说“未找到”。但是如果存在数量,我的代码就不会被处理。

以下是源网站中的标签,显示未找到该号码时。

<h1 class="second-page-title">Not found: 00191 - 2530152</h1>

我试图制作一些默认值。我的代码因找不到条件而失败。 在上面的代码中,数字有效并退出,如果删除“if”语句,它将回显结果。如果你给任意随机数。它会显示“未找到。 请帮我解决这个问题。 谢谢

新编辑

问题是如果我没有返回所需的值,我无法找到将变量$ name指定为0的方式。虽然它总是为myVAR变成1。 :(

经过漫长的等待所有PHP大师的回复。 在临时的基础上,我使用了if(strtoupper($ name)== $ name)语句,因为幸运的是所有的$ name都是大写字母。它不是永久的解决方案,但它现在正在工作。

我还在等待专家建议。

1 个答案:

答案 0 :(得分:0)

使用if ($myVar =='0'){echo 'Not Found'; }

更好的语法是$myVar = (isset($name)) ? $name : $default;