这是我的代码
foreach($html->find('ul.listings li a') as $tvshow)
$tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);
foreach($html->find('li a span.epnum') as $e)
$query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating)
values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
if(!$query)
{
die(mysql_error());
}
这里$ tvshows,$ tvshow-&gt; href正在重复,我不希望它们重复。不要担心abt代码一切正常只使用两个foreach语句使重复.Pls使代码不重复。
答案 0 :(得分:2)
Curly Brackets的力量......
foreach($html->find('ul.listings li a') as $tvshow) {
$tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);
foreach($html->find('li a span.epnum') as $e) {
$query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating)
values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
if(!$query)
{
die(mysql_error());
}
}
}
我怀疑你的foreach没有嵌套,因为你没有像你应该的那样用括号括起来。
你写它们的方式,它会将它们解释为完全独立的循环。
循环1:
foreach($html->find('ul.listings li a') as $tvshow)
$tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);
循环2:
foreach($html->find('li a span.epnum') as $e)
$query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating)
values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
if(!$query)
{
die(mysql_error());
}
有意义吗?