PHP从字符串中删除特殊字符并保留一些


PHP remove special character from string and leave some

我需要从字符串中删除除- ( ) 之外的所有特殊字符

我有这个代码到目前为止

$q = preg_replace('/[^A-Za-z0-9'-]/', '', $q); //removes ALL characters

如何排除- ( )

您的正则表达式已经排除了-

否则,将括号放在否定字符类中:

$q = preg_replace('/[^A-Za-z0-9() -]/', '', $q);

此外,你不需要逃避冲刺。

您应该尝试类似的东西

$q = preg_replace('/[^A-Za-z0-9'-'(') ]/', '', $q); //removes ALL characters

以上将允许spaces()以及-

您应该使用以下函数:

public function getAlphaNumericString($string) {
  return  preg_replace('/[^A-Za-z0-9'- ]/', '', $string); // Removes special chars.
}

任何你想破例的东西示例=>。是例外,其他特殊字符将被删除preg_replace('/[^A-Za-z0-]/(.)','',$string);

function url($string)
{
    return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
}

$url_name = 'manoj&chauhan';
echo =$url(url_name );
// result manoj-chauhan