このコードを使用して文字列から不要な文字を削除していますが、改行スペースではない ALT+0160 文字に大きな問題があります。こちらも外す必要があります
$name = str_replace ("'", "", $name);
$name = str_replace (""", '"', $name);
$name = str_replace ("&", "&", $name);
$name = str_replace ("<", "", $name);
$name = str_replace (">", "", $name);
$name = str_replace ("&", "_", $name);
$name = str_replace ("*", "_", $name);
$name = preg_replace('/[^ \p{L}\p{N} \@ \_ \- \.]/u', '', $name);