我有一个php进程,它使用simpleHTMLdom加载HTML页面,解析所有内容并读取特定DIV类的所有实例。
然后,我创建了一个PHP数组(多维)来自那些DIV和每个中包含的UL / LI元素的数据。所有这一切都很完美,我有我需要的数据。然后我使用json_decode(来自发布到此页面/进程的JSON)将新数组对象/项插入到数组中,并根据时间戳对数组执行“排序”。
我现在要做的就是使用之前用simpleHTMLdom加载的html和
1。)清空包含我之前构建数组的所有DIV的父元素:
$html->find('.bodycontent')->innertext = '';
2。)使用PHP foreach循环遍历我的数组并重新构建所有DIV并添加到我之前清空的HTML元素中:
// variable to hold the new HTML content
$newHTMLforMeetings = '';
// loop over array and build HTML...
foreach($articles as $addMeetingItem){
$newHTMLforMeetings .= '<div class="meetingEntry">';
$newHTMLforMeetings .= ' <h2 class="meetingEntryTitle">'.$addMeetingItem['meetingTitle'].'</h2>';
$newHTMLforMeetings .= ' <div class="meetingEntryDate">'.$addMeetingItem['meetingDate'].'</div>';
$newHTMLforMeetings .= ' <div class="meetingEntryDocs">';
$newHTMLforMeetings .= ' <ul class="meetingDocs">';
foreach( $addMeetingItem['meetingDocs'] as $key => $aDoc ){
$newHTMLforMeetings .= '<li class="docliItem"> <a href="'. $addMeetingItem['meetingDocLinks'][$key] .'" class="meetingLink">'. $aDoc .'</a> </li>';
}
$newHTMLforMeetings .= ' </ul>';
$newHTMLforMeetings .= ' </div>';
$newHTMLforMeetings .= '</div>';
};
// ** THIS IS NOT WORKING FOR ME FOR SOME REASON **
// now add that newly built HTML content into the HTML element that was previously emptied
$html->find('.bodycontent')->innertext = $newHTMLforMeetings;
3。)从simpleHTMLdom获取新修改的HTML内容并将其保存到本地文件:
// a new variable that has all the HTML I want to save
$docHtml = $html->save();
// save out the HTML content to the local file
file_put_contents('NewPage.html', $docHtml);
我可以回应$ newHTMLforMeetings,它看起来很完美,包含我所有的HTML元素和数据。但是我保存的页面不包含新的元素/ HTML内容......但是我试图将它们插入IS中的容器被清空,以便IS工作。
添加HTML内容然后保存文档并能够看到我的新内容需要做什么?
(我现在也开始认为,不应该破坏和重建所有DIV,我应该使用simpleHTMLdom遍历所有DIV并确定我新添加的DIV应该位于的正确位置,然后将其插入正确的位置...我稍后会再次访问,所以现在问题只关注从我的数据数组中删除所有DIV并重建每个DIV。)
答案 0 :(得分:1)
看起来你想要:
$html->find('.bodycontent', 0)->innertext = $newHTMLforMeetings;
记住
$html->find('.bodycontent')
将返回一个数组,
$html->find('.bodycontent', $i)
将返回一个元素