任何人都可以解释4行PHP代码我很困惑

时间:2010-08-10 11:29:21

标签: php preg-match-all

代码 -

$res=$this->post("http://address.mail.yahoo.com/?_src=&VPC=print",$post_elements);
    $emailA=array();
    $bulk=array();
    $res=str_replace(array('  ','   ',PHP_EOL,"\n","\r\n"),array('','','','',''),$res);
    preg_match_all("#\<tr class\=\"phead\"\>\<td colspan\=\"2\"\>(.+)\<\/tr\>(.+)\<div class\=\"first\"\>\<\/div\>\<div\>\<\/div\>(.+)\<\/div\>#U",$res,$bulk);

$post_element是一个数组,我主要关注str_replacepreg_replace_all函数行

3 个答案:

答案 0 :(得分:2)

$res = str_replace(
    array('  ','   ',PHP_EOL,"\n","\r\n"),
    array('','','','',''),
    $res);

表示:用第二个数组中的值替换第一个数组中的字符串,例如:将两个空格变为空,将三个空格变为空,将平台相关的换行符转为空,将换行符转为空,将转行后跟换行后转为空。

preg_match_all("#\<tr class\=\"phead\"\>\<td colspan\=\"2\"\>(.+)\<\/tr\>(.+)\<div class\=\"first\"\>\<\/div\>\<div\>\<\/div\>(.+)\<\/div\>#U",$res,$bulk);

意味着开发人员不知道不应该使用Regex解析HTML。

答案 1 :(得分:0)

在那个代码中,str_replace删除了空白字符和preg_match_all匹配的hge中的一些值,代码中没有preg_replace_all

答案 2 :(得分:0)

$res=$this->post("http://address.mail.yahoo.com/?_src=&VPC=print",$post_elements);
$emailA=array();

- &GT;将数据发布到http://address.mail.yahoo.com/?_src=&VPC=print并获取响应,分配给$ res

$res=str_replace(array('  ','   ',PHP_EOL,"\n","\r\n"),array('','','','',''),$res);

- &GT;删除任何while-space,tab-space,end-line ......

并在此引用最后一个 http://php.net/manual/en/function.preg-match-all.php