php变量中div的内容

时间:2014-04-22 04:28:41

标签: php jquery

我在模板中包含了很多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的内容?

2 个答案:

答案 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或我无法正确理解您的问题