Witam,
Mam mały problem z kodem. Zacznę więc od kodu
index.php
<?php
require('simple_html_dom.php');
$nazwa_pliku = '';
$html = file_get_html('');
$oferty = [];
if (file_exists($nazwa_pliku)) {
$dane = file_get_contents($nazwa_pliku);
foreach ($html->find('div.object-grid-item-wrapper') as $oferta) {
$OfertaSzczegoly = $oferta->find('a', 0);
$TytulOferty = $OfertaSzczegoly->find('h4.object-grid-item-title', 0)->plaintext;
$URLOferty = '' . $OfertaSzczegoly->href;
$OfertaSzczegolyID = substr($URLOferty, -11);
$OfertaSzczegolyIDB = str_replace('.html', '', $OfertaSzczegolyID);
$oferty[] = [
'tytul' => trim($TytulOferty),
'url' => $URLOferty,
'id' => $OfertaSzczegolyIDB
];
}
$json_arr = json_decode($dane, true);
$ids = array_column($json_arr, 'id');
$ogl = array_column($oferty, 'id');
$x = 0;
foreach($ogl as $info){
if (in_array($info, $ids)) {
} else {
// $token = "";
// $data = [
// 'text' => 'Pojawiło się nowe ogłoszenie!
// Jego link: '.$oferty[$x]["url"].'',
// 'chat_id' => ''
// ];
// file_get_contents("https://api.telegram.org/bot$token/sendMessage?" . http_build_query($data) );
// }
$x++;
sleep(2);
}
$plik_json = fopen($nazwa_pliku, 'w');
fwrite($plik_json, json_encode($oferty, JSON_PRETTY_PRINT));
fclose($plik_json);
} else {
echo "Brak $nazwa_pliku, proszę utworzyć.";
}
?>
Dodatkowo plik json, który zwraca mi wyniki z simplehtmldom.
Tam jest obecnie 114 ogłoszeń i tyle samo w pliku json, jest możliwość że ilość jest za duża?
Są dwie tablice jedna, która ma zapisane już id ogłoszenia w pliku json oraz druga, która pobiera najświeższe id ze strony. Problem polega na tym, że potrafi 300 wiadomości na telegrama puścić powtarzając wiadomości informując jako nowe ogłoszenie.
I tutaj nasuwa mi się proste pytanie, gdzie leży błąd w takim zachowaniu?