Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сделать проверку по стоп-словам

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: julpierto   (11.07.2011 в 23:27)   письмо автору
 
   для: Valick   (11.07.2011 в 23:17)
 

Viva La Cuba!!!
Работает) спасибо Valick, что в конце концов "вдолбили" в меня cвою идею и не остановились где-нибудь на пол пути со словами "дерево понимает быстрее")

  Ответить  
 
 автор: Valick   (11.07.2011 в 23:17)   письмо автору
 
   для: julpierto   (11.07.2011 в 23:15)
 

тогда поменяйте местами true и false
$dostup=false;
...

if(substr_count($sub,$value)>0) $dostup=true;

___
он работает, просто я сначала не понял условие задачи)

  Ответить  
 
 автор: julpierto   (11.07.2011 в 23:15)   письмо автору
 
   для: Valick   (11.07.2011 в 22:53)
 

Valick, у меня проверка не на плохие слова, а наоборот - если стоп-слово присутствует в заголовке темы, она публикуется, тем самым отсеивая не подходящие темы:)
Поймите меня пожалуйста правильно, ваш идея мне нравится и спасибо, что расширяете мой пхп кругозор, давая альтернативные варианты)
Но этот скрипт не работает и хочется понять почему?)

  Ответить  
 
 автор: Valick   (11.07.2011 в 22:53)   письмо автору
 
   для: julpierto   (11.07.2011 в 22:38)
 

используем только в том случае если проверка на плохие слова не даст результата
если встретим хоть одно слово из массива, то будет false и условие соответственно не выполниться
с этим все чётко :)

  Ответить  
 
 автор: julpierto   (11.07.2011 в 22:38)   письмо автору
 
   для: Valick   (11.07.2011 в 22:35)
 

Сначала мы назначаем переменной значение $dostup=true;
,затем $dostup=false;
,а потом снова используем как true

  Ответить  
 
 автор: Valick   (11.07.2011 в 22:35)   письмо автору
 
   для: julpierto   (11.07.2011 в 22:26)
 

чем это Вас смущает?

  Ответить  
 
 автор: julpierto   (11.07.2011 в 22:26)   письмо автору
 
   для: Valick   (11.07.2011 в 22:18)
 

Насчет регулярных выражений согласен - попробовал, где-то тут в коде ошибка, сценарий не запускается
foreach($stopkeys as $value){ 
    if(substr_count($sub,$value)>0) $dostup=false; // вот этот момент меня смущает

  Ответить  
 
 автор: Valick   (11.07.2011 в 22:18)   письмо автору
 
   для: julpierto   (11.07.2011 в 21:56)
 

может потому что мой вариант Вы так и не попробовали?)

// Check subject
$stopkeys = array ('картошка','марковка','капуста','огурец');
$dostup=true;
$sub=strtolower($subject);
foreach($stopkeys as $value){ 
    if(substr_count($sub,$value)>0) $dostup=false; 
}
if($dostup){
    $subject = htmlspecialchars(trim($subject));
}else if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])){
    $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_subject'] : $lang['Empty_subject'];
    }

там где можно обходиться без регулярных выражений - нужно обходиться без регулярных выражений ;)

  Ответить  
 
 автор: julpierto   (11.07.2011 в 21:56)   письмо автору
 
   для: Valick   (11.07.2011 в 19:28)
 

Ваш код должен работать по идее, но не работает в моем случае.
Друг подсказал такое решение, через регулярные выражения, сценарий срабатывает, не пойму почему ваш вариант не хочет?

if (!empty($subject))
     {   $subject = strtolower($subject);
         if (preg_match('/красный|желтый|зеленый|синий/', $subject)) 
     {  
          $subject = htmlspecialchars(trim($subject)); } else { die("Not Allowed"); }  // может потому что не было концовки?
     }
   

  Ответить  
 
 автор: Valick   (11.07.2011 в 19:28)   письмо автору
 
   для: julpierto   (11.07.2011 в 19:22)
 

вообще строка $subject = htmlspecialchars(trim($subject)); вызывает некоторое подозрение

htmlspecialchars - нужно использовать при выводе в браузер
а я так понимаю $subject будут запихивать в БД
$count_keys и будет ноль кроме случая когда искомое слово последнее в массиве (можете проверить)
я же дал Вам рабочий код :)

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования