PHP - 删除括号和特殊字符

PHP - Removing Brackets and Special Characters

我想修改 PHP 字符串,以便将其用作锚标记。

我使用了这里找到的方法:Remove all special characters from a string

从我的字符串中删除 & 符号效果很好,但它似乎没有删除或影响括号或标点符号。

这是我目前使用的:

$name_clean = preg_replace('/ [^A-Za-z0-9\-]/', '', $name); // REMOVES SPECIAL CHARACTERS
$name_slug = str_replace(' ', '-', $name_clean); // REPLACES SPACES WITH DASHES IN TITLE
$link = strtolower( $name_slug ); // CREATES LOWERCASE SLUG VERSION OF TITLE_SLUG

我的字符串(在本例中为 $name)= 圣约翰(纽芬兰)。

我得到的输出 = #st.-john'snewfoundland)

我想完全删除句点、撇号和括号。

如有任何帮助,我们将不胜感激!

您的正则表达式模式 / [^A-Za-z0-9\-]/ 似乎在开头 / 之后包含一个 space。此模式将仅匹配 space 之后的特殊字符。删除 space 应该会得到你想要的结果。