gpt4 book ai didi

php - 循环6次,但只添加3条记录

转载 作者:行者123 更新时间:2023-11-29 12:17:56 26 4
gpt4 key购买 nike

我正在使用简单的 html dom 抓取数据。然而似乎有一些奇怪的行为。即使写入测试 6 次,它也只添加 3 条记录。为什么循环了 6 次却只添加了 3 行?

include('simple_html_dom.php');

$html = file_get_html("http://www.dailydot.com/tags/counter-strike/");

foreach($html->find("//li[@class='span4']") as $element) {
echo "test";
$title = strip_tags($element->find("//a[@class='article-title']/h3", 0));
$img = $element->find("//div[@class='picfx']/a/img[@class='lzy-ld']", 0)->getAttribute('data-original');
$link = $element->find("//a[@class='article-title']", 0)->href;
$date = $element->find("//p[@class='byline']/time", 0)->datetime;
mysqli_query($con, "INSERT INTO news (`title`, `url`, `image_url`, `news_text`, `referer_img`) VALUES ('$title', '$link', '$img', '$full_text_strip', 'test')");
}

最佳答案

可能是因为它失败了 3 次:D 这些插入不是注入(inject)安全的。您应该使用 real escape string 。如果你不这样做,如果你的任何变量包含一个简单的引号,你的代码将会失败。 (并且它允许坏人注入(inject)sql命令)

include('simple_html_dom.php');

$html = file_get_html("http://www.dailydot.com/tags/counter-strike/");

foreach($html->find("//li[@class='span4']") as $element) {


$title = mysqli_real_escape_string($con, strip_tags($element->find("//a[@class='article-title']/h3", 0)));
$img = mysqli_real_escape_string($con, $element->find("//div[@class='picfx']/a/img[@class='lzy-ld']", 0)->getAttribute('data-original'));
$link = mysqli_real_escape_string($con, $element->find("//a[@class='article-title']", 0)->href);
$date = mysqli_real_escape_string($con, $element->find("//p[@class='byline']/time", 0)->datetime);
mysqli_query($con, "INSERT INTO news (`title`, `url`, `image_url`, `news_text`, `referer_img`) VALUES ('$title', '$link', '$img', '$full_text_strip', 'test')");
echo "test ".mysqli_error($con);
}

关于php - 循环6次,但只添加3条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463362/

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