Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

düzenli ifadelerde alt satır problemi

Konu, 'PHP' kısmında marchin tarafından paylaşıldı.

  1. marchin

    marchin Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    42
    Beğenilen Mesajlar:
    0
    merhaba arkadaslar sorunum soyle.

    PHP:

    <?php

    $str
    ="<a class=\"a\"><a href=x>tikla</a> xxx<a class=\"b\">";

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$str,$dizi) ) {

    echo 
    $dizi[1];

    }


    ?>


    bu calısıyor.cunku $str degiskenini tek satıra yazdım.dolayısıyla ifade belirtilen uyumu yakalıyor ve linki ekrana basıyor.ancak

    PHP:


    <?php

    $str
    ="<a class=\"a\"><a href=x>tikla</a> 
    xxx<a class=\"b\">"
    ;

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$str,$dizi) ) {

    echo 
    $dizi[1];

    }


    ?>


    boyle yapınca $str yi alt satırdan devam ettiriyorum.ama bu sefer uyumlu bolgeyi yakalamıyor ve ekrana boş çıktı döndürüyor.:mad: anlamadım nasıl bir desen yazmamız lazım
     
  2. materyalist

    materyalist Daimi Üye

    Kayıt:
    24 Aralık 2007
    Mesajlar:
    771
    Beğenilen Mesajlar:
    0
    Şehir:
    PHP.Net
    PHP:
    <?php

    $str
    ="<a class=\"a\"><a href=x>tikla</a> <br> xxx<a class=\"b\">";

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$str,$dizi) ) {

    echo 
    $dizi[1];

    }


    ?>
    alt satır derken anlamadım ama?
     
  3. marchin

    marchin Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    42
    Beğenilen Mesajlar:
    0
    hocam kac satır oldugunu bilmiyorum ki br koyayım

    PHP:

    $veri
    ="<a class=\"a\">
    ek kefkekefepğp efekpğekpekkegkpekpgpkpğwe
    ekekoeevğevb ğğ tnhğ5hğ5   kğk ğkrh
    4pkgrkb  g4g ğh ğğ  rkpğrk krkkorkgrboo 
    rkgok k k kgğp kgrkgğrk pğkrkğprkgrkbpğ   oğrk rk okhkr 
    <a class=\"b\">"
    ;

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$veri,$dizi) ) {

    echo 
    $dizi[1];

    }

    koyu yeri cekmesi lazım.ama bir den cok satır var cekmiyor iste
     
  4. xam

    xam Daimi Üye

    Kayıt:
    28 Mart 2006
    Mesajlar:
    1,080
    Beğenilen Mesajlar:
    0
    PHP:
    $veri="<a class=\"a\">
    ek kefkekefepğp efekpğekpekkegkpekpgpkpğwe
    ekekoeevğevb ğğ tnhğ5hğ5   kğk ğkrh
    4pkgrkb  g4g ğh ğğ  rkpğrk krkkorkgrboo 
    rkgok k k kgğp kgrkgğrk pğkrkğprkgrkbpğ   oğrk rk okhkr 
    <a class=\"b\">"
    ;
    $veri str_replace(array("\n","\r"), ""$veri);
    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$veri,$dizi) ) {

    echo 
    $dizi[1];


     
  5. marchin

    marchin Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    42
    Beğenilen Mesajlar:
    0

    cıktı veriyor ama hatalı bir yol.alt satır da ki ilk kelimeyi bir ustle birleştiriyor oyle devam ediyor.


    PHP:

    <?php

    $veri
    ="<a class=\"a\">xxxx
    yyyy zzzz
    ssss<a class=\"b\">"
    ;

    $veri str_replace(array("\n","\r"), ""$veri);

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$veri,$dizi) ) {

    echo 
    $dizi[1];

    }


    ?>


    cıktı:xxxxyyyy zzzzssss
     
  6. marchin

    marchin Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    42
    Beğenilen Mesajlar:
    0
    ya arkadaslar yardım edin nasıl bir şey bu.basitcecik bir şey ya

    PHP:

    <?php

    $veri
    ="<a>bbbb xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyy aaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbb <x>"
    ;

    if(
    preg_match('/\<a\>(.*?)\<x\>/i',$veri,$dizi) ) {

    echo 
    $dizi[1];

    }

    ?>


    bu desende bile calısmıyor.ama tek satıra yazınca calısıyor.nasıl bir desen gerekiyor bunun icin
     
  7. materyalist

    materyalist Daimi Üye

    Kayıt:
    24 Aralık 2007
    Mesajlar:
    771
    Beğenilen Mesajlar:
    0
    Şehir:
    PHP.Net
    PHP:
    <?php $veri="<a class=\"a\"> ek kefkekefepğp efekpğekpekkegkpekpgpkpğwe
    ekekoeevğevb ğğ tnhğ5hğ5   kğk ğkrh
    4pkgrkb  g4g ğh ğğ  rkpğrk krkkorkgrboo 
    rkgok k k kgğp kgrkgğrk pğkrkğprkgrkbpğ   oğrk rk okhkr 
    <a class=\"b\">"
    ;
    $veri1 = array("\n");
    $veri3 = array("<br>");
    $veri4 str_replace($veri1,$veri3,$veri);
    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/i',$veri4,$dizi) ) {

    echo 
    $dizi[1];

    }  
    ?>
    bu işini görecektir.
     
  8. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,145
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad
    PHP:

    $veri
    ="<a class=\"a\">
    ek kefkekefepğp efekpğekpekkegkpekpgpkpğwe
    ekekoeevğevb ğğ tnhğ5hğ5   kğk ğkrh
    4pkgrkb  g4g ğh ğğ  rkpğrk krkkorkgrboo 
    rkgok k k kgğp kgrkgğrk pğkrkğprkgrkbpğ   oğrk rk okhkr 
    <a class=\"b\">"
    ;

    if(
    preg_match('/\<a\sclass=\\"a\\"\>(.+?)\<a\sclass=\\"b\\"\>/is',$veri,$dizi) ) {

    echo 
    $dizi[1];

    }  


    tek farkı /is (s takısı )
     
  9. jutenya

    jutenya Yeni Üye

    Kayıt:
    27 Haziran 2008
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    Öncelikle merhaba;

    /'dan sonraki i bildiğim kadarıyla büyük küçük harf duyarlılığını kaldırıyor, peki s ne yapıyor?
     
  10. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,145
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad

    sed komutu, duzenli ifadelerde satır sonunda ki tum boslukları kaldırır,kısa acıklaması bu şekilde olur.

    http://www.opengroup.org/onlinepubs/007908799/xcu/sed.html
     
  11. marchin

    marchin Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    42
    Beğenilen Mesajlar:
    0
    deathisonitsway bu kadar mıydı yani,:):D s takısını 40 yıl dusunsem aklıma gelmezdi.diger arkadasların kodlarına oranla en mukemmeli seninkisi.cok sagol hocam.