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
Regexler hakkında biraz bilgi ?
11
●817
- 09-07-2010, 18:08:05
- 09-07-2010, 18:18:46Benim 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:51hocam 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 ileAlıntı
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:34Veri alarak dediniz bende post ile alınıyor zannettim özürdilerimby_antiseptic adlı üyeden alıntı: mesajı görüntüle
.
- 09-07-2010, 18:39:29
- 09-07-2010, 18:54:06Eposta 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:34Kimlik 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:32by_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
.