Hocam tekrardan merhaba :o Ben farklı günleri tıklayınca getirme olayınıda bir türlü beceremedim. Linkini alıyorum ama aktiv olanın hepsini sıralayamıyorum. Foreach ile nasıl 1 haftayı sıralarım bunda da yardımcı olabilir misin.



webtegez adlı üyeden alıntı

Buyur hocam senin için bu sabah hızlıca açık açık ve birazcık uzun yoldan kodları yazdım hemen. İstediğin sayfada ki program listeleri array olarak hepsini listeliyor. Burayı inceleyerek çalışmalar yapabilir kendini geliştirebilirsin.

İyi çalışmalar :)


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.showtv.com.tr/yayin-akisi/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
preg_match_all('@
(.*?)
@si', $output, $parcali);
preg_match('@
(.*?)
(.*?)@si', $all_programs['0'], $program_link);
if(is_array($program_link) && count($program_link) == '3'){
list($all_programs, $program_links, $program_contents) = $program_link;
if(is_array($program_links) && is_array($program_contents)){
$program_contents = array_map(function($e){ return preg_replace('~>\s+<~', '><', $e); }, $program_contents);
$program_infos = array();
foreach($program_links as $link_key=>$link_val){
if($program_contents[$link_key]){
preg_match('/(.*?)
preg_match('//', $program_contents[$link_key], $img_src);
preg_match('/(.*?)<\/span>/', $program_contents[$link_key], $title);
preg_match('/(.*?)<\/span>/', $program_contents[$link_key], $status);
preg_match('/(.*?)<\/span>/', $program_contents[$link_key], $description);
$program_infos[] = array(
'link' => sprintf('https://www.showtv.com.tr%s', $link_val)??NULL,
'title' => is_array($title) && $title['1'] ? strip_tags($title['1']) : NULL,
'description' => is_array($description) && $description['1'] ? strip_tags($description['1']) : NULL,
'image' => is_array($img_src) && $img_src['1'] ? strip_tags($img_src['1']) : NULL,
'time' => is_array($time) && $time['1'] ? strip_tags($time['1']) : NULL,
'status' => is_array($status) && $status['1'] ? trim(strip_tags($status['1'])) : NULL,
);
}
}
}
}
}
echo '
'; print_r($program_infos); echo '
';