无法理解如何正确地从网络获取所有信息,而不仅仅是一行而是全部。
此脚本生成输出:Array Array Array Array且只有一行。
def to_seq(s):
k, vs = s.split(":")
for v in vs.split():
yield k, v
text = sc.parallelize(["1: 6 7", "2: 5"])
res = text.flatMap(to_seq)
res.take(3)
## [('1', '6'), ('1', '7'), ('2', '5')]
答案 0 :(得分:0)
preg_match_all进行深度复杂搜索。最大值是二维数组。阅读docs
如何正确获取所有信息?
为此,要找出你只是转出所有结果信息:
print_r($pavadinimas);
print_r($miestas);
...
但我需要将所有信息放在表格中
更有创造力;如果$pavadinimas
是2d数组:
echo '<table>';
foreach($p in $pavadinimas){
echo '<tr>';
foreach($item in $p){
echo '<td>' , $item , '</td>' ;
}
echo '</tr>';
}
echo '</table>';
要反转二维数组顺序,只需在 preg_match_all 中使用标记( PREG_PATTERN_ORDER 或 PREG_SET_ORDER )(参见标记文档中的部分)。因此,您将拥有其他订单的表格。
答案 1 :(得分:0)
函数的$matches
参数将始终是一个数组 - 您需要在将变量添加到输出字符串之前处理该变量。
http://php.net/manual/en/function.preg-match-all.php
据我所知,你不能print_r
混合使用字符串和数组。
答案 2 :(得分:0)
如果所有匹配都返回相同数量的结果,这似乎是由$ output结构隐含的,则迭代其中一个结果:
$output = '';
foreach ($pavadinimas[1] as $index => $match) {
$output .= '<tr><td><img src=' . $img_link[1][$index] . '></td><td>' . $match . '</td><td>' . $miestas[1][$index] . '</td><td>' . $metai[1][$index] . '</td><td>' . $kaina[1][$index] . '</td></tr>';
}
答案 3 :(得分:0)
试试这个。它根据需要提取数据。
<table style="border: 1px solid black;" id="rounded-corner" width=100%>
<tr>
<td style="border: 1px solid black;">Nuotrauka</td>
<td style="border: 1px solid black;">Pavadinimas</td>
<td style="border: 1px solid black;">miestas</td>
<td style="border: 1px solid black;">metai</td>
<td style="border: 1px solid black;">kaina</td>
</tr>
<?php
$url = "put_your_url";
$contents = file_get_contents($url);
preg_match_all('/<span class="ttitle2".*?>(.*?)<\/span>/',$contents,$pavadinimas);
preg_match_all('/<span class="ttitle3".*?>(.*?)<\/span>/',$contents,$miestas);
preg_match_all('/<span class="ttitle1".*?>(.*?)<\/span>/',$contents,$metai_kaina);
foreach($metai_kaina[0] as $key=>$metai_kaina_val){
if($key%2==0)
$metai[] = strip_tags($metai_kaina_val);
else
$kaina[] = strip_tags($metai_kaina_val);
}
preg_match_all('/<img .*?(?=src)src=\"([^\"]+)\"/si', $contents, $img_link);
for($i=0; $i<count($pavadinimas[0]); $i++){
echo '<tr>
<td style="border: 1px solid black;"><img src="'.$img_link[1][$i+2].'"></td>
<td style="border: 1px solid black;">'.$pavadinimas[0][$i].'</td>
<td style="border: 1px solid black;">'.$miestas[0][$i].'</td>
<td style="border: 1px solid black;">'.$metai[$i].'</td>
<td style="border: 1px solid black;">'.$kaina[$i].'</td>
</tr>';
}
?>
</table>