lostyazilim
tr.link

Preg_match_all | regex hakkında yardım

3 Mesajlar 789 Okunma
acebozum
tr.link

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Kendi kendime hem preg_match_all hem de regex ifadelerin kullanımını öğrenmeye çalışıyorum. Ama kafam bu regex e pek basmıyor gibi.
Birçok çözümü internet üzerinden buldum fakat çözümünün mümkün olup olmadığını bilmediğim -ki olduğunu düşünüyorum- bir yerde takıldım.
Kaynağı alınan bir sayfadaki aynı class name e sahip elemanları almaya çalışıyorum. elemanda sadece class olunca tamam da class dan sonra her eleman için ayrı ayrı id değerleri de girince araya işin içinden çıkamadım. Nasıl bir sonuçla karşılaştığımı aşağıdaki kodları komple kopyala yapıştır yaparak anlayabilirsiniz. id yazılarını yok saymak için nasıl bir regex yazmak gerekli?


setlocale(LC_ALL,"turkish");
function viki_gun($date) {
return iconv('latin5','utf-8',strftime('%d_%B',strtotime($date)));
}

$ch = curl_init("https://tr.wikipedia.org/wiki/".viki_gun(date("Y-m-d")));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);

curl_close($ch);


$basliklar = '@@si';

preg_match_all($basliklar, $result,$baslik);

print_r($baslik);


edit: Denerken şöyle bir pattern ile istediğim sonucu aldım ama bilinçli yaptığım bir şey değil, yine de yaptığım şeyin doğruluğu-yanlışlığı veya olayın mantığı hakkında fikirlere açığım.

$basliklar = '@(.*?)@si';
 

 


elektronikssl
webimgo

mustafabosnak mustafabosnak Back-End Developer Kullanıcı
  • Üyelik 09.03.2017
  • Yaş/Cinsiyet 28 / E
  • Meslek Back-End Developer
  • Konum Konya
  • Ad Soyad M** B**
  • Mesajlar 63
  • Beğeniler 16 / 11
  • Ticaret 3, (%100)
Merhaba hocam çekmiş olduğunuz verilerde id değerleride değişken olduğu için id belirtip yerine onunda (.*?) koymanız lazım bir de açmış olduğunuz spanı kapatmamışsınız o sebepten kendisi hem id yi çekmiş hem de içinde ki texti.

Kodları bu şekilde düzenlediğiniz zaman istediğiniz sonucu bunda da elde edebilirsiniz. İyi çalışmalar

$basliklar = '@(.*?)@si';
Abdullahx

kişi bu mesajı beğendi.

“Muhteşem bir şey, bir yerlerde keşfedilmeyi bekliyor!”

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Hocam aslında o şekil değil, id kısmını da parantez içine alırsam orayı da gruplandırma yapmaz mı, benim yapmak istediğim o id kısmını yok saymak, üstte editte yaptığım şekilde oldu fakat mantığını tam anlamadan yapmış olduğum bir şeydi, nasıl olduğunu merak ettim açıkçası.
 

 


wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al