__PRE__
工作得很好,但我发现了一些失败的案例:
gen_slug('Andrés Cortez')返回andres-cortez而不是gen_slug('Andrés Cortez')
为什么?关于andres-cortez参数的任何想法?
在我的PHP站点上,当前用户使用电子邮件地址和密码登录.我想添加一个用户名,他们设置的用户名将是唯一的,他们无法更改.我想知道如何使这个名称没有空格并在URL中工作,所以我可以使用用户名链接到配置文件和其他东西.如果用户名中有空格,则应添加下划线jason_davis.我不确定最好的方法吗?
我正在用PHP创建一个小留言板,我需要"简化"主题标题,以便在主题的网址中显示它.
例子:
Ceci est un sujet d'exemple 变 ceci-est-un-sujet-d-exemple
J'ai été à la plage 变 j-ai-ete-a-la-plage
I dislike sp&cial character$成为i-dislike-spcial-character(如果有更好的翻译,我会接受)
编辑1:所有字符串必须是UTF-8编码
编辑2:我最近了解到这种操作的结果被称为"slug"或"友好网址"
我想知道是否有一个简单的函数/代码可以处理从给定的字符串创建一个 slug。
我正在开发一个多语言网站(英语、西班牙语和阿拉伯语),但我不确定如何专门针对西班牙语和阿拉伯语进行处理。
我目前正在使用来自 CSS-Tricks 的以下代码,但它不适用于 UTF-8 文本。
<?php
function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
echo create_slug('does this thing work or not');
//returns 'does-this-thing-work-or-not'
?>
Run Code Online (Sandbox Code Playgroud) 用最多一个其他字符替换某些字符的效果最好的脚本是什么?
例如,我需要用加号()替换所有空格() and commas (,),但一次不能超过一个加号+
所以: the,quick, brown fox jumped, over the,, lazy, dog
会成为: the+quick+brown+fox+jumped+over+the+lazy+dog
我想在用户提交的帖子标题的基础上在URL中使用连字符分隔的字符串.假设用户输入帖子的标题如下
$title = "USA is going to deport indians -- Breaking News / News India";
Run Code Online (Sandbox Code Playgroud)
我想将其转换如下
$url = "usa-is-going-to-deport-indians-breaking-news-news-india";
Run Code Online (Sandbox Code Playgroud)
可能还有一些我想要转换的角色.例如'&'到'和'和'#','%',到连字符( - ).其中一种方法是使用php替换功能.但是使用这种方法,我必须多次调用replace函数.这很费时间.还有一个问题是标题字符串中可能有多个连字符( - ),我想将多个连字符( - )转换为一个连字符( - ).
有没有强大而有效的方法来解决这个问题?