函数内部的代码正在运行,但由于我想要处理多个Url,我想让它成为一个使用数组来获取要处理的URL的函数。这是代码:
<?php
$site = array("http://www.ihr-apotheker.de/cs1.html", "http://www.ihr-apotheker.de/cs2.html", "http://www.ihr-apotheker.de/cs3.html");
function parseNAI($sites)
{
foreach ($sites as $html)
{
$clean_one = strstr($html, '<p>');
$clean_one_class = str_replace('<p><span class="headline">', '<p class="headline gruen"><span>', $clean_one);
$clean_one_class_a = strip_tags($clean_one_class, '<p><span><a>');
$clean_one_class_b = preg_replace("/\s+/", " ", $clean_one_class_a);
$str_one = preg_replace('#(<a.*>).*?(</a>)#', '$1$2', $clean_one_class_b);
$ausgabe_one = strip_tags($str_one, '<p>');
echo $ausgabe_one;
}
};
parseNAI($site);
?>
我的问题出在哪里,因为该功能在foreach开始时停止工作.... 提前帮助你!
答案 0 :(得分:5)
我觉得你错过了一步...可能是file_get_contents
之类的?现在你在uri上运行了一堆字符串函数,而不是uri的源代码。
请改为尝试:
<?php
$site = array("http://www.ihr-apotheker.de/cs1.html", "http://www.ihr-apotheker.de/cs2.html", "http://www.ihr-apotheker.de/cs3.html");
function parseNAI($sites)
{
foreach ($sites as $url)
{
$html = file_get_contents($url);
$clean_one = strstr($html, '<p>');
$clean_one_class = str_replace('<p><span class="headline">', '<p class="headline gruen"><span>', $clean_one);
$clean_one_class_a = strip_tags($clean_one_class, '<p><span><a>');
$clean_one_class_b = preg_replace("/\s+/", " ", $clean_one_class_a);
$str_one = preg_replace('#(<a.*>).*?(</a>)#', '$1$2', $clean_one_class_b);
$ausgabe_one = strip_tags($str_one, '<p>');
echo $ausgabe_one;
}
};
parseNAI($site);
?>
答案 1 :(得分:0)
而不是传递数组为什么不循环遍历数组并将每个元素传递给函数? - 多次调用同一个函数......
根据你的功能来判断,你不应该抓取eahc页面的内容而不仅仅是URL ???
答案 2 :(得分:0)
此行返回'',因为您的网址字符串中没有p标记..
$clean_one = strstr($html, '<p>');
你想做什么?如果您尝试获取这些网站的内容,请使用file_get_contents()或类似功能来获取网址内容。