PHP:是否可以在另一个PHP文件上使用GetElementById?

时间:2015-07-15 15:55:17

标签: php html getelementbyid

我有一个非常复杂的PHP文件,它生成了大量的HTML,但我有兴趣只将其中的一部分(在<div id="content">元素内)提取到另一个文件中。问题是,该元素是由PHP生成的。

是否可以使用PHP的本地getElementById函数从另一个PHP文件中获取content元素?甚至是从内部?

例如,像这样,但实际上工作:

$doc = new DomDocument;

// We need to validate our document before referring to the id
$doc->validateOnParse = true;
$doc->Load('file.php');

echo "The contents are: ".$doc->getElementById('content')->textContent;

我意识到这将意味着必须执行PHP来生成HTML,这可能就是为什么答案只是不,这是不可能的而且我也意识到这意味着很多额外的运行时间。我现在并不担心这些,只要这是可能的。

5 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

s.ship_date

答案 1 :(得分:0)

- &gt;加载不会'执行'PHP文件,它会看到原始来源,这可能不会有多大用处。

您可以使用http包装器功能 - 通过Web实际获取页面。 http://php.net/manual/en/wrappers.http.php

因为它是通过网络,所以php正常地由web服务器执行。

 $doc->Load('http://your-domain.com/path/to/file.php');

但效率不高。

(还有其他方法可以执行文件 - 也许使用shell_exec。或者可以'包含'文件,将其包装在输出缓冲中。但上面是最快的方法)

答案 2 :(得分:0)

我认为这应该有效。

// init the CURL
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0); // we do not want to process the headers later
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // return response as a string
curl_setopt($ch, CURLOPT_URL, 'www.mywebsite.com/file.php'); // the URL

// execute the curl
// this will basically call the URL and your PHP will execute as intended
$result = curl_exec($ch);

// use loadHTML() here
$doc->loadHTML($result);

答案 3 :(得分:0)

您可以使用$ doc-&gt; loadHTMLFile ('file.php');如果你的file.php在输出中生成一些HTML并使用 $ elems = $ doc-&gt; getElementById('content');

并在节点上做一个foreach;)

有些人在这里举例说明:http://php.net/manual/fr/domdocument.loadhtmlfile.php

编辑:请参阅test.php调用test2.php

<强> test.php的

<?php
$doc = new DomDocument;
$doc->loadHTMLFile('test2.php');
$element = $doc->getElementById('tested')->textContent;
print_r($element);
?>

<强> test2.php

<?php
echo"
<html>
<head></head>
<body>
<div id='tested'>texte ok</div>
</body>
</html>";
?>

及其工作:)

答案 4 :(得分:0)

您可以做的是编辑复杂文件添加:

ob_start() 

位于顶部,

$contents = ob_get_clean();

最后

然后像:

if(isset($_GET['getLimitedContent'])){
   $doc = new \DomDocument;
   $doc->loadHTML($contents);
   // parse out and echo the required elements
}else{
   echo $contents;
}