url_slug fonksiyonu:

scription">PHP- Kodu:
<?php 

/** 

 * Create a web friendly URL slug from a string. 

 *  

 * Although supported, transliteration is discouraged because 

 *     1) most web browsers support UTF-8 characters in URLs 

 *     2) transliteration causes a loss of information 

 * 

 * @author Sean Murphy <[email protected]

 * @copyright Copyright 2012 Sean Murphy. All rights reserved. 

 * @license https://creativecommons.org/publicdomain/zero/1.0/ 

 * 

 * @param string $str 

 * @param array $options 

 * @return string 

 */ 

function url_slug($str$options = array()) { 

    
// Make sure string is in UTF-8 and strip invalid UTF-8 characters 

    
$str mb_convert_encoding((string)$str'UTF-8'mb_list_encodings()); 

     

    
$defaults = array( 

        
'delimiter' => '-'

        
'limit' => null

        
'lowercase' => true

        
'replacements' => array(), 

        
'transliterate' => false

    ); 

     

    
// Merge options 

    
$options array_merge($defaults$options); 

     

    
$char_map = array( 

        
// Latin 

        
'' => 'A''' => 'A''' => 'A''' => 'A''' => 'A''' => 'A''' => 'AE''' => 'C',  

        
'' => 'E''' => 'E''' => 'E''' => 'E''' => 'I''' => 'I''' => 'I''' => 'I',  

        
'Ð' => 'D''' => 'N''' => 'O''' => 'O''' => 'O''' => 'O''' => 'O''Ő' => 'O',  

        
'' => 'O''' => 'U''' => 'U''' => 'U''' => 'U''Ű' => 'U''Ý' => 'Y''Þ' => 'TH',  

        
'' => 'ss',  

        
'' => 'a''' => 'a''' => 'a''' => 'a''' => 'a''' => 'a''' => 'ae''' => 'c',  

        
'' => 'e''' => 'e''' => 'e''' => 'e''' => 'i''' => 'i''' => 'i''' => 'i',  

        
'ð' => 'd''' => 'n''' => 'o''' => 'o''' => 'o''' => 'o''' => 'o''€˜' => 'o',  

        
'' => 'o''' => 'u''' => 'u''' => 'u''' => 'u''ű' => 'u''ý' => 'y''þ' => 'th',  

        
'' => 'y'

  

        
// Latin symbols 

        
'' => '(c)'

  

        
// Greek 

        
'€˜' => 'A''€™' => 'B''€œ' => 'G''€' => 'D''€' => 'E''€“' => 'Z''€”' => 'H''œ' => '8'

        
'„' => 'I''š' => 'K''€' => 'L''“' => 'M''Ν' => 'N''Ξ' => '3''Ÿ' => 'O''*' => 'P'

        
'Ρ' => 'R''Σ' => 'S''Τ' => 'T''Υ' => 'Y''Φ' => 'F''Χ' => 'X''Ψ' => 'PS''Ω' => 'W'

        
'€*' => 'A''*' => 'E''*' => 'I''’' => 'O''Ύ' => 'Y''€' => 'H''Ώ' => 'W''Ϊ' => 'I'

        
'Ϋ' => 'Y'

        
'α' => 'a''β' => 'b''γ' => 'g''δ' => 'd''ε' => 'e''ζ' => 'z''η' => 'h''θ' => '8'

        
'ι' => 'i''κ' => 'k''λ' => 'l''μ' => 'm''ν' => 'n''ξ' => '3''ο' => 'o''‚' => 'p'

        
'ρ' => 'r''’' => 's''€' => 't''€' => 'y''€*' => 'f''€' => 'x''*' => 'ps''€' => 'w'

        
'ά' => 'a''*' => 'e''ί' => 'i''’' => 'o''ύ' => 'y''ή' => 'h''ώ' => 'w''€š' => 's'

        
'*' => 'i''ΰ' => 'y''€' => 'y''ΐ' => 'i'

  

        
// Turkish 

        
'' => 'S''' => 'I''' => 'C''' => 'U''' => 'O''' => 'G'

        
'' => 's''' => 'i''' => 'c''' => 'u''' => 'o''' => 'g',  

  

        
// Russian 

        
'А' => 'A''€˜' => 'B''€™' => 'V''€œ' => 'G''€' => 'D''€' => 'E''Ё' => 'Yo''€“' => 'Zh'

        
'€”' => 'Z''œ' => 'I''„' => 'J''š' => 'K''€' => 'L''“' => 'M''Н' => 'N''О' => 'O'

        
'Ÿ' => 'P''*' => 'R''С' => 'S''Т' => 'T''У' => 'U''Ф' => 'F''Х' => 'H''Ц' => 'C'

        
'Ч' => 'Ch''Ш' => 'Sh''Щ' => 'Sh''Ъ' => '''Ы' => 'Y''Ь' => '''*' => 'E''Ю' => 'Yu'

        
'Я' => 'Ya'

        
'а' => 'a''б' => 'b''в' => 'v''г' => 'g''д' => 'd''е' => 'e''€˜' => 'yo''ж' => 'zh'

        
'з' => 'z''и' => 'i''й' => 'j''к' => 'k''л' => 'l''м' => 'm''н' => 'n''о' => 'o'

        
'п' => 'p''‚' => 'r''с' => 's''€š' => 't''’' => 'u''€' => 'f''€' => 'h''€*' => 'c'

        
'€' => 'ch''*' => 'sh''€' => 'sh''*' => '''€' => 'y''’' => '''э' => 'e''ю' => 'yu'

        
'я' => 'ya'

  

        
// Ukrainian 

        
'€' => 'Ye''€*' => 'I''€' => 'Yi''Ґ' => 'G'

        
'€' => 'ye''€“' => 'i''€”' => 'yi''€˜' => 'g'

  

        
// Czech 

        
'’' => 'C''Ď' => 'D''š' => 'E''€' => 'N''œ' => 'R''*' => 'S''Ť' => 'T''Ů' => 'U',  

        
'Ž' => 'Z',  

        
'č' => 'c''ď' => 'd''€' => 'e''*' => 'n''„' => 'r''š' => 's''ť' => 't''ů' => 'u'

        
'ž' => 'z',  

  

        
// Polish 

        
'€' => 'A''€*' => 'C''œ' => 'e''Ł' => 'L''’' => 'N''' => 'o''š' => 'S''Ź' => 'Z',  

        
'Ż' => 'Z',  

        
'€' => 'a''€' => 'c''„' => 'e''€š' => 'l''€' => 'n''' => 'o''€' => 's''ź' => 'z'

        
'ż' => 'z'

  

        
// Latvian 

        
'‚' => 'A''’' => 'C''€™' => 'E''Ģ' => 'G''Ī' => 'i''Ķ' => 'k''Ļ' => 'L''€' => 'N',  

        
'*' => 'S''Ū' => 'u''Ž' => 'Z'

        
'ā' => 'a''č' => 'c''€œ' => 'e''ģ' => 'g''ī' => 'i''ķ' => 'k''ļ' => 'l''€*' => 'n'

        
'š' => 's''ū' => 'u''ž' => 'z' 

    
); 

     

    
// Make custom replacements 

    
$str preg_replace(array_keys($options['replacements']), $options['replacements'], $str); 

     

    
// Transliterate characters to ASCII 

    
if ($options['transliterate']) { 

        
$str str_replace(array_keys($char_map), $char_map$str); 

    } 

     

    
// Replace non-alphanumeric characters with our delimiter 

    
$str preg_replace('/[^\p{L}\p{Nd}]+/u'$options['delimiter'], $str); 

     

    
// Remove duplicate delimiters 

    
$str preg_replace('/(' preg_quote($options['delimiter'], '/') . '){2,}/''$1'$str); 

     

    
// Truncate slug to max. characters 

    
$str mb_substr($str0, ($options['limit'] ? $options['limit'] : mb_strlen($str'UTF-8')), 'UTF-8'); 

     

    
// Remove delimiter from ends 

    
$str trim($str$options['delimiter']); 

     

    return 
$options['lowercase'] ? mb_strtolower($str'UTF-8') : $str

}

rnek kullanm

description">PHP- Kodu:
<?php 

include('url_slug.php'); 

header('Content-type: text/plain; charset=utf-8'); 

  

// Basic usage 

echo "This is an example string. Nothing fancy." "\n"

echo 
url_slug("This is an example string. Nothing fancy.") . "\n\n"

  

// Example using French with unwanted characters ('?) 

echo "Qu'en est-il franais? a marche alors?" "\n"

echo 
url_slug("Qu'en est-il franais? a marche alors?") . "\n\n"

  

// Example using transliteration 

echo "Ч€šо дела€š’, если я не €о€’, UTF-8?" "\n"

echo 
url_slug("Ч€šо дела€š’, если я не €о€’, UTF-8?", array('transliterate' => true)) . "\n\n"

  

// Example using transliteration on an unsupported language 

echo "מ€ אם א*„ “א ר€צ€ UTF-8 ת€€„ם?" "\n"

echo 
url_slug("מ€ אם א*„ “א ר€צ€ UTF-8 ת€€„ם?", array('transliterate' => true)) . "\n\n"

  

// Some other options 

echo "This is an Example String. What's Going to Happen to Me?" "\n"

echo 
url_slug

    
"This is an Example String. What's Going to Happen to Me?",  

    array( 

        
'delimiter' => '_'

        
'limit' => 40

        
'lowercase' => false

        
'replacements' => array( 

            
'/\b(an)\b/i' => 'a'

            
'/\b(example)\b/i' => 'Test' 

        


    ) 

); 

  

/* 

Output: 

  

This is an example string. Nothing fancy. 

this-is-an-example-string-nothing-fancy 

  

Qu'en est-il franais? a marche alors? 

qu-en-est-il-franais-a-marche-alors 

  

Ч€šо дела€š’, если я не €о€’, UTF-8? 

chto-delat-esli-ya-ne-hochu-utf-8 

  

מ€ אם א*„ “א ר€צ€ UTF-8 ת€€„ם? 

מ€-אם-א*„-“א-ר€צ€-utf-8-ת€€„ם 

  

This is an Example String. What's Going to Happen to Me? 

This_is_a_Test_String_What_s_Going_to_Ha 

*/