使用 simple_html_dom 解析 php 中的 html 异构列表
parse a html heterogeneous list in php using simple_html_dom
我想解析一个包含文章标签的 html 列表,我发现 simple_html_dom 我阅读了文档,但无法顺利完成
我有像
这样的页面
<article class="post">
<div class="leftc"> <figure class="ico-2721"></figure>
<header>
<h2>
<a href="http://pop-music.ir/%d8%a2%d9%87%d9%86%da%af-%d8%ac%d8%af%db%8c%d8%af-%d9%85%db%8c%d9%84%d8%a7%d8%af-%d8%a8%d8%a7%d8%a8%d8%a7%db%8c%db%8c-%d8%a8%d9%86%d8%a7%d9%85-%db%8c%d8%a7%d8%aa%d9%88-%db%8c%d8%a7%d8%aa%d9%88"
rel="bookmark" title="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو">دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو</a>
</h2>
<span class="cat">دسته بندی :
<a href="http://pop-music.ir/category/single-music/happy-song" rel="category tag">آهنگ شاد</a>,
<a href="http://pop-music.ir/category/single-music" rel="category tag">تک آهنگ</a>
</span>
<span class="date">تاریخ : ۲۱ام اسفند, ۱۳۹۶ </span>
</header>
<p style="text-align: center;">
<img class="alignnone" title="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو" src="http://dl.pop-music.ir/images/1396/Esfand/Milad-Babaei.jpg"
alt="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو" width="500" height="500">
</p>
<p style="text-align: center;">
<a title="دانلود آهنگ جدید" href="http://pop-music.ir/" target="_blank" rel="noopener noreferrer">دانلود آهنگ جدید</a>
<strong>میلاد بابایی</strong> بنام
<strong>یاتو یاتو</strong> با بالاترین کیفیت</p>
<p style="text-align: center;">
<a href="http://pop-music.ir/" target="_blank" rel="noopener noreferrer">Download New Music</a>
<a href="http://pop-music.ir/tag/download-new-music-milad-babaei">Milad Babaei</a> – Yato Yato</p>
<p style="text-align: center;">
<span style="color: #0000ff;">ترانه: عاطفه حبیبی , موزیک: میلاد بابایی , تنظیم: امیر ارشیا</span>
</p>
<div style="text-align: center;">
<div>
<p>برای
<a title="دانلود آهنگ" href="http://pop-music.ir/tag/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A2%D9%87%D9%86%DA%AF"
target="_blank" rel="noopener noreferrer">دانلود آهنگ</a> به ادامه مطلب مراجعه کنید …</p>
</div>
</div>
<p style="text-align: center;">
</p>
<div class="morelink">
<a href="http://pop-music.ir/%d8%a2%d9%87%d9%86%da%af-%d8%ac%d8%af%db%8c%d8%af-%d9%85%db%8c%d9%84%d8%a7%d8%af-%d8%a8%d8%a7%d8%a8%d8%a7%db%8c%db%8c-%d8%a8%d9%86%d8%a7%d9%85-%db%8c%d8%a7%d8%aa%d9%88-%db%8c%d8%a7%d8%aa%d9%88">دانلود + ادامه مطلب</a>
<div class="rating"></div>
</div>
<div class="pull-left"></div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</article>
我写了这种代码,即使我知道它不好但没有其他选择
$html = new simple_html_dom();
$link=array();
foreach ($html->find('article img') as $i => $element) {
$links[$i]['src'] = $element->src;
}
$element = $html->find('article span[class=cat] a');
for ($i = 0; $i <= sizeof($element) / 2 - 1; $i++) {
$links[$i]['cat'][2 * $i + 1] = $element[2 * $i + 1]->href;
$links[$i]['cat'][2 * $i] = $element[2 * $i]->href;
}
猫物品不是通过做一些有一个有些有两个或更多
有些有,有很多这样的领域
我想做这样的事情来提高性能和更容易解析,但不知道如何做
$arti=$html->find('article')
foreach ($arti as $i => $element) {
$links[$i]['src'] = $element->img->src;
foreach ($arti->find('cat') as $j => $element) {
$links[$i]['cat'][$j] = $element->href;
}
}
有一个解决方法但不是完美的答案,我的解决方案是获取每篇文章的 outtertext 或 html 并使用 simple_htm_dom
创建其他实例
$html2 = str_get_html($html->find('article')->outertext);
然后发送html2给其他函数解析。
它不是完美的答案所以等待更好的答案
我想解析一个包含文章标签的 html 列表,我发现 simple_html_dom 我阅读了文档,但无法顺利完成
我有像
<article class="post">
<div class="leftc"> <figure class="ico-2721"></figure>
<header>
<h2>
<a href="http://pop-music.ir/%d8%a2%d9%87%d9%86%da%af-%d8%ac%d8%af%db%8c%d8%af-%d9%85%db%8c%d9%84%d8%a7%d8%af-%d8%a8%d8%a7%d8%a8%d8%a7%db%8c%db%8c-%d8%a8%d9%86%d8%a7%d9%85-%db%8c%d8%a7%d8%aa%d9%88-%db%8c%d8%a7%d8%aa%d9%88"
rel="bookmark" title="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو">دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو</a>
</h2>
<span class="cat">دسته بندی :
<a href="http://pop-music.ir/category/single-music/happy-song" rel="category tag">آهنگ شاد</a>,
<a href="http://pop-music.ir/category/single-music" rel="category tag">تک آهنگ</a>
</span>
<span class="date">تاریخ : ۲۱ام اسفند, ۱۳۹۶ </span>
</header>
<p style="text-align: center;">
<img class="alignnone" title="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو" src="http://dl.pop-music.ir/images/1396/Esfand/Milad-Babaei.jpg"
alt="دانلود آهنگ جدید میلاد بابایی بنام یاتو یاتو" width="500" height="500">
</p>
<p style="text-align: center;">
<a title="دانلود آهنگ جدید" href="http://pop-music.ir/" target="_blank" rel="noopener noreferrer">دانلود آهنگ جدید</a>
<strong>میلاد بابایی</strong> بنام
<strong>یاتو یاتو</strong> با بالاترین کیفیت</p>
<p style="text-align: center;">
<a href="http://pop-music.ir/" target="_blank" rel="noopener noreferrer">Download New Music</a>
<a href="http://pop-music.ir/tag/download-new-music-milad-babaei">Milad Babaei</a> – Yato Yato</p>
<p style="text-align: center;">
<span style="color: #0000ff;">ترانه: عاطفه حبیبی , موزیک: میلاد بابایی , تنظیم: امیر ارشیا</span>
</p>
<div style="text-align: center;">
<div>
<p>برای
<a title="دانلود آهنگ" href="http://pop-music.ir/tag/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A2%D9%87%D9%86%DA%AF"
target="_blank" rel="noopener noreferrer">دانلود آهنگ</a> به ادامه مطلب مراجعه کنید …</p>
</div>
</div>
<p style="text-align: center;">
</p>
<div class="morelink">
<a href="http://pop-music.ir/%d8%a2%d9%87%d9%86%da%af-%d8%ac%d8%af%db%8c%d8%af-%d9%85%db%8c%d9%84%d8%a7%d8%af-%d8%a8%d8%a7%d8%a8%d8%a7%db%8c%db%8c-%d8%a8%d9%86%d8%a7%d9%85-%db%8c%d8%a7%d8%aa%d9%88-%db%8c%d8%a7%d8%aa%d9%88">دانلود + ادامه مطلب</a>
<div class="rating"></div>
</div>
<div class="pull-left"></div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</article>
我写了这种代码,即使我知道它不好但没有其他选择
$html = new simple_html_dom();
$link=array();
foreach ($html->find('article img') as $i => $element) {
$links[$i]['src'] = $element->src;
}
$element = $html->find('article span[class=cat] a');
for ($i = 0; $i <= sizeof($element) / 2 - 1; $i++) {
$links[$i]['cat'][2 * $i + 1] = $element[2 * $i + 1]->href;
$links[$i]['cat'][2 * $i] = $element[2 * $i]->href;
}
猫物品不是通过做一些有一个有些有两个或更多
有些有,有很多这样的领域
我想做这样的事情来提高性能和更容易解析,但不知道如何做
$arti=$html->find('article')
foreach ($arti as $i => $element) {
$links[$i]['src'] = $element->img->src;
foreach ($arti->find('cat') as $j => $element) {
$links[$i]['cat'][$j] = $element->href;
}
}
有一个解决方法但不是完美的答案,我的解决方案是获取每篇文章的 outtertext 或 html 并使用 simple_htm_dom
创建其他实例$html2 = str_get_html($html->find('article')->outertext);
然后发送html2给其他函数解析。
它不是完美的答案所以等待更好的答案