2016-08-27 3 views
0

の適切な区切り文字が必要私のために働く! :(は、あなたが誰かどのように正しくこの文字列に区切り文字を追加する方法を教えてくださいすることができ、この文字列

+0

達成しようとしていることを詳しく説明できますか? – BVengerov

+0

@BVengerov PHP警告エラーが表示されます。「区切り文字は英数字またはバックスラッシュであってはなりません。 –

+0

なぜ 'preg_match'を使う必要がありますか? '$ host'はおそらく正規表現ではないので、' strstr() 'で普通の文字列検索をしてください。 – Barmar

答えて

0

あなたの正規表現の最後のシンボルはとても基本的にはそれだけで無効な正規表現だ、$host値の最後のシンボルである

これは動作するはずです:。preg_match ("#//$host#", $referer);が、コメントで述べたように、あなたはおそらく、単純な文字列検索を使用することができます。

EDIT:strstrため

例:

if(strstr($referer, $host) === false)

+0

あなたは私にも単純な文字列のコードを教えてください、申し訳ありませんが、コメントで述べたように、単純な文字列検索を行う方法はわかりませんか?事前に多くの感謝、私はこのコードもテストします! –

+0

@AzemHajdariそこに行く、編集を参照してください。 – BVengerov

+0

if(!preg_match( "#// $ host#"、$ referer))を使用します。 PHPのエラーが消えてしまったので、うまくいくと思います。とにかくとにかくありがとう、BVengerov。 –

0

$hostは、正規表現パターンの文字が含まれていない限り、あなたがそれを変更することができるはずです。

if(!strstr($referer, '//' . $host)) 

しかし、それは実際には正規表現だ場合、あなたはとして$hostに表示されるように期待していない任意の文字を使用することができます例えば、#のような区切り文字は、ありそうもないホスト文字です。

if (!preg_match("#//$host#", $referer)); 

あなたは区切り文字として/使用していないので、あなたはそれらの文字をエスケープする必要はありません。

+0

さて、私はここに投稿しようとします。多くのありがとうBarmar! –

+0

私は2番目のコードを使用して、より安全に、もう一度Barmarありがとう! –

関連する問題