类似于jQuery的PHP接口?

2020/12/31 22:31 · jquery ·  · 0评论

我很好奇是否存在用于处理HTML / XML文件的PHP的jQuery风格的界面/库,特别是使用jQuery风格的选择器

我想做这样的事情(都是假设的):

foreach(j(“ div> p> a”)作为锚点){
   // ...
}


打印j(“#some_id”)-> html();


打印j(“ a”)-> eq(0)-> attr(“ name”);

这些只是几个例子。

我做了很多谷歌搜索,但是找不到我想要的东西。有人知道这些方面是否存在吗,还是我自己必须使用domxml从头开始做这些事情?

PHP简单HTML DOM解析器使用jQuery样式的选择器。文档中的示例

修改HTML元素:

// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');

$html->find('div', 1)->class = 'bar';

$html->find('div[id=hello]', 0)->innertext = 'foo';

echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>

刮Slashdot:

// Create DOM from URL
$html = file_get_html('http://slashdot.org/');

// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']     = $article->find('div.title', 0)->plaintext;
    $item['intro']    = $article->find('div.intro', 0)->plaintext;
    $item['details'] = $article->find('div.details', 0)->plaintext;
    $articles[] = $item;
}

print_r($articles);

做一些更多的狩猎,我想我可能已经找到了我想要的东西:

phpQuery-PHP的jQuery端口

感谢大家的回答,我一定会记住其他用途。

这个问题很老,但是您需要的是Query Path

相信我,您正在寻找xPath。我给你看一个例子

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
$dom = new DOMDocument;
libxml_use_internal_errors(TRUE);
$dom->loadHTMLFile('http://somewhereinblog.net');

libxml_clear_errors();

$xPath = new DOMXPath($dom);
$links = $xPath->query('//h1//a'); //This is xPath. Really nice and better than anything
foreach($links as $link) {
    printf("<p><a href='%s'>%s</a></p>\n", $link->getAttribute('href'), $link->nodeValue);
}
?>

我发现的最好的是https://github.com/scotteh/php-dom-wrapper

它的工作方式与jQuery非常相似,而且速度很快。

我从其他答案中尝试了许多库,但没有设法轻松移植我在jQuery中所做的操作。有了这个,轻而易举。我想它将很快变得越来越流行...

http://fluentdom.org/是另一种选择。

我写了一个库,该库复制了PHP中jQuery的DOM操作方法,但是它使用的是xpath,而不是jquery样式选择器。否则,它的工作原理几乎相同。

[http://pxtreme.sourceforge.net] [1]

$doc = px("index.html"); // Create a px Object
$headings=$doc->xpath("/html/body/h2"); // Select Elements to Manipulate
$headings->addClass("NewLook"); // Change their Appearance
px("index.html")->xpath("//h2")->addClass("NewLook"); // All in One Line

// use anonymous functions in PHP 5.3
$doc->xpath("//p")->each( function ($pxObject, $index) {
  $str = $pxObject->get($index)->text();
  if (mb_strpos($str, "pxtreme"))
   $px->attr("title", "Check out this paragraph!");
});

http://pxtreme.sourceforge.net

HtmlPageDom扩展了Symfony的DOM爬网程序,并添加了类似jQuery的DOM操作功能。

我的替代方法是https://github.com/gymadarasz/xparser

快速且易于使用,例如:

$x('#nav a', function($elem) {
  $elem->href = '//myurl/' . $elem->href;
});

可能是simplexml它的语法与jquery不同,但是确实使遍历XML变得非常容易。

但是,它对于无效XML的HTML将不起作用。

您是否研究过使用PHP的DOMDocument类?

http://us2.php.net/manual/zh/book.dom.php

不确定这是否正是您要查找的内容,但是它确实允许通过各种属性和其他类似的DOM操作搜索文档。

如果您使用的是现代框架,则也应该检查一下。

可以通过composer安装这些组件。

本文地址:http://jquery.askforanswer.com/leisiyujquerydephpjiekou.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!