我知道如何解析HTML,我正在尝试用php代码替换goto命令
我得到了这个代码的各种错误。我试图用其各自的url回应www.forever21.com网站的类别和子类别。因此,屏幕上的输出应为: 类别-子类别1-子类别2-子类别3-url 如果我对“while”命令进行注释,然后去掉“goto”命令,我就可以让它工作了 代码如下:我知道如何解析HTML,我正在尝试用php代码替换goto命令,php,loops,web-scraping,goto,Php,Loops,Web Scraping,Goto,我得到了这个代码的各种错误。我试图用其各自的url回应www.forever21.com网站的类别和子类别。因此,屏幕上的输出应为: 类别-子类别1-子类别2-子类别3-url 如果我对“while”命令进行注释,然后去掉“goto”命令,我就可以让它工作了 代码如下: <?php $source = file_get_contents('http://www.forever21.com'); $navigation = strpos($source, '<ul cla
<?php
$source = file_get_contents('http://www.forever21.com');
$navigation = strpos($source, '<ul class="navigation">');
$navigation_end = strpos($source, '</ul>', $navigation);
$find_li_end = $navigation;
while ($href < $navigation_end) {
$find_li = strpos($source, '<li>', $find_li_end);
$find_li_end = strpos($source, '</li>', $find_li);
$cat_begin = strpos($source, 'class="dropdown-toggle">', $find_li);
$cat_end = strpos($source, '</a>', $cat_begin);
$category = substr($source, $cat_begin + 24, $cat_end - $cat_begin - 24);
$title = $cat_end;
$href_end = $cat_end;
while ($href < $find_li_end) {
again:
$href = strpos($source, 'href="', $href_end);
$href_end = strpos($source, '"', $href + 6);
if ($title === false) {
$title = $navigation_end;
}
Else {
$title = strpos($source, 'class="title"', $title);
}
if ($href > $title) {
$subcat1_begin = strpos($source, '">', $title + 14);
$subcat1_end = strpos($source, '<span', $subcat1_begin);
$subcat1 = substr($source, $subcat1_begin + 2, $subcat1_end - $subcat1_begin - 2);
$href_end = $subcat1_end;
goto again;
}
$cat_url = substr($source, $href + 6, $href_end - $href - 6);
if (strlen($cat_url) > 4) {
echo ucwords(strtolower($category));
echo " - ";
echo ucwords(strtolower($subcat1));
echo " - ";
echo ucwords(strtolower($subcat2));
echo " - ";
echo ucwords(strtolower($subcat3));
echo " - ";
echo $cat_url;
echo "<br>";
}
}
}
?>
XD谢谢你,迭戈。。。使用PHP 14年了,我从未见过有人使用goto
。无论如何。。。这个特殊的任务更适合像和这样的库。看一看,了解所涉及的技术。