两个标签之间的文字(

时间:2012-11-06 21:01:52

标签: php file-get-contents

  

可能重复:
  How to parse and process HTML with PHP?

请帮助我,我需要脚本,在加载页面上使用file_get_contents选择标记<DIV id="image">any text in source soce</DIV>之间的文本。

一位朋友告诉我,但它不起作用:

$vyber = file_get_contents($url);
preg_match_all("'<span>(.*?)</span>'si", $vyber, $get);

2 个答案:

答案 0 :(得分:0)

我不知道正则表达式是否是最好的解决方案。

你不能创建完整的正则表达式(或者你可以但需要花费很多时间)才能覆盖

<div somethingelse="" id="image"></div>
<div id="Image></div>
<div id=Image></div>

我要做的是使用html dom解析器 http://simplehtmldom.sourceforge.net/

代码如下:

<?php
    require_once('DomParserFile.php'); //Replace this ofc
    $Html = file_get_html('http://YourUrlHere.com/'); //html not file :)
    $ContentInThisDiv = $Html->fing('div#image')->src;
    echo($ContentInThisDiv);
?>

答案 1 :(得分:0)

$dom = new DOMDocument;
$dom->loadHTMLFile('http://urlhere.com');

$xpath = new DOMXPath($dom);
$nodes = $dom->getElementsByTagName('div');

    foreach($nodes as $val):
        $id = $val->getElementByid('image');
        foreach($id as $content){
            $text = $content->nodeValue;
        endforeach;
        echo $text . '</br>\n';
    endforeach;

虽然没有经过测试,但这应该可行。