• 10-12-2012, 16:06:38
    #1
    Üyeliği durduruldu
    Merhabalar arkadaşlar
    ingilizce içerikli bir web sitem var googleden gelen aramaları fonksiyonla yakalıyorum fakat her uzantıyı almıyor kaydetmiyor yani aşağıda yazılı olan uzantıları kayıt ediyor.
    bu satırdaki uzantıları devredışı bırakıp google üzerinden gelen uzantısı ne olursa olsun kayıt altına alınmasını istiyorum
    satır bu
    if(preg_match("/google.(com|com.tr|de|co.uk|bg|ca|dk)/i", $ref)){
    komple fonksiyon
       function google_keywords_check(){
        if($_SERVER['HTTP_REFERER']){
        $ref = urldecode($_SERVER['HTTP_REFERER']);
        if(preg_match("/google.(com|com.tr|de|co.uk|bg|ca|dk)/i", $ref)){
        if(preg_match("/q=([^&]+)/i",$ref,$key)){
        $sayfa = $_SERVER['REQUEST_URI'];
        $kelime = trim($key[1]);
    	//echo $kelime;
    	mysql_query("INSERT INTO google_keywords (sayfa, keywords, tarih) VALUES ('".$sayfa."', '".$kelime."', '".date('d/m/Y')."')");
    }}}}
  • 10-12-2012, 16:36:45
    #2
    (com|com.tr|de|co.uk|bg|ca|dk) kaldırsan bu bölümü bir çözüm olmuyor mu?
  • 10-12-2012, 20:50:53
    #3
    Üyeliği durduruldu
    yok hocam olsa buraya yazmazdım
  • 10-12-2012, 21:12:53
    #4
    Bu fonksiyonda preg_quote ile . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - gibi karakteleri escape etmeniz lazım. siz google.com derken (nokta) işareti o deseni bozar.. Buna dikkat edin..

    yok preg_mach kullanmayacaksanız strpos ile kelime kontrolü yapın..
  • 11-12-2012, 01:16:15
    #5
    if(preg_match("/google.[a-z\.](*)/i", $ref)){
    Bu şekilde dene olmazsa regex araştır uykuluyum idare et
    Kolay gelsin.