2010-12-01 31 views
1

私は基本的にユーザーにコメントを投稿させるスクリプトを用意していますが、スクリプトに入れたすべてのコメントの先頭には、しかし、時にはユーザーが自分自身を憎んで、それは憎むことを嫌うと、その後、ユーザーのコメントと出てくる。それは、ユーザーが入力した文章の最初の単語であれば誰でも、憎しみや憎しみを取り除く方法を知ることができますか?現時点では、私は憎しみを排除するように設定していますが、現時点では良くない文章で使用されている場所を削除しています。使用されているコードの一部を次に示します。私は言葉嫌いに入れて、それを設定し、提出したときに、それをデータベースに含まれている場所= ' "嫌い文字列から最初の単語を取り除く

if (strpos($content, 'hating') !== false) { 
    $content = str_replace("hating", "", $content); 
    } 

    $query="INSERT INTO posts SET story='hating ".mysql_real_escape_string($content)."', time_added='".time()."', date_added='".date("Y-m-d")."', active='$active', pip='".$_SERVER['REMOTE_ADDR']."'"; 
    $result=$conn->execute($query); 
    $pid = mysql_insert_id(); 

SETの物語です

+0

したがって、ユーザーは「嫌い」または「嫌い」と入力することができ、どちらがそれになるのか分かりませんか? 2つ以上の単語が存在する可能性はありますか? – Dmitri

答えて

2

試してみてください。

$content = preg_replace("(^hating)","",$content); 
+0

なぜ正規表現でかっこが必要ですか? – zerkms

+1

正規表現には区切り文字が必要です。通常、人々は '/'を使いますが、あなたはかなり多くのシンボルを使うことができます。サブパターンを使用するときには(私にとって)意味があるので、かっこを使用する方が好きです。 –

+1

ありがとうございましたこれは仕事と素晴らしい最初のexperinceここでスタックオーバーフロー – Matu

0

ここではいくつかあります

if(substr(rtrim(strtolower($content)), 0,5)=="hating") 
{ 
    $content = rtrim(substr($content,6,strlen($content))); 
} 

このようにして、あなたはあなたに「嫌い」を得ることができますユーザーが間違って入力する可能性のある余分なスペースを考慮に入れることができます。 「嫌い」や「嫌い」と入力したときにユーザーが入力欄に大文字を入力した場合にも、テキストを小文字に正規化する必要があります

+0

これは動作していないと2回 "嫌いなテストを嫌い"またキャップで試してみたところ、「嫌いなのはこのテストを嫌う」 – Matu

+0

本当に、私は最初のものをキャッチしていただけで、ユーザーがそれを2回入力したことを考慮していなかった。 – Liam