• 22-08-2009, 21:41:16
    #1
    Arkadaşlar farklı bir sitenin bir sayfasını siteme nasıl include edebilirim. Ama resimler ve bağlantılarda otomatik güncellenmeli.
    Örneğin include etmek istediğim sayfa
    www.osite.com/a.htm
    olsun. Bu sayfa b.htm sayfasına link vermiş veya c.jpg resmini içeriyor. Bu sayfayı siteme direkt include ettiğimde benim alanımda b.htm veya c.jpg olmadığından hata alıyorum. Bunlarında adreslerini nasıl
    www.osite.com/b.htm
    ve
    www.osite.com/c.jpg
    ye dönüştürebilirim. str_replace ile mi yapmalıyım?
    Umarım anlatabilmişimdir.
    Saygılar.
  • 23-08-2009, 01:14:10
    #2
    str_replace den başka bir şekilde yapmak mümkün olmaz tahminimce. fakat bu işlemi daha güvenli bir hale getirmek için direk sayfanın tüm metnini alıp replace etmek yerine aradaığın html taglarını regex ve preg yardımı ile bularak yapabilirsin
  • 23-08-2009, 15:26:30
    #3
    İsmail cevabın için teşekkür ederim.
    Adresleri str_replace ile değiştirmeye kalktım ama hesapta olmayan bişey vardı: Örneğin sayfadaki tüm href=" şeklindeki ifadeleri href="http://www.osite.com/ şeklinde değiştirince çoğu bağlantı yerine oturuyor ama dış bağlantılarda sorun oluyor: href="http://www.osite.com/http://www.busite.com gibi...
    Çözümü preg_replace de aradım. Mantığıda oluşturdum Kabaca şunu yapmaya çalıştım href= ile başlayan ama devamında http:// içermeyen ifadeleri href="http:// şeklinde değiştir. Tabii resimler, css'ler, ve javascriptler içinde src= ifadelerini düzeltmem gerekiyor.
    Ama bir türlü preg_replace oluşturamadım
    Arkadaşlar bir el atın
  • 23-08-2009, 15:45:06
    #4
    regex i iyi düzeyde biliyor olman gerek. ben o derece iyi bilmiyorum ama bilen arkadaşlar vardır mutlaka.
    yabancı bir forumda seninkine benzer bir sorunla karşılaşmış biri var sanırım. şöyle bir regex var;
    href=\"(?!http://).*
    biraz daha derleyip işini görebilirsin diye tahmin ediyorum
  • 25-08-2009, 15:12:59
    #5
    İsmail tekrar teşekkür ediyorum cevapların için

    Deneme yanılma yöntemiyle yapdım, ihtiyacı olan başka arkadaşlar olur diye kodları yazıyorum:

    Alıntı
    $sfile = preg_replace('#(^|[\n ])(href|src)=\"([\w\#$%&~/.\-;:=,?@\[\]+]*)#is', '\\1 \\2="http://www.osite.com\\3', $sfile);
    $sfile = str_replace($dosya_adi."http://","http://",$sfile);
    Dosya çekme işlemini curl ile yaptım bu sefer daha hızlı olduğundan neyse şimdi aklıma takılan konu ise biliyorsunuz "file_get_contents" ve curl ciddi güvenlik açıklarına neden oluyor. Ne gibi önlemler alabilirim?
    Php kolarını şöyle temizliyorum: $sfile = preg_replace('#(^|[\n ])(<\?|<\?php)([\w\#$%&~/.\-;:=,?@\[\]+]*)(?>)#is', '', $sfile);
    Saygılar.
  • 25-08-2009, 15:29:24
    #6
    bobboken adlı üyeden alıntı: mesajı görüntüle
    İsmail tekrar teşekkür ediyorum cevapların için
    Deneme yanılma yöntemiyle yapdım, ihtiyacı olan başka arkadaşlar olur diye kodları yazıyorum:
    Dosya çekme işlemini curl ile yaptım bu sefer daha hızlı olduğundan neyse şimdi aklıma takılan konu ise biliyorsunuz "file_get_contents" ve curl ciddi güvenlik açıklarına neden oluyor. Ne gibi önlemler alabilirim?
    Php kolarını şöyle temizliyorum: $sfile = preg_replace('#(^|[\n ])(<\?|<\?php)([\w\#$%&~/.\-;:=,?@\[\]+]*)(?>)#is', '', $sfile);
    Saygılar.
    içeriğin hangi sayfadan çekileceği neye göre belirleniyor ? güvenlik konusunda çok detaylı bilgiye sahip değilim fakat bu sistemde sorun yaratabilecek olan şey içeriğin alındığı sitedeki zararlı yada uygunsuz şeyler olabilir.