我在另一页test1.php上有这个页面test.php,我有这个php代码在运行:
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile("http://inviatapenet.gethost.ro/sop/test1.php");
$xpath = new DOMXpath($doc);
$elements = $xpath->query("//*[@type='text/javascript']/@fid");
if (!is_null($elements)) {
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "\n";
}
}
}
?>但什么也没显示出来。
我试图从该页面中获取fid="x8qfp3cvzbxng8e“的内容:
从这条线
<script type="text/javascript"> fid="x8qfp3cvzbxng8e"; v_width=640;
v_height=360; </script>产出应如下:
x8qfp3cvzbxng8e
我要做什么?
发布于 2013-04-10 13:00:22
如果只想使用fid内容,请使用此正则表达式
preg_match_all('~fid="(.*?)"~si',$Text,$Match);
print_r($Match);输出您的样本
Array
(
[0] => Array
(
[0] => fid="x8qfp3cvzbxng8e"
)
[1] => Array
(
[0] => x8qfp3cvzbxng8e
)
)尝试以下提取文本,这没有显示任何script内容,但如果需要,可以删除此内容的条件。
function extractText($node) {
if($node==NULL)return false;
if (XML_TEXT_NODE === $node->nodeType || XML_CDATA_SECTION_NODE === $node->nodeType) {
return $node->nodeValue;
} else if (XML_ELEMENT_NODE === $node->nodeType || XML_DOCUMENT_NODE === $node->nodeType || XML_DOCUMENT_FRAG_NODE === $node->nodeType) {
if ('script' === $node->nodeName) return '';
$text = '';
foreach($node->childNodes as $childNode) {
$text .= extractText($childNode);
}
return $text;
}
}示例
$Text=file_get_contents("http://inviatapenet.gethost.ro/sop/test1.php");
preg_match_all('~fid="(.*?)"~si',$Text,$Match);
$fid=$Match[1][1];
echo $fid;https://stackoverflow.com/questions/15926549
复制相似问题