根据我数据库中的用户名,我使用以下代码来解析远程网站的定义。我使用简单的html dom解析器。
//database connection
include 'db.php';
//display errors
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include 'simple_html_dom.php';
//select usernames order alphabetically
$row = mysqli_query($conn, "SELECT user_name FROM (
SELECT *
FROM store
ORDER BY user_id DESC)
AS store ORDER BY user_id ASC");
//echo out definitions of usernames
while($lastusers = mysqli_fetch_array($row)) {
echo '<br>' . $lastusers["user_name"];
echo '<br>Definition:<br>';
$html = file_get_html("https://www.merriam-webster.com/dictionary/" . $lastusers["user_name"]);
$title = $html->find("div.card-primary-content", 0)->innertext;
echo $title;
//save definitions to corresponding username
$save = mysqli_query($conn, 'UPDATE store
SET def = $title,
WHERE user_name = $lastusers["user_name"]'
)
}
我的while循环将开始为每个用户名生成定义,直到找不到某些页面,从而导致出现停止循环的错误。
警告: 的file_get_contents(https://www.merriam-webster.com/dictionary/colourings): 无法打开流:HTTP请求失败!找不到HTTP / 1.0 404 第75行/app/simple_html_dom.php致命错误:致电会员 在第18行的/app/test.php中的boolean函数中找到find()
我的问题是如何跳过抛出错误的用户名并继续循环?另外因为它们的用户名超过500个,所以这个操作非常密集,因此我保存了定义,并希望避免将错误保存到数据库中。
答案 0 :(得分:0)
您可以取消警告,如以下链接所示
How can I handle the warning of file_get_contents() function in PHP?
或者另一种方法是编写自定义错误处理程序。看到这个链接
PHP: How to use set_error_handler() to properly deal with all errors except notices?