• 09-07-2010, 18:08:05
    #1
    Arkadaşlar genel olarak preg_match_all kullanarak Regexlerle istediğim veriyi ayırabiliyorum ancak regexleri pek verimli kullanamıyorum.

    Mesela bir verinin içinden linkleri nasıl ayırırız, tüm linkleri, bahsettiğim şeyde <a href.. > yok mesela yazı içerisinde direkt http:// var ve ya http://... var, yani benim istediğim şu: "http://" ve ya www. ile başlıyorsa veriyi almaya başlayacak, boşluk karakteri ve ya [ karakteri ile karşılaştığında duracak.

    bunun nasıl yapılacağını yazarsanız bu bilginiz benim diğer benzeri problemlerimde de yardımcı olacak

    şimdiden teşekkürler
  • 09-07-2010, 18:18:46
    #2
    Benim link kısaltma scriptimde classımda yapmıştım;
     function http_control($v)
           {
            $http_say = strlen('http://');
            $i = '0';
            $http = 'http://';
            $total_match = substr($v,$i,$http_say);
            if($total_match !== $http)
            {
                die("Geçersiz bir adres girdiniz başında $http olduğundan emin olduktan sonra tekrar deneyin");
            }
    
           }
    http_control($kontrol); yapman yeterli.
  • 09-07-2010, 18:22:51
    #3
    hocam yanlış anladınız sanırım, benim elimde şöyle bir veri var:

    Alıntı
    yazı yazı yazı http://link yazı yazı yazı yazı yazı yazı http://link yazı yazı yazı yazı http://link yazı yazı yazı yazı
    ben buradaki 3 tane "http://link" kısmını çekmek istiyorum preg_match_all ile

    edit: yukarıdaki kod yerine şunu da kullanabilirdiniz aslında

    $kontrol = explode("http://",$veri);
    if($kontrol[1]) {
    echo "bu link";
    } else {
    echo "bu link deil";
    }
  • 09-07-2010, 18:23:34
    #4
    by_antiseptic adlı üyeden alıntı: mesajı görüntüle
    hocam yanlış anladınız sanırım, benim elimde şöyle bir veri var:



    ben buradaki 3 tane "http://link" kısmını çekmek istiyorum preg_match_all ile
    Veri alarak dediniz bende post ile alınıyor zannettim özürdilerim .
  • 09-07-2010, 18:39:29
    #5
    vBulletinMaster adlı üyeden alıntı: mesajı görüntüle
    Veri alarak dediniz bende post ile alınıyor zannettim özürdilerim .
    sorun değil

    hala cevap arıyorum arkadaşlar
  • 09-07-2010, 18:54:06
    #6
    Eposta Aktivasyonu Gerekmekte
    <?php
    $veri='bakın bir link http://r10.net/php bu linke kesin girin';
    if(preg_match('/$http:\/\/([a-zA-Z0-9\.\/])[[:space:]]/',$veri,$cekveri)) {
    echo 'buldum linki: '.$cekveri[1];
    }
    else {
    echo 'aradım ama bulamadım';
    }
    denemedim ama çalışır inşallah
  • 09-07-2010, 20:27:34
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    
    $content = 'radmin, 200x yılında https://www.r10.net/ i kurdu. Sonrasında by_antiseptic https://www.r10.net/php/678483-regexler-hakkinda-biraz-bilgi.html konusunu açtı.';
    preg_match_all('~([http|https|ftp|ftps]*:\/\/[a-zA-Z0-9\.\/\-]+)\s?~i', $content, $matches);
    
    print_r($matches[1]);
    
    /*
    Matches:
    1.https://www.r10.net/
    2.1.https://www.r10.net/php/678483-regexler-hakkinda-biraz-bilgi.html
    */
    
    ?>
  • 10-07-2010, 06:38:32
    #8
    by_grafitus dostum çok teşekkür ederim, ancak bir-iki eksiklik kaldı

    1- www.google.com şeklindeki linkleri almıyor

    2- linklerde ? den sonrasını almıyor, mesela siteadi.com/files.php?id=2 gibi olursa ? den sonrasını almıyor
  • 10-07-2010, 08:49:09
    #9
    Yok çalışmadı...