Gönderen Konu: Php ile resim linkini alma yöntemleri  (Okunma sayısı 460 defa)

Çevrimdışı cakal

  • Vip Üye
  • Trade Sayısı: (0)
  • *
  • İleti: 94
  • Karma +1/-0
  • Cinsiyet: Bay
    • Profili Görüntüle
Php ile resim linkini alma yöntemleri
« : 05 Tem 2015, 20:50:19 »

Phpde genelde lazım olan bir konudur arkadaşlar. Çoğu zaman işlem yaptığımız kodlarda yada yazı içerisinden resim linklerini ayırmak istediğimizde bize doğru sonucu vermesi bakımından böyle kodlara ihtiyaç duyarız. Php bir programlama dili olduğundan bir çok farklı yol ve yöntem üretilebilir, ancak ben burda en doğru sonucu alabileceğiniz yapıları örnekleriyle vermeye çalışacağım.

Örnek kullanacağımız resim kodu bu olacak:
Kod: [Seç]
<img border="0" src="/images/image.jpg" alt="Image" width="100" height="100" />
1. yöntem: HTML DOM Document Sınıfı

Bu yöntem benim genelde tercih ettiğim ve en doğru kesin sonucu veren bir yol. kod içerisindeki resme ait src kısmını aşağıdaki şekilde alabilirsiniz. Ancak unutmamanız gereken diğer elemanları almak istersenizde kullanabilirsiniz, örneğin: alt, title v.s
Kod: [Seç]
$html = '<img border="0" src="/images/image.jpg" alt="resim" width="100" height="100" />';
 
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//img/@src)");
 
// sonuc: /images/image.jpg
echo $src;
Bu kod sadece resimler için kullanılmamaktadır. Adı üstünde html dokümanları üzerinde işlem yapabilmeyi kolaylaştıran bir araç niteliğindedir. Bir yazı içinde çözmek istediğiniz her türlü yapı üzerinde işlem yapabilirsiniz. uzun uzadıya bu konuya deignmeyeceğim, bunun yerine php‘nin kendi sitedinden yararlanabilirsiniz. Yukarıdaki dom sınıfı için buradaki siteden örnek aldım.

2. yöntem: Preg Match

Bu yöntemde phpnın düzenli ifadeler üzerinde işlem yapılabilmesine olanak veren fonksiyonudur. Bir yazı yada kalıp içerisinde regex ile eşleştirme yaparak bize sonucu verir. Örnek kod uygulamamız:
Kod: [Seç]
$html = '<img border="0" src="/images/image.jpg" alt="resim" width="100" height="100" />';
 
preg_match( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i' , $html, $match );
 
$src = array_pop($match);
 
// sonuc: /images/image.jpg
echo $src;
Yukarıdaki kodlarda kesin sonucu verecektir arkadaşlar, uygulamalarınızda gönül rahatlığı ile kullanabilirsiniz.