Bae*_*ehr 3 php file-get-contents
有谁可能知道如何使用PHP获取HTML文档中特定元素的值?我现在正在做的是使用file_get_contents
从另一个网站提取HTML代码,并在该网站上有一个textarea:
<textarea id="body" name="body" rows="12" cols="75" tabindex="1">Hello World!</textarea>
Run Code Online (Sandbox Code Playgroud)
我想做的就是让我的脚本完成,file_get_contents
然后拔出"Hello World!" 来自textarea.那可能吗?很抱歉打扰你们,再次,你们给出了一些有用的建议:].
不要抱怨我们,这是一个很好的问题,我很乐意回答.您可以使用PHP Simple HTML DOM Parser来获得所需内容:
$html = file_get_html('http://www.domain.com/');
$textarea = $html->find('textarea[id=body]');
$contents = $textarea->innertext;
echo $contents; // Outputs 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
如果你想使用file_get_contents()
,你可以这样做:
$raw_html = file_get_contents('http://www.domain.com/');
$html = str_get_html($raw_html);
...
Run Code Online (Sandbox Code Playgroud)
虽然我没有看到任何需要,file_get_contents()
因为您可以使用该outertext
方法获取原始的完整HTML,如果您需要它在某处:
$html = file_get_html('http://www.domain.com/');
$raw_html = $html->outertext;
Run Code Online (Sandbox Code Playgroud)
只是为了踢,你也可以使用单行正则表达式:
preg_match('~<textarea id="body".*?>(.*?)</textarea>~', file_get_contents('http://www.domain.com/'), $matches);
echo $matches[1][0]; // Outputs 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
我强烈建议不要这样做,因为你更容易受到代码更改的影响,这可能会破坏这个正则表达式.