使用下面的代码,我遇到了一个问题,但我不知道如何解决。我正在尝试从天气网站上爆炸字符串
<?php
$scrapedString = '3 day weather forecast summary:</br><span class="read-more-small"><span class="read-more-content"> <span class="phrase">';
$secondScrapedString = '</span></span></span>';
$file_headers[] = "";
if ($_GET['city']) {
$city = str_replace(' ', '', $_GET['city']);
$forecastPage = file_get_contents("https://www.weather-forecast.com/locations/" . $city . "/forecasts/latest");
if ($file_headers[0] == 'HTTP/1.1 404 not found') {
$exists = false;
} else {
$pageArray = explode($scrapedString, $forecastPage);
$secondPageArray = explode($secondScrapedString, $pageArray[1]);
$weatherResult = $secondPageArray[0];
}
}
?>
答案 0 :(得分:1)
看起来没有设置$pageArray[1]
。
只需将其包装在if
中,如果未设置,则不会发生此错误。
$secondScrapedString = '';
$file_headers[] = "";
if($_GET['city']){
$city = str_replace(' ', '', $_GET['city']);
$forecastPage = file_get_contents("https://www.weatherforecast.com/locations/".$city."/forecasts/latest");
if($file_headers[0] == 'HTTP/1.1 404 not found'){
$exists = false;
} else {
$pageArray = explode( $scrapedString, $forecastPage)
if(isset($pageArray[1])){
$secondPageArray = explode($secondScrapedString, $pageArray[1]);
if(isset($secondPageArray[0])){
$weatherResult = $secondPageArray[0];
}
}
}
}
?>
这样做似乎可以消除您的错误,但是这里似乎比未定义的索引还多。
$file_headers
会填充到哪里,可能应该检查是否在$forecastPage
中返回了数据$exists
似乎没有任何作用$scrapedString
未定义但是,仅此而已,并不是我不能确定的所有代码。
无论哪种方式,希望对您有所帮助,