2010-04-05 19 views
6

संभव डुप्लिकेट:
URL Friendly Username in PHP?सबसे अच्छा तरीका है

im किसी भी तरह उचित कार्यों का उपयोग कर से बचने के लिए और एक स्लग

मैं इस प्रयोग किया जाता है बनाने के लिए उलझन में:

$slug_title = mysql_real_escape_string()($mtitle); 

लेकिन कोई मुझे इसका इस्तेमाल और उपयोग करने के लिए नहीं urlencode()

जो एक मल और सुरक्षा

के रूप में मैं इतना में देख सकते हैं के लिए बेहतर है कहा था, यह सम्मिलित करता है - शब्दों के बीच:

https://stackoverflow.com/questions/941270/validating-a-slug-in-django 
+0

मेरा उत्तर यहाँ http://stackoverflow.com/questions/2955251/php-function-to-make-slug-url-string/10360316#10360316 –

उत्तर

11

या तो MySQL या यूआरएल से बचने का तरीका नहीं है।

Here is an article करता है कि यह बेहतर:

function toSlug($string,$space="-") { 
    if (function_exists('iconv')) { 
     $string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string); 
    } 
    $string = preg_replace("/[^a-zA-Z0-9 -]/", "", $string); 
    $string = strtolower($string); 
    $string = str_replace(" ", $space, $string); 
    return $string; 
} 

यह भी सही ढंग से उच्चारण चिह्न पात्रों के लिए काम करता है।

+0

इस समारोह अभ्यस्त काम समस्या अरबी और एमबी भाषाओं के लिए है देखें और सभी वर्णों को बदलता है - –

+2

दुर्भाग्यवश आइकनव प्लेटफॉर्म पर असंगत रूप से काम करता प्रतीत होता है: php -r 'print iconv ("UTF-8", "ASCII // TRANSLIT", "bär")। "\ N"; ' मेरे मैक पर उबंटू (10.04) और 'बी' एआर 'पर' बार 'देता है। – tuomassalo

+3

आह ... PHP की प्लेटफार्म स्वतंत्रता ... इसे प्यार करना होगा। – Thomas

2

mysql_real_escape_string() में urlencode() से अलग उद्देश्य है जो दोनों स्लग बनाने के लिए उपयुक्त नहीं हैं।

एक स्लग स्पष्ट & अर्थपूर्ण वाक्यांश है जो संक्षेप में पृष्ठ का वर्णन करता है।

mysql_real_escape_string() खतरनाक वर्णों से बच निकलता है जो मूल क्वेरी स्ट्रिंग का उद्देश्य बदल सकता है।

urlencode() "%" के साथ अमान्य यूआरएल अक्षरों से बचता है जिसके बाद 2 हेक्स अंकों का प्रतिनिधित्व होता है जो उनके कोड का प्रतिनिधित्व करता है (उदाहरण के लिए अंतरिक्ष के लिए% 20)। इस तरह, परिणामस्वरूप स्ट्रिंग स्पष्ट & अर्थपूर्ण, अप्रिय वर्ण अनुक्रमों के कारण, उदा। http://www.domain.com/bad%20slug%20here%20%3C--

इस प्रकार urlencode() द्वारा प्रभावित किसी भी वर्ण को छोड़ा जाना चाहिए, रिक्त स्थान को छोड़कर आमतौर पर - के साथ प्रतिस्थापित किया जाना चाहिए।

संबंधित मुद्दे