[英]PHP: Has this code performance issues? Can be improved?
我正在尝试在我的网站上进行一些SEO改进。 我想在URL中添加一些文本。 我正在尝试向URL添加信息。 我从项目中获得“产品名称”(或标题),并将其附加到URL。 因此,如果“ Core 2 Duo 8600 CPU”的ID为10,则旧网址为:
example.com/cpu/10
现在,我要附加产品名称,因此它将是:
example.com/cpu/10/core-2-duo-8600-CPU/
问题是我不希望在其中输入特殊字符,也不希望输入带有重音的单词(这是西班牙语网站),因此我建立了以下功能:
function makeFriendlyURL($string){
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$string = str_replace($search, $replace, $string);
$string = preg_replace("/[^A-Za-z0-9]/"," ",$string);
$string = preg_replace('/\s+/', '-',trim($string));
return strtolower($string);
}
makeFriendlyURL('Técnico electricista') //tecnico-electricista (accented é is replaced with e)
makeFriendlyURL('RAM 1066/1333') // ram-1066-1333 (striped the slash and lowercase "RAM")
现在,您看到任何问题吗? 我认为它可以改进,但不知道如何。
可以改进此代码吗?
在这些情况下,定义您想要的东西比不需要的东西容易,因为这是一个不断变化的清单。
这是典型的代码,它将根据标题创建一个段:
// translate accented chars
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$string = str_replace($search, $replace, $string);
// create slug by replacing non-alphanumeric chars with a dash
$slug = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($string)), '-');
注意:作为URL,我添加了strtolower()
。 如果您确实要在网址中使用大写字母,请随时将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.