Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2016, 06:04   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию Отсутствие регулярного выражения?

Доброго времени суток всем)
Имеется 2 файла:
PHP код:
add.php
<?php
    
include("strainer.php");

    if (isset(
$_POST["txt"]) && isset($_POST["nik"]) ) {
        
        if ((
$_POST["txt"] != "") && ($_POST["nik"] != "") ) {
    
            
$sql mysql_query("INSERT INTO `questbook`(`texts`, `name`) 
                        VALUES ('"
.filter($_POST["txt"])."','".$_POST["nik"]."');");
    
    }else {
            echo 
"<p>Error</p>";
        }
    }
?>
PHP код:
strainer.php
<?php
$_pattern 
"/fack|bitch/i";
$_replace "*%$&";

$test=array(1=>"Тест1",2=>"Тест2",3=>"Тест3");

function 
filter($text)
{
10-я строка    return preg_replace($_pattern$_replace$text);
}
 
?>
Когда я использовал preg_replace с переменной $_pattern в add файле, всё работало.

Теперь когда решил перенести в файл strainer.php пишет, что регулярное выражение пусто. Это как такое может быть?


Предупреждение: preg_replace () [function.preg-заменить]: Пусто регулярное выражение в Z: \ главная \ \ WWW локальный \ Web \ kyrsahc \ strainer.php в строке 10

Последний раз редактировалось Artsiom; 02.06.2016 в 09:20. Причина: нечитаемо
Artsiom вне форума Ответить с цитированием
Старый 02.06.2016, 11:27   #2
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Хелп(
Artsiom вне форума Ответить с цитированием
Старый 02.06.2016, 11:48   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

думаю, что проблема в видимости переменных.

попробуйте так:
strainer.php
PHP код:
<?php 

$test
=array(1=>"Тест1",2=>"Тест2",3=>"Тест3");  // это можно выкинуть, этот мусор тоже уже ни к чему...

function filter($text

   
$_pattern "/fack|bitch/i"
   
$_replace "*%$&"

   return 
preg_replace($_pattern$_replace$text); 

  
?>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2016, 12:52   #4
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
// это можно выкинуть, этот мусор тоже уже ни к чему...
Угу)

Спасибо))

Тут ещё есть вопрос( дописал немного тексту.
Получается при каждом тырчке по кнопке у меня будет заполняться из файла массив слов, обрабатываться, заполняться массив смайлов и т.п.
Так понимаю это быдлокод, а как сделать по нормальному?

PHP код:
<?php
function filter($text)
{
    
$_replace "*%$&";
    
    
$_pattern_two file('file.txt'FILE_IGNORE_NEW_LINES);

    foreach(
$_pattern_two as $value)
    {
        
$_pattern $_pattern$value."|";    
    }
    
$_pattern preg_replace("/^/""/"$_pattern);
    
$_pattern preg_replace("/$/""\*%\$&/i"$_pattern);

    
$_pattern_bb "/\[([biu])\](.*)\[\/([biu])\]/U";
    
    
$_pattern_sm = array ("/:\-\)/",                   "/:\-\(/",                     "/o_0/",                       "/devil/");
    
$_replace_sm = array ("<img src = smiles/s20.gif>""<img src = smiles/s36.gif>""<img src = smiles/s48.gif>""<img src = smiles/s43.gif>");
    
    
$text preg_replace($_pattern$_replace$text); //censor

    
$text preg_replace($_pattern_bb"<$1>$2</$3>"htmlspecialchars($textENT_QUOTES)); //bb
    
    
return preg_replace($_pattern_sm$_replace_sm$text); //smiles
}
?>
Artsiom вне форума Ответить с цитированием
Старый 02.06.2016, 13:25   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вместо цикла можно использовать implode("|", $array);

PHP код:
  $_pattern_two file('file.txt'FILE_IGNORE_NEW_LINES);
  
$_pattern implode("|"$_pattern_twoy); 
а в остальном, да, всё так и есть, нужно подготовить шаблоны, прежде, чем их использовать.
А что Вас не устраивает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2016, 14:08   #6
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А что Вас не устраивает?
Что это будет происходить каждый раз)
PHP код:
mysql_query("INSERT INTO `questbook`(`texts`, `name`) 
VALUES ('"
.[!!!]filter[/!!!]($_POST["txt"])."','".[!!!]filter[/!!!]($_POST["nik"])."');"); 
Лан, пофиг, курсач стерпит)))

Спасибо большое ещё раз!)
Artsiom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, арифметические выражения вида A x B. Вычислить значение выражения Un1q Паскаль, Turbo Pascal, PascalABC.NET 4 09.12.2013 14:47
Удалять лишние пробелы в строке без использования регулярного выражения Alex.s1989 Помощь студентам 3 04.10.2013 22:09
Разработка регулярного выражения для разбора строки с разделителями Meta2 PHP 1 26.10.2012 19:31
Разработка регулярного выражения для извлечения артикулов товаров Meta2 Microsoft Office Excel 5 21.03.2012 21:02
Корректность Регулярного выражения Altera Свободное общение 4 18.08.2011 17:44