【问题标题】:If a div has class "one-two-three" then如果一个 div 的类是“一二三”,那么
【发布时间】:2012-08-19 18:44:42
【问题描述】:

我目前正在开发一个网站。而且我需要使用PHP来选择一个具有特定类的div。例如:

<body>

<div class="header"></div>
<div class="other-class"></div>
<div class="one-two-three"></div>
<div class="footer"></div>

</body>

<?php
    if(div.hasClass('one-two-three'))
    {
        //function code here...
    }
?>

但请记住,我想为此使用 PHP 而不是 jQuery...

【问题讨论】:

  • 那你想做什么?看来php不是合适的工具……
  • 这很奇怪,可能是不可能的。你到底想做什么?为什么div内容发送到浏览器后还要用php处理?
  • 你不能:php 是服务器端,JavaScript 是你应该寻找的地方。此外,您的 PHP 代码看起来就像 jQuery,无论如何它都不是有效的 php
  • 我知道代码无效,但它显示了我想要的。我只是想知道这是否可能......
  • 这是一个奇怪的要求,你到底想做什么? PHP 不是 Javascript 的替代品。这有点像说我想使用 PHP 而不是 CSS – 服务器端 (PHP/Python/Ruby/ASP.net 等) + JS + CSS + HTML = 网页 – 通常你需要每个4.

标签: php class select html


【解决方案1】:

如果你想操作 DOM,在将它发送到客户端之前,Dom 对象会提供你需要的东西。它甚至具有与您可能已经从 JS 中知道的方法类似的方法。

$htmlString = '<html>...</html>';//either generated, or loaded from a file
$dom = new DOMDocument;
$dom->loadHTML($htmlString);//or loadHTMLFile
$divs = $dom->getElementsByTagName('div');
foreach($divs as $div)
{
    if ($div->hasAttribute('class') && strstr($div->getAttribute('class'), 'one-two-three'))
    {
        //$div ~= <div class='one-two-three'>
        $div->appendChild();//check the docs to see what you can do
    }
}

这里有一个overview of the methods 供您使用

【讨论】:

  • strstr 也将匹配如果元素有一个类one-two-three-four。可能需要先对其进行标记。
【解决方案2】:

为此使用 simplephpdom 库。您可以像在 jquery 中一样使用选择器选择表单元素。

http://simplehtmldom.sourceforge.net

【讨论】:

  • 感谢您提供此链接。我想我毕竟会使用 jQuery。但我会调查一下。谢谢!
  • 不知道存在但对我来说似乎是一件奇怪的事情,不必要的图书馆。如果有人知道这种东西的一个很好的应用,我很想听听!
  • 如果你想轻松抓取网页,这个库非常有用。
【解决方案3】:

您可能会使用 php 将内容填充到 div 中,然后您可以先处理您的内容,然后将其打印到 div 中。如果您需要在 div 已经在浏览器中时对 div 的内容进行处理,您将需要使用 javascript 来执行此操作,或者调用 php 脚本进行处理,使用 ajax 调用后端的 php 脚本并检索响应.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 2023-04-09
    • 2016-02-24
    • 2016-01-31
    • 2019-02-23
    • 1970-01-01
    • 2015-06-02
    相关资源
    最近更新 更多