• 27-11-2022, 23:11:01
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    arkadaşlar merhaba preg_match_all ile bir jsonu kaynak kodlarindan ayrıştırdım şimdi bunu jsona çevirmem lazim nasil yapabilirim php ile?
    preg_match_all('@<script id="__NEXT_DATA__"(.*?)</script>@si',$kaynak,$tumyazilarial);
    
     print_r($tumyazilarial[1][0]);
    exit;
  • 27-11-2022, 23:23:26
    #2
    Veri json olarak gelmiş zaten, strip_tags fonksiyonu ile baştaki ve sondaki html taglarını sildirip sadece json'un kalmasını sağlayabilirsiniz.
  • 27-11-2022, 23:26:46
    #3
    Profesör adlı üyeden alıntı: mesajı görüntüle
    Veri json olarak gelmiş zaten, strip_tags fonksiyonu ile baştaki ve sondaki html taglarını sildirip sadece json'un kalmasını sağlayabilirsiniz.
    json_decode(strip_tags($tumyazilarial[1][0]));
    bu şekilde kullanımında boş dönüyor, bu preg_match_allı jsona çevirmek için ne yapmam gerekiyor hocam takıldım kaldım yahu
  • 27-11-2022, 23:32:18
    #4
    yuuverelok adlı üyeden alıntı: mesajı görüntüle
    json_decode(strip_tags($tumyazilarial[1][0]));
    bu şekilde kullanımında boş dönüyor, bu preg_match_allı jsona çevirmek için ne yapmam gerekiyor hocam takıldım kaldım yahu
    Çıktıyı bir json verify sitesinde kontrol edin hocam.
  • 27-11-2022, 23:34:26
    #5
    CodeDev adlı üyeden alıntı: mesajı görüntüle
    Çıktıyı bir json verify sitesinde kontrol edin hocam.

    şöyle bir sorun cikti hocam
  • 27-11-2022, 23:40:45
    #6
    Merhaba.En basit şekilde preg_match_all ifadesinidüzenleyin ve sadece json olan yeri alsın, şöyle:

    // preg_match_all('@<script id="__NEXT_DATA__"(.*?)</script>@si',$kaynak,$tumyazilarial);
    preg_match_all('@<script id="__NEXT_DATA__" type ="application/json">(.*?)X</script>@si',$kaynak,$tumyazilarial);
    $tumyazilarial = $tumyazilarial[1][0];
    //print_r($tumyazilarial[1][0]);
    //exit;

    (.*?) yanındaki "X" yazan yeri, satır istenen json ifade sonundaki fazlalık şey ile değiştirin. Tahminen: "<" olabilir.
    Sorun olursa satın sonunu (json bittikten sonraki karakterleri) gösteren yeri copy paste yapın, hemen bakabilirim.

    Kolay gelsin.
  • 27-11-2022, 23:46:42
    #7
    nmelihkutlu adlı üyeden alıntı: mesajı görüntüle
    Merhaba.En basit şekilde preg_match_all ifadesinidüzenleyin ve sadece json olan yeri alsın, şöyle:

    // preg_match_all('@<script id="__NEXT_DATA__"(.*?)</script>@si',$kaynak,$tumyazilarial);
    preg_match_all('@<script id="__NEXT_DATA__" type ="application/json">(.*?)X</script>@si',$kaynak,$tumyazilarial);
    $tumyazilarial = $tumyazilarial[1][0];
    //print_r($tumyazilarial[1][0]);
    //exit;

    (.*?) yanındaki "X" yazan yeri, satır istenen json ifade sonundaki fazlalık şey ile değiştirin. Tahminen: "<" olabilir.
    Sorun olursa satın sonunu (json bittikten sonraki karakterleri) gösteren yeri copy paste yapın, hemen bakabilirim.

    Kolay gelsin.
    Merhaba, çok teşekkür ederim bir önceki yorumuma bakabilir misinz orda takılı kaldım codedevin sordugu soruda saklı cevabı sanırım
  • 27-11-2022, 23:52:30
    #8
    yuuverelok adlı üyeden alıntı: mesajı görüntüle

    şöyle bir sorun cikti hocam
    Burası json sonu gibi gözükmüyor. Almak istediğiniz yerin en sonunda "}" ifadesi ile json bitiyor olması lazım ve arkasından gelen özgün karakterler nelerse onları X yazan yere yazmak lazım.
    Yani > json ifadenin tümü preg_match_all komutu ile seçilirse başka bir şeye gerek kalmaması lazım. Json ifadenin son tarafını veya tamamını bana ulaştırabilirseniz hemen bakabilirim.
  • 27-11-2022, 23:58:00
    #9
    nmelihkutlu adlı üyeden alıntı: mesajı görüntüle
    Burası json sonu gibi gözükmüyor. Almak istediğiniz yerin en sonunda "}" ifadesi ile json bitiyor olması lazım ve arkasından gelen özgün karakterler nelerse onları X yazan yere yazmak lazım.
    Yani > json ifadenin tümü preg_match_all komutu ile seçilirse başka bir şeye gerek kalmaması lazım. Json ifadenin son tarafını veya tamamını bana ulaştırabilirseniz hemen bakabilirim.
    yuustream sitesinin en altında json hocam
    $kaynak=curlbaslat("https://yuustream.net/");
    
    preg_match_all('@matchedEvents":(.*?),"lvscore@si',$kaynak,$tumyazilarial);
    
     print_r($tumyazilarial[1][0]);
    exit;