简介
我试图抓住一个特定的网站,因为它的头条新闻和链接相关联。然后刮取文章文本的链接页面。我正在使用cURL和simple_html_dom.php。
问题
我正在尝试安排所有这些数据;标题,链接和文章文本,在具有以下结构的多维数组中:
Array
(
[0] => Array
(
[0] => title 1
[1] => link 1
[2] => text 1
)
[1] => Array
(
[0] => title 2
[1] => link 2
[2] => text 2
)
)
但无论我如何努力实现这一目标,结构都是完全错误和错误的。如何使用链接和标题保存相应的文本?
代码
<?php
$results_page = curl($url); // Downloading the results page using curl() funtion
$html = new simple_html_dom();
$html->load($results_page);
$items = $html->find('h2[class=artTitle]'); // Exploding each h2
foreach($items as $post) {
$headlines[] = array($post->children(0)->innertext); // Saving h2 text
$url_results[] = ($post->children(0)->href); // Saving h2 link
}
foreach($url_results as $url_result) {
$results_page = curl($url_result);
$html->load($results_page);
foreach($html->find('#articleText p[!class]') as $post) // Finding all p elements inside container
$articles[] = array($post->plaintext); // Adding p elements to array
}
?>
我已经排除了我的cURL功能,因为我不认为它是这个问题的一个因素,并且不想混淆这个问题。如果需要,我当然会添加它。
以下是我目前的数组结构:
$标题的当前数组结构:
Array
(
[0] => Array
(
[0] => Headline 1¨
)
[1] => Array
(
[0] => Headline 2¨
)
)
$ url_results的当前数组结构:
Array
(
[0] => Link 1
[1] => Link 2
)
Array
$ articles的当前数组结构:
Array
(
[0] => Array
(
[0] => Paragraph 1 Text 1
)
[1] => Array
(
[0] => Paragraph 2 Text 1
)
[2] => Array
(
[0] => Paragraph 1 Text 2
)
)
答案 0 :(得分:0)
如何在第一个foreach循环中声明索引并使用它来确定子数组的位置。这样,您可以嵌套后续的foreach循环并继续进行数组构建。
foreach($items as $index=>$post) {
$desired_array[$index][0]=$post->children(0)->innertext; // Saving h2 text
$url_results=$post->children(0)->href; // Saving h2 link
foreach($url_results as $url_result) {
$results_page=curl($url_result);
$html->load($results_page);
foreach($html->find('#articleText p[!class]') as $post) // Finding all p elements inside container
$desired_array[$index][1]=""; //I don't know where $link comes from
$desired_array[$index][2]=array($post->plaintext);
}
}
}
我无法对此进行测试,因为我没有要使用的示例$items
。