Öncelikle ilk kodunuzda bir sorun göremedim, embed url'yi bulup play.php'ye yönlendirmesinde bir sorun yok gibi.
Ancak sorun play.php'de, şöyle ki;
Yukarıdaki bölümde ana php'den yönlendirilen $embedUrl değeri için curl isteği başlatılıyor ve sonuç $response değişkenine alınıyor, burada hiçbir sorun yok.
Ancak
Kod:
- $effectiveUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
bölümünde bir yanlış anlaşılma olmuş sanırım, çünkü bu kod normalde girilen linkin birden fazla yönlendirme yapması durumunda bize yönlendirmenin bittiği son url değerini vermeye yarıyor.
Bizim durumumuzda embed linki herhangi bir yönlendirme yapmıyor bize direkt olarak embed html kodu veriyor, yani $effectiveUrl değişkeni ile $embedUrl değişkeni birebir aynı değerlere sahip olacak.
İkinci sorun da şu ;
Kod:
- if (preg_match('/^https:\/\/hdmomplayer\.com\/list\/([^"]+)$/', $effectiveUrl, $matches))
bölümünde yapılan şey de $effectiveUrl değişkeninin değerinin içerisinde regex araması yapmak. Yukarıda da dediğim gibi bizim durumumuzda $effectiveUrl değişkeninin değeri "https://hdmomplayer.com/embed/abcdefg" gibi bir değerde olacak. Yani herhangi bir html kodu değil sadece url string'i.
Yapmaya çalıştığınız regex araması da bu url string içinde "https://hdmomplayer.com/list/*" gibi bir string değeri aramak, ki buradan doğru sonuç almak mümkün değil yukarıdaki sebepten ötürü.
Çözüme gelirsek;
Kod:
- if (preg_match('/^https:\/\/hdmomplayer\.com\/list\/([^"]+)$/', $effectiveUrl, $matches))
bu bölümde $effectiveUrl yerine $response değerinde regex araması yapmanız gerekir ki embed html içinde arama yapmış olursunuz.
Ancak yine de bu değer bulunamayacaktır çünkü embed html içinde yayın linkleri javascript ile şifrelenmiş gelir genelde bu tarz sitelerde.
Buradan sonra da artık odak noktası o şifrelenmiş veriyi alıp çözebilmek olacaktır.