gpt4 book ai didi

php - 如果404返回简单DOM PHP,如何获取新的URL

转载 作者:行者123 更新时间:2023-12-03 08:30:00 25 4
gpt4 key购买 nike

我正在尝试使用简单的dom从URL获取HTML。我尝试获取的URL只有2种可能的变体。我想做的是,如果我检查标题,当我收到404时,我需要获取其他URL。

这是我的下面的代码。我收到“意外的ELSE”错误。我不确定从这里去哪里。请不要对我的代码大笑,我对php还是很新:)

任何帮助将非常感激。

<?php                        
require_once 'libs/simple_html_dom.php';
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
list($chuck, $keep) = explode('=', $url);
list($chuck1, $keep1) = explode('/', $keep);
$myURL = "http://www.example.com/" . $chuck1 . "/" . $keep1 . "-url-1.html";
$myURL2 = "http://www.exmple.com/" . $chuck1 . "/" . $keep1 . "-url-2.html";
$patterns = array();
$patterns[0] = 'find';
$patterns[1] = 'find2';
$patterns[2] = 'find3';
$replacements = array();
$replacements[0] = 'replace1';
$replacements[1] = 'replace2';
$replacements[2] = 'replace3';
$data = str_replace($patterns, $replacements, $myURL, $element);
$data2 = str_replace($patterns, $replacements, $myURL2, $element);
$headers = @get_headers($data);
if (is_array($headers)){
if(strpos($headers[0], '404 Not Found'))
$html2 = @file_get_html($data2);
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);
else
$html = @file_get_html($data);
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);

}

?>

最佳答案

您在if-else块中缺少括号{ ... }

这样修复:

if (strpos($headers[0], '404 Not Found')) {
$html2 = @file_get_html($data2);
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);
} else {
$html = @file_get_html($data);
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);
}

仅添加用于缩进代码的标签并不会使其成为障碍。为此,您必须将其包含在 { }中。当您放置不带花括号的 if(或 elsewhile等)时,它仅适用于下一行代码。在这种情况下,您编写的代码与此等效:
if (strpos($headers[0], '404 Not Found')) {
$html2 = @file_get_html($data2);
}
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);
else // else? why is there an else here, it's not after an if! :)
$html = @file_get_html($data);
$element = $html->find('div[class="cool-attribute"]', 0);
echo str_replace($patterns, $replacements, $element);

关于php - 如果404返回简单DOM PHP,如何获取新的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28166599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com