• 06-09-2015, 00:24:46
    #1
    İnternetten aşağıda ki gibi bir kod buldum kod sorunsuz çalışıyor ama kodun bir yerini değiştirmek istiyorum.

    Kod ünlem işareti gördüğü yerde tire olarak değiştiriyor , bunu tire olarak değilde tamamen silmesini istiyorum. Nasıl yapabilirim ?

    $find = array('!');
    $url = str_replace ($find, '', $url);

    Bunu denedim ama yine direk - yaptı , içine xxx yazdım o zaman tire yerine xxx'e çevirdi.

    Kısacası ünlem işaretini silmesi için ne yazabilirim ?



    function seo($url){ 
    $url = trim($url); 
    $url = strtolower($url); 
    $find = array('<b>', '</b>'); 
    $url = str_replace ($find, '', $url); 
    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url); 
    
    $find = array(' ', '&quot;', '&amp;', '&', '\r\n', '\n', '/', '\\', '+', '<', '>'); 
    $url = str_replace ($find, '-', $url); 
    
    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê'); 
    $url = str_replace ($find, 'e', $url); 
    
    $find = array('í', 'ı', 'ì', 'î', 'ï', 'I', 'İ', 'Í', 'Ì', 'Î', 'Ï'); 
    $url = str_replace ($find, 'i', $url); 
    
    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô'); 
    $url = str_replace ($find, 'o', $url); 
    
    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â'); 
    $url = str_replace ($find, 'a', $url); 
    
    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û'); 
    $url = str_replace ($find, 'u', $url); 
    
    $find = array('ç', 'Ç'); 
    $url = str_replace ($find, 'c', $url); 
    
    $find = array('ş', 'Ş'); 
    $url = str_replace ($find, 's', $url); 
    
    $find = array('ğ', 'Ğ'); 
    $url = str_replace ($find, 'g', $url); 
    
    $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); 
    $repl = array('', '-', ''); 
    
    $url = preg_replace ($find, $repl, $url); 
    $url = str_replace ('--', '-', $url);
  • 06-09-2015, 00:33:12
    #2
    Üyeliği durduruldu
    Ünlem işaretinin karşısındaki tre ( - ) olan alanı komple silin, sadece tırnaklar kalsın. Sorun çözülür.
  • 06-09-2015, 00:49:10
    #3
    kaan05 adlı üyeden alıntı: mesajı görüntüle
    Ünlem işaretinin karşısındaki tre ( - ) olan alanı komple silin, sadece tırnaklar kalsın. Sorun çözülür.
    function seo($bas)
    { 
        $bas = str_replace(array("&quot;","'"), NULL, $bas);
        $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-',);
        $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ',);
        $perma = strtolower(str_replace($bul, $yap, $bas));
       
        $perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
        $perma = trim(preg_replace('/\s+/',' ', $perma));
        $perma = str_replace(' ', '-', $perma);
        return $perma;
    }

    Üstteki kod yerine bunu kullandım , ünlem işareti sorunu çözüldü ama şimdi de

    ">" işareti sorunu var.

    Bu işaretin olduğu yerleri "gt" diye çeviriyor , hiç bir şekilde de başka bir şeye çeviremiyorum.


    Edit : ">" bu işareti "gt" olarak çevirdiği için , şöyle bir şey yaptım çevirdi ;

    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-', 'gt');
        $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ', 'as' );
    Ama haliyle her bulduğu gt kelimesini as diye çevirecek bu şekilde.


    Edit 2 :

    function seo($bas)
    { 
        $bas = str_replace(array("&quot;","'"), NULL, $bas);
        $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-', '&gt', '&lt');
        $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ', ' ', '');
        $perma = strtolower(str_replace($bul, $yap, $bas));
       
        $perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
        $perma = trim(preg_replace('/\s+/',' ', $perma));
        $perma = str_replace(' ', '-', $perma);
    	 
        return $perma;
    }
    Bu kod çözüyor.

    &gt greater than
    &lt lesser than
  • 06-09-2015, 02:32:20
    #4
    Üyeliği durduruldu
    function permayap($text) {
    $turkce=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","Y","Z","X","Q","W","ş","Ş","ı","(",")","'","ü","Ü","ö","Ö","ç","Ç"," ","/","*","?","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç","ü","Ü","!","@","#");
    $duzgun=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","v","y","z","x","q","w","s","s","i","","","","u","u","o","o","c","c","-","","","","s","s","i","g","g","i","o","o","c","c","u","u","","","");
    $text=str_replace($turkce,$duzgun,$text);
    $text=urldecode($text);
    $text = trim($text);
    $ara = array('Ç','ç','Ğz','ğ','ı','İ','Ö','ö','Åz','ş','Ü','ü');
    $degistir = array('c','c','g','g','i','i','o','o','s','s','u','u');
    $text = str_replace($ara,$degistir,$text);
    $text = preg_replace("@[^A-Za-z0-9\-_]+@i","",$text);
    return $text;
    }
    Kullanacağınız yerde ise;

    echo permayap($url);
    Yapacağınız kod bloğu için bu daha uygun olabilir ..