php - 从 RSS 导入时如何避免重复结果
问题描述
我每 x 小时使用核心 php 将数据从 RSS 导入 mysql,但我正在努力处理重复的条目。
$rss_url = 'https://promograd.bg/feed/agg/common.xml?a=143';
$xml = simplexml_load_file($rss_url);
foreach($xml->ITEM as $item) {
$title = mysqli_real_escape_string($link, $item->TITLE);
$offerUrl = $item->URL;
$description = mysqli_real_escape_string($link, $item->DESCRIPTION);
$offerTerms = mysqli_real_escape_string($link, $item->TERMS);
$originalPrice = $item->ORIGINAL_PRICE;
$finalPrice = $item->FINAL_PRICE;
$offerDiscount = $item->DISCOUNT;
$offerSales = $item->SALES;
$offerEnds = $item->DEAL_END;
$lat_coordinates = $item->LAT;
$lng_coordinates = $item->LNG;
$city = mysqli_real_escape_string($link, $item->CITY);
$category = mysqli_real_escape_string($link, $item->CATEGORY);
$img = $item->IMAGE;
$query = mysqli_query($link, "
INSERT INTO......
}
我的问题是当我运行这个脚本时,它会导入相同的结果,没有太多新的。我怎样才能避免重复的结果?
解决方案
例如,如果您正在检查标题是否重复,您可以尝试以下操作:-
$rss_url = 'https://promograd.bg/feed/agg/common.xml?a=143';
$xml = simplexml_load_file($rss_url);
$tempRecords = array(); // temp array store titles
foreach($xml->ITEM as $item) {
$title = mysqli_real_escape_string($link, $item->TITLE);
if(in_array($title, $tempRecords)){ //skip if exists
continue;
}else{ // else insert
//$title = mysqli_real_escape_string($link, $item->TITLE);
$tempRecords[] = $title; //assign to temp array
$offerUrl = $item->URL;
$description = mysqli_real_escape_string($link, $item->DESCRIPTION);
$offerTerms = mysqli_real_escape_string($link, $item->TERMS);
$originalPrice = $item->ORIGINAL_PRICE;
$finalPrice = $item->FINAL_PRICE;
$offerDiscount = $item->DISCOUNT;
$offerSales = $item->SALES;
$offerEnds = $item->DEAL_END;
$lat_coordinates = $item->LAT;
$lng_coordinates = $item->LNG;
$city = mysqli_real_escape_string($link, $item->CITY);
$category = mysqli_real_escape_string($link, $item->CATEGORY);
$img = $item->IMAGE;
$query = mysqli_query($link, "
INSERT INTO......
}
}
您也可以使用 mysql 查询来完成,请参考链接
https://ypereirareis.github.io/blog/2016/03/22/mysql-insert-ignore-alternatives/
推荐阅读
- javascript - ReactNative 中的异步/等待问题
- excel - 如何编写包含来自源单元格的单元格格式的 VBA Vlookup?
- python - libreOffice - 无法让 python 宏出现在“组织宏”下
- typescript - 如何修复类型“未知”不可分配给 React 打字稿中的类型“国家 []”
- c++ - 如何在 sfml 中“设置变换的原点”
- android - 某些记录会在某个时间点后使用 Sugar ORM 从 Android SQLite 数据库中自动删除
- javascript - 如何固定一个元素在弹性框中的位置?
- php - 从数据库中检索图像并显示它 Laravel
- javascript - axios cancelToken,让取消的请求静默失败
- java - 如何在 AndroidStudio 中自动停止根据 NumberPicker 更改值?