Кто-нибудь может объяснить, что 4 строки кода PHP Я так запутался - PullRequest
0 голосов
/ 10 августа 2010

код-

$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_replace и preg_replace_all функциональной линией

Ответы [ 3 ]

2 голосов
/ 10 августа 2010
$res = str_replace(
    array('  ','   ',PHP_EOL,"\n","\r\n"),
    array('','','','',''),
    $res);

означает: заменить строки в первом массиве значениями во втором массиве, например, превратить два пробела в ничто, превратить три пробела в ничто, превратить зависимый от платформы символ новой строки в ничто, превратить символ новой строки в ничто, превратить carriagereturn с последующим переводом строки в ничто.

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

означает, что разработчик не имел ни малейшего понятия, что HTML не должен анализироваться с Regex.

0 голосов
/ 10 августа 2010
$res=$this->post("http://address.mail.yahoo.com/?_src=&VPC=print",$post_elements);
$emailA=array();

-> отправить данные на http://address.mail.yahoo.com/?_src=&VPC=print и получить ответ, присвоить $ res

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

-> удалить любой интервал, табуляцию, конец строки ...

и ссылка здесь для последнего http://php.net/manual/en/function.preg-match-all.php

0 голосов
/ 10 августа 2010

в этом коде str_replace удаляет пробельные символы и preg_match_all соответствует путем регулярного выражения некоторых значений в html, preg_replace_all в коде нет

...