我被困住了。我试图从远程网站中提取预定义标签内的所有html标签,其属性和文本内容。
实施例:
<div id="its attributes">its text content</div>
我可以使用php的DOMDocument类使用他们的id或类提取任何标记,我只是不能告诉php限制返回到预定义标记。
实施例:
<div id="predefined">... return all this ...</div>
我没有任何代码示例,因为我已尝试过众多搜索中的众多选项,并且所有选项都会返回错误结果。
你能帮忙吗?
更新:我在这里找到了答案: PHP function to grab all links inside a <DIV> on remote site using scrape method
感谢所有帮助。
答案 0 :(得分:0)
您可以使用getElementById
,然后访问nodeValue
:
$doc->loadHTML('<html><body><div id="predefined">... return all this ...</div></body></html>');
$i = $doc->getElementById('predefined');
echo $i->nodeValue;
答案 1 :(得分:0)
如果您想了解JavaScript和jQuery:
假设这个HTML:
<div id="predefined">... return all this ...</div>
使用此JavaScript代码(使用jQuery)(我试图让它变得简单,但如果你学得很好,你会做得更好):
// To get the content from a single HTML tag
var theID = "predefined";
var theContent = $("#" + theID).text(); // Or .html() if you want the whole content
// To POST the extracted content to your PHP page in order to write to your mySQL db
$.ajax({
type: "POST",
url: "http://www.myapp.com/mypage.php",
data: { id: theID, content: theContent },
success: function(response){ // just in case you need a response from your PHP stuff
alert(response);
}
});
然后在你的PHP“http://www.myapp.com/mypage.php”中:
<?php
$id = $_POST["id"];
$content = $_POST["content"];
// Note: Always sanitize posted data, to prevent injections and other malicious code.
// Here you can save the data to your MySQL db
echo "it worked!"; // This is the response that your "success" function will get in your Javascript code
?>
好吧,我不确定这是你特殊情况的最佳答案,但无论如何你真的应该学习JavaScript =)