2010-12-01 8 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

따라서 사용자는 "증오"또는 "증오"를 입력 할 수 있으며, 그것은 어느 것이 될 것인지를 안다. 두 가지 이상의 단어가있을 수 있습니까? – 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))); 
} 

이렇게하면 ' 사용자가 실수로 입력 할 수있는 여유 공간을 고려해야합니다. 'hating'또는 'Hating'을 입력 할 때 사용자가 입력 필드에 대문자를 입력하는 경우 텍스트를 소문자로 표준화해야합니다.

+0

이것은 작동하지 않았 두 번 예를 들어 "싫어하는이 시험을 싫어하는" 또한 대문자를 써서 시도해 보니 "싫어하는 것이이 테스트를 미워합니다."라고 말한 적이 있습니다. – Matu

+0

사실, 첫 번째 정보를 잡기 만하고 사용자가 두 번 입력 한 것을 고려하지 않았습니다. – Liam

관련 문제