$post_name = strtolower(preg_replace('/[^a-z0-9]+/i', '-', $post_title));
当我在帖子标题的末尾添加空格或)时,此代码会出错。
如何解决这个问题?
这是什么意思'/[^a-z0-9]+/i'
?
感谢。
答案 0 :(得分:0)
确定..
试试这个:
$string = trim(strtolower("This is my article (part 1) "));
$string = preg_replace("/[^a-z0-9]+/i", "-", $string);
$string = preg_replace("/-$/", "", $string);
正如我在评论中所写,我认为问题是strtolower(),它试图使“ - ”小写,但它不起作用。 因此,首先使普通字母小写,然后做pregreplace制作a - 。 然后是第二个移除最后一个的pregreplace - 如果它在那里。
前两行可能是:
$string = preg_replace("/[^a-z0-9]+/i", "-", trim(strtolower("This is my article (part 1) ")));
但我想说清楚,代码的每一步