Добрый день!
Создаю скрипт для парсинга с сайта.
Скрипт должен: сохранить в базу данных названия стран и пути до картинок (это сделать получается). Также, нужно сохранить картинки gif в папку image.
В браузере появляется много строк со следующей ошибкой:
Warning: file_put_contents(image/FLAG-small/abhaziya.gif): failed to open stream: No such file or directory in C:\OSPanel\domains\test\www\rusakov\parsing17.php on line 36
И в папку image не записывается файл gif, она остаётся пустой. Почему так получается? Папка image существует и она находится в одной папке со скриптом.
Вот весь код:
<?php
require 'C:\OSPanel\vendor\autoload.php';
$host = 'localhost'; // адрес сервера
$database = 'mysite'; // имя базы данных
$user = 'root'; // имя пользователя
$password = ''; // пароль
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
$url = 'https://33tura.ru/flagi';
function getCurl($url){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
$result = curl_exec($curl);
return $result;
}
$curlPage = getCurl($url);
$pq = phpQuery::newDocument($curlPage);
$data = $pq->find('div.tur-article tbody tr td table tbody tr');
foreach($data as $elem){
$countryName = pq($elem)->find('a:eq(1)')->text();
$imgFlag = pq($elem)->find('a:eq(0) img')->attr('src');
$img = getCurl('https://33tura.ru'.$imgFlag);
if(!file_exists("image".$imgFlag)){
file_put_contents("image".$imgFlag, $img);
}
$query="SELECT name FROM content3 WHERE name='".$countryName."'";
$result= mysqli_query($link,$query);
$data = mysqli_fetch_assoc($result);
if(empty($data)){
$query="INSERT INTO content3 SET name='".$countryName."', img='image".$imgFlag."'";
mysqli_query($link,$query)or die(mysqli_error($link));
}
}
?>