मैं बस कुछ इसी तरह के साथ काम कर रहा था, और मैं कोड के इस छोटे से टुकड़े के साथ आया था , यह लैटिन वर्णों के उपयोग पर भी विचार करता है।
$str = 'El veloz murciélago hindú comía fe<!>&@#$%&!"#%&?¡?*liz cardillo y kiwi. La cigüeña ¨^;.-|°¬tocaba el saxofón detrás del palenque de paja';
सबसे पहले मैं सिर्फ यह आसान बाद में उपयोग करने के लिए बनाने के लिए htmlentities को स्ट्रिंग परिवर्तित:
यह नमूना स्ट्रिंग है।
$friendlyURL = preg_replace('/&([a-z]{1,2})(?:acute|circ|lig|grave|ring|tilde|uml|cedil|caron);/i','\1',$friendlyURL);
तब मैं एचटीएमएल से वापस स्ट्रिंग परिवर्तित:
$friendlyURL = htmlentities($str, ENT_COMPAT, "UTF-8", false);
तब मैं उनकी संगत ASCII वर्ण (á
a
हो जाता है, Ü
U
हो जाता है, और इसी तरह) के साथ लैटिन वर्णों की जगह प्रतीकों के लिए इकाइयों, फिर बाद में आसान उपयोग के लिए।
$friendlyURL = html_entity_decode($friendlyURL,ENT_COMPAT, "UTF-8");
अगला मैं हाइफ़न में सभी गैर अक्षरांकीय अक्षर की जगह।
$friendlyURL = preg_replace('/[^a-z0-9-]+/i', '-', $friendlyURL);
मैं स्ट्रिंग अंदर अतिरिक्त हाइफ़न निकालें:
$friendlyURL = trim($friendlyURL, '-');
और अंत में छोटे अक्षरों में सभी परिवर्तित:
$friendlyURL = preg_replace('/-+/', '-', $friendlyURL);
मैं अग्रणी और अनुगामी हाइफ़न को दूर
$friendlyURL = strtolower($friendlyURL);
सभी एक साथ:
function friendlyUrl ($str = '') {
$friendlyURL = htmlentities($str, ENT_COMPAT, "UTF-8", false);
$friendlyURL = preg_replace('/&([a-z]{1,2})(?:acute|circ|lig|grave|ring|tilde|uml|cedil|caron);/i','\1',$friendlyURL);
$friendlyURL = html_entity_decode($friendlyURL,ENT_COMPAT, "UTF-8");
$friendlyURL = preg_replace('/[^a-z0-9-]+/i', '-', $friendlyURL);
$friendlyURL = preg_replace('/-+/', '-', $friendlyURL);
$friendlyURL = trim($friendlyURL, '-');
$friendlyURL = strtolower($friendlyURL);
return $friendlyURL;
}
टेस्ट:
$str = 'El veloz murciélago hindú comía fe<!>&@#$%&!"#%&-?¡?*-liz cardillo y kiwi. La cigüeña ¨^`;.-|°¬tocaba el saxofón detrás del palenque de paja';
echo friendlyUrl($str);
परिणाम:
el-veloz-murcielago-hindu-comia-fe-liz-cardillo-y-kiwi-la-ciguena-tocaba-el-saxofon-detras-del-palenque-de-paja
मुझे लगता है कि Gumbo का जवाब बेहतर आपकी समस्या को फिट बैठता है, और यह एक छोटी कोड है, लेकिन मैंने सोचा कि यह उपयोगी होगा दूसरो के लिए।
चीयर्स, एड्रियाना
जब आप शब्दों के बीच सीधे होते हैं तो आप हाइफ़न छोड़ना चाहेंगे (उदाहरण के लिए "कुछ चीज़" को "कुछ" में अनुवाद नहीं करना चाहिए) और अन्य विशेष मामलों। –