我在模板中包含了很多php页面。
<h1>
标记也在包含的页面中,但我需要动态更改它们:
<div id='xnavact'>abc</div>
JS
var a = $('#xnavact').html();
$('h1').html(a);
这有效,但我听说谷歌搜索不包含通过javascript更改的内容。
我是对的,我怎么能用php做同样的事情? 类似的东西:
<h1><?php echo $content_of_xnavact ?></h1>
但是如何在php变量中获取div的内容?
答案 0 :(得分:1)
您可以使用Symfony 2 Dom Crawler等一些软件包在PHP中解析HTML内容。
如果您只想在脚本中多次使用一个值,我认为您应该考虑将此值保存在变量中并使用它而不是将整个HTML元素存储在静态文件中并使用任何解析器。
为您使用Dom Crawler库的示例:
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\CssSelector\CssSelector;
CssSelector::disableHtmlExtension();
function getInnerHtml( $node ) {
$innerHTML= '';
$children = $node->childNodes;
foreach ($children as $child) {
$innerHTML .= $child->ownerDocument->saveHtml( $child );
}
return $innerHTML;
}
$html = <<<'HTML'
<div>
<div>foo</div>
<div id="xnavact"><span>bar</span></div>
</div>
HTML;
$crawler = new Crawler($html);
$crawler = $crawler->filter('#xnavact');
foreach ($crawler as $domElement) {
print getInnerHtml($domElement); //result: <span>bar</span>
}
答案 1 :(得分:1)
您可以使用preg_replace或我无法正确理解您的问题