繁体   English   中英

解析html-CURL和正则表达式

[英]Parse html - CURL and regular expression

如何获取文本:“文本示例上限”来自:

<td valign="top" align="left">

    <a href="/server?tree=xabaf"
    class="normal"> Text example max </a>

</td>

使用正则表达式?

include('simple_html_dom.php');
$ch = curl_init('http://www.site.com?id=325235');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$sss = curl_exec($ch);
curl_close($ch);

preg_match_all("#class="normal"?</a>$#", $sss, $arr);

使用REGEX的解决方案

$text = "<a href='/server?tree=xabaf' class='normal'> Text example max </a>
";
$regex_pattern = "/<a href=\"?\'?(.*)\"?\'?>(.*)<\/a>/";
preg_match_all($regex_pattern,$text,$matches);

PHP的DOM

$text = "<a href='/server?tree=xabaf' class='normal'> Text example max </a>";
$dom = new DOMDocument;
$dom->loadHTML($text);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link){
    echo $link->textContent;
}

使用DOM,而不使用正则表达式。

由于没有其他文本,因此应用strip_tags()就足够了。

$str ='<td valign="top" align="left">

    <a href="/server?tree=xabaf"
    class="normal"> Text example max </a>

</td>';

$str = trim(strip_tags($str));

你可以试试这个...

include('simple_html_dom.php');

$url = 'http://www.site.com?id=325235';

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);  
$str = curl_exec($curl);  
curl_close($curl);

$html = str_get_html($str);

$content = $html->find('div[class=normal]');
echo $content->innertext;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM