私はTRANSLITとPHPのinconvを使用してきたなど、特殊文字、および「アクセント」文字を混合することができ、データの束、変換する文字が
を得たが、今日気づきました弾丸ポイントが「雄牛」に変換されること。私はこのような他の文字が変換されたり削除されたりしないかどうかわかりません。 $、*、%などは削除されます。
私がしようとしていることは、文字を残しておきますが、「非言語」のビットだけを削除することです。
これは私がinconv機能を超えることにpreg_replaceを移動する場合、彼らが翻訳される前に、アクセント文字が削除されますので、それは」doesnの、当然の
$slugIt = @iconv('UTF-8', 'ASCII//TRANSLIT', $slugIt); $slugIt = preg_replace("/[^a-zA-Z0-9 -]/", "", $slugIt);
を使用してきたコードですいずれかの仕事。
これに関するご意見はありますか? TRANSLITの文字以外の文字が欠落していますか?
---------------------編集------------------------ --------- 不思議なことに、それは弾丸を '雄牛'に変えているTRANSLITではないようです。私はpreg-replaceをコメントアウトし、 'bull'は箇条書きに戻った。残念ながら、私はこれを使って読みやすいURLを作成しようとしています。他にもいくつかのURLがありますので、URLエンコーディングを行う必要があります。
ASCIIは//行き過ぎIGNOREしていますか? – rojoca
私はそれが遠すぎると思うが、私はそれをもう一度見せている。 – pedalpete
困っている文字のリストがある場合は、http://php.net/strtrが役立つかもしれません。いくつかのコメントは役に立つかもしれません – rojoca