【问题标题】:Content of a div inside a php variablephp 变量中 div 的内容
【发布时间】:2014-06-06 06:48:56
【问题描述】:

我在模板中有很多包含 php 的页面。

<h1> 标签也在包含的页面中,但我需要动态更改它们:

<div id='xnavact'>abc</div>

js

var a = $('#xnavact').html();
$('h1').html(a);

这可行,但我听说 Google 搜索不包含通过 javascript 更改的内容。

我说得对吗,我怎么能用 php 做同样的事情? 比如:

<h1><?php echo $content_of_xnavact ?></h1> 

但是如何在 php 变量中获取 div 的内容呢?

【问题讨论】:

  • 为什么要更改h1的内容?回显 h1 元素时直接回显有什么问题?
  • @HieuLe,我需要将此值放置在许多其他位置(侧边栏、页脚...)。
  • 使用 PHP 将它们全部打印出来(主要内容、侧边栏、页脚)?
  • @josephting,也许解释一下我关于站点配置的想法很复杂,但唯一的问题是how to get content of a div inside a php variable?
  • 这取决于“abc”的来源。如果它来自一个变量,你可以打印它。否则,您将需要 phpquery 之类的东西来帮助您在 PHP 中选择 #xnavact。见phpquery example

标签: php jquery


【解决方案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>
}

【讨论】:

    【解决方案2】:

    您可以使用preg_replace 否则我不正确理解您的问题

    【讨论】:

    • 我不敢相信这个问题还不清楚。我只是在寻找一种 php 方式来表示:variable x = content of a specific div。就像在 js 中一样 - var a = $('#xnavact').html();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多