-1

私は以下を使用しますpreg_replace

$replace = '/[!\/."",#\s\-:?"]+/';

たとえば、'上記に追加しようとすると、ファイルにエラーが発生します。

解析エラー:構文エラー、38行目の.../s.phpの予期しないT_NS_SEPARATOR

さらに、置き換えるすべての記号を一覧表示する簡単な方法はありますか?

4

2 に答える 2

2

シンボルを削除したい場合は、次のことを試してください。

$replace = "/[^a-zA-Z0-9 ]/";

^「以下以外」を示します。許可したい文字をリストに追加します。すべてのシンボルをリストしてエスケープに対処するよりも簡単です。

于 2012-01-25T22:09:26.050 に答える
1

'単一引用符で囲まれた文字列の区切り文字でもあるため、文字をエスケープする必要があります。

$replace = '/[!\/.,#\s\-:?"\']+/';
                           ^^

エスケープは\、その前に追加することによって行われます。これは通常、文字列定義を終了して構文エラーが発生するため、論理的です(PHPはコードを解析できません)。一重引用符で囲まれた文字列ドキュメントを参照してください。

置き換えるすべての記号を一覧表示する簡単な方法はありますか?

(すでに行っているように)それらをリストするだけで十分簡単ではありませんか?ですから、あなたが実際に何を心配しているのかがはっきりしないことを認めなければなりません。そのため、これ以上簡単なものを提供することはできません。

于 2012-01-26T10:48:51.057 に答える