申し訳ありませんが、正規表現を理解したことがありません。
スペースを除いて、文字列から英数字以外のもの(製品名から、アンパサンドが含まれているものもあります)を削除する必要があります。
これまでのところ、これがあります(別のスタックオーバーフローの投稿から見つかりました):
$productname = preg_replace("~[\W]~","",$product['name']);
これで、英数字がすべて "" に置き換えられます。現在すべてのスペースを削除しているため、スペースを除外したいことを除いて、これは問題ありません。また、チルダ ( ~
) が正規表現で何をするのかどこにも見つかりません。
スペースに関しては、によって達成される否定的な先読み?!
があることがわかりましたが、それを上記に組み込む方法はわかりません。