PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): [1] 2 3 4 5 »

> Найдено сообщений: 68
Zveryugaz Отправлено: 10 Мая, 2016 - 20:38:47 • Тема: Валидация bb кодов • Форум: Программирование на PHP

Ответов: 3
Просмотров: 775
Как вариант

Проверяемый текст
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = 'текст 1 [center]текст 2[/center] [center][B] текст 2 [/B][/center][size=3] текст 3 [/size][right]текст 3[/right][EMAIL="email"] [][q][][/] текст 4 [color=#ff3333]5555[/color] [b] текст 2 [/b]';
  3.  


сначала разбиваем текст
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all("(\[(/|)([a-z]+)(|=(.*?))\]([^\[\]]*))iu",$text,$d2,PREG_SET_ORDER);
  3.  


Создаем массив с разрешенными кодами
PHP:
скопировать код в буфер обмена
  1.  
  2. $bbcode=['','center','left','right','b','url'];
  3.  


потом в цикле проверяем все bb коды
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($d2 as $val){
  3.         if(!array_search(mb_strtolower($val[2]),$bbcode)){
  4.                 exit('Есть запрещенные bb коды');
  5.         }
  6. }
  7. exit('Запрещенные bb коды отсутствуют');
  8.  

(Добавление)
В любом случае придется модерировать, но по крайней мере можно не беспокоиться о запрещенных bb кодах
Zveryugaz Отправлено: 10 Мая, 2016 - 18:10:38 • Тема: Валидация bb кодов • Форум: Программирование на PHP

Ответов: 3
Просмотров: 775
kuller пишет:
не проще ли просто парсить бб коды которые разрешено использовать... а которые запрещено соотвествено на странице покажутся как текст


в том то и дело что в базу записывать нужно уже обработанный текст, так как выводом занимается один обработчик для всех bb кодов
допустим человек захочет установить код величины текста, при выводе он норм отработает( текст увеличится), но в месте где будет выведен текст запрещено устанавливать увеличенный текст.
В данном случае текст записывается для подписи
Zveryugaz Отправлено: 19 Апреля, 2016 - 16:06:59 • Тема: Валидация bb кодов • Форум: Программирование на PHP

Ответов: 3
Просмотров: 775
Всем доброго времени суток Друзья!
Столкнулся с такой проблемой - на сайте стоит форма комментирования, в ней можно использовать bb коды, проблема в том, что некоторые пользователи используют запрещенные коды. Все мои попытки найти функцию которая бы работала с валидацией bb кодов не принесли результатов (неделю искал, перерыл весь инет), после попробовал сам написать, но к сожалению не совсем разобрался с работой регулярных выражений regexp, да и велосипед изобретать не очень хочется.
Код который я писал, прошу не пинать Улыбка

Функция проверки текста
PHP:
скопировать код в буфер обмена
  1.  
  2. function BBvalidation($str, $PatentBB, $IllicitBB ){
  3.         $str = preg_replace("/\[(\/?)\]/is", "", $str);//Удаляет пустышки
  4.         $str = preg_replace ($PatentBB, $IllicitBB, $str);
  5.     return $str;
  6. }
  7.  
  8. //Создаю два массива с доступными BB кодами и подменой для них
  9. $arrPatentBB = array(
  10.         "/\[b\](.*?)\[b\/\]/is"
  11. );
  12. $arrIllicitBB = array(
  13.         '[b]$1[/b]',
  14. );
  15.  
  16. //Пример входящих данных
  17. $str = 'текст 1 [CENTER][B] текст 2 [/B][/CENTER][size=3] текст 3 [/size][EMAIL="email"] [][][][/] текст 4';
  18.  
  19. //Ну и выводим все это дело
  20. echo BBvalidation($str, $arrPatentBB, $arrIllicitBB );
  21.  
  22. /* Результат
  23. текст 1 [CENTER][B] текст 2 [/B][/CENTER][size=3] текст 3 [/size][EMAIL="email"] текст 4
  24. */
  25.  
  26.  


Часть кода удалилась но все равно остались запрещенные теги и не закрытый


Предполагаю, что регулярку нужно писать по другому принципу, все что не разрешено удаляем, и не закрытые тоже удаляем, в таком случае нужно одним выражением описать функцию для preg_replace

В общем как то-так.
Заранее спасибо за любую помощь с решением вопроса.
Zveryugaz Отправлено: 12 Июня, 2015 - 19:21:44 • Тема: не работает HTML тег <a> • Форум: HTML, Дизайн & CSS

Ответов: 2
Просмотров: 1058
Sail пишет:
Zveryugaz, не htef, а href, однако...

Во я дал Радость Радость Радость

СПАСИБО! заработался
Zveryugaz Отправлено: 12 Июня, 2015 - 19:12:28 • Тема: не работает HTML тег <a> • Форум: HTML, Дизайн & CSS

Ответов: 2
Просмотров: 1058
Всем доброго времени суток.
Думаю все таки лыжи не едут Радость
В общем, беру текст из базы, в нем содержится тег <a>
CODE (html):
скопировать код в буфер обмена
  1. <a title="тайтл" htef="ссылка">текст ссылки</a>


Проблема в том что тег не работает, ума не приложу что не так, стили вообще отключал, js останавливал, не работает и все.

Я так понимаю этой информации маловато поэтому прилагаю ссылку на станицу с багом
http://grand-monitor[dot]com/article[dot][dot][dot]g_khajp_ejforiya ( надеюсь не забанят Смущён )
текст который обрамлен тегом "Большинство хайпов"
Zveryugaz Отправлено: 09 Мая, 2015 - 11:33:05 • Тема: Слишком долго загружаются картинки на сервер • Форум: Программирование на PHP

Ответов: 6
Просмотров: 2593
Столкнулся с подобной проблемой, картинка всего 155кб а грузится 14 - 21 сек, не пойму даже где искать причину
Zveryugaz Отправлено: 31 Марта, 2015 - 10:40:45 • Тема: Обработка ссылок • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1611
Ts.Saltan пишет:
Как вариант
CODE (javascript):
скопировать код в буфер обмена


text.replace(/(((http:\/\/|https:\/\/)+(www.)*[a-z0-9._\/-]+))/igm,'<a href="$1">$1</a>')
.replace(/\>(((http:\/\/|https:\/\/)+(www.)*[a-z0-9._\/-]+)(.gif|.png|.jpg))\</igm,' target="_blank"><img src="$1"><');


Оборачивает сначала все ссылки в тег <a>


Faraon-san пишет:
Вот так попробуем:
CODE (javascript):
скопировать код в буфер обмена

var tex = $('#rev').html();
var urlCheck = '((?:http[s]?:\\/\\/(?:www\\.)?|www\\.){1}(?:[0-9A-Za-z\\-%_]+\\.)+[a-zA-Z]{2,}(?::[0-9]+)?(?Недовольство, огорчение?:/[0-9A-Za-z\\-#\\.%\+_]*)+)?(?:\\?(?:[0-9A-Za-z\\-\\.%_]+(?:=[0-9A-Za-z\\-\\.%_\\+]*)?)?(?:&(?:[0-9A-Za-z\\-\\.%_]+(?:=[0-9A-Za-z\\-\\.%_\\+]*)?)?)*)?(?:#[0-9A-Za-z\\-\\.%_\\+=\\?&;]*)?)';
tex = tex.replace(new RegExp(urlCheck, 'igm'), '<a href="$1">$1</a>');
tex = tex.replace(new RegExp(/<a[\s]*href="((http[s]?)\:\/\/[\w\-\.]+\.[\w]{2,5}(\/\S*)?(\w+.(jpg|png|gif)))">(?:[\w\-\/\:\.]*<\/a>)/ig),'<img src="$1">');
$('#rev').html(tex);


Ребят спасибо огромное, оба варианта работают 100% Превосходно
Zveryugaz Отправлено: 30 Марта, 2015 - 20:24:17 • Тема: Обработка ссылок • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1611
всю бошку сломал, танцы с бубном не дают результатов Недовольство, огорчение
Zveryugaz Отправлено: 30 Марта, 2015 - 17:01:58 • Тема: Обработка ссылок • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1611
Faraon-san пишет:
попробуй такое:
CODE (javascript):
скопировать код в буфер обмена
  1. var tex = $('#rev').html();
  2.     tex = tex.replace(new RegExp(/((http|https)\:\/\/[\w\-\.]+\.[\w]{2,5}(\/\S*)?(\w+.(jpg|png|gif)))/igm),'<img src="$1">');
  3.     tex = tex.replace(new RegExp(/((http|https)\:\/\/[\w\-\.]+\.[\w]{2,5}(\/\S*)?(\w+.(^jpg|^png|^gif)))/igm), '<a href="$1">$1</a>');
  4.     $('#rev').html(tex);


Картинку обработал нормально а ссылку чего то не берет (

Картинку еще вот так выдергивает
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var re = '(((http:\/\/|https:\/\/)+(www.)*[a-z0-9._/-]+)(.gif|.png|.jpg))';
  3.  

обычные ссылки не трогает
Zveryugaz Отправлено: 30 Марта, 2015 - 15:39:07 • Тема: Обработка ссылок • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1611
Здравствуйте Друзья!
Помогите разобрать регулярку
В общем код перебирает все комменты на странице и при нахождении ссылки в виде текста превращает ее в тег <a>

пример текста на странице {
форум forum.php.su самый гуманный форум в мире Улыбка
Ссылка: http://php.su/
Картинка: http://forum.php.su/im/emoticons/odnako.gif
}

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. var re = '((http:\/\/|https:\/\/)+(www.)*[a-z0-9._/-]+)';
  4. $('#rev').each(function( i, d ){
  5.         tex = $(d).html();
  6.         var newstr = tex.replace(new RegExp(re,'gim'),"<a href='$1'>$1</a>");
  7.         $(d).html(newstr);
  8. });
  9.  


Код работает со всеми ссылками, проблема в том что мне нужно для картинок делать другой тег, то есть обычную ссылку превратить в тег <a> а картинку соответственно в <img>
Подскажите как справиться с задачей?
Zveryugaz Отправлено: 14 Марта, 2015 - 18:29:49 • Тема: Переменная $_post • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Russer пишет:
Мелкий пишет:

PHP:
скопировать код в буфер обмена

$aTargetArray = array_filter($_POST['col']);
var_dump($aTargetArray);



Спасибо огромное! Оказывается все мои действия можно заменить одной строчкой )


С Гуру спорить не буду!
Я просто предложил свой вариант )
Zveryugaz Отправлено: 14 Марта, 2015 - 18:01:49 • Тема: Переменная $_post • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Russer пишет:
Спасибо но это не совсем подходит , так мне нужно , чтобы новый массив имел индексы по порядку .

а они не по порядку?
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. $MyPOST=array();
  3. foreach($_POST as $key => $value){
  4.         if($value != ''){
  5.              //Тут доп проверки по необходимости
  6.              $MyPOST[] = $value;
  7.         }
  8. }
  9.  

Можно и так
Результат:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. Array
  3. (
  4.     [0] => данные
  5.     [1] => данные
  6.     [2] => данные
  7.     [3] => данные
  8. )
  9.  
Zveryugaz Отправлено: 14 Марта, 2015 - 17:31:39 • Тема: Переменная $_post • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
PHP:
скопировать код в буфер обмена
  1.  
  2. $_POST['col1'] = 'данные';
  3. $_POST['col2'] = 'данные';
  4. $_POST['col3'] = '';
  5. $_POST['col4'] = 'данные';
  6. $_POST['col5'] = 'данные';
  7.  
  8. $MyPOST=array();
  9. foreach($_POST as $key => $value){
  10.         if($value != ''){
  11.              //Тут доп проверки по необходимости
  12.              $MyPOST[$key] = $value;
  13.         }
  14. }
  15.  
  16. echo '<pre>';
  17.         print_r($MyPOST);
  18. echo '</pre>';
  19.  


как-то так
(Добавление)
Результат:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. Array
  3. (
  4.     [col1] => данные
  5.     [col2] => данные
  6.     [col4] => данные
  7.     [col5] => данные
  8. )
  9.  
Zveryugaz Отправлено: 14 Марта, 2015 - 14:43:39 • Тема: Сравнение строк • Форум: Программирование на PHP

Ответов: 5
Просмотров: 1180
DarthPadla пишет:
top.rbc.ru:На место Сергея Капкова назначен глава Мосгорнаследия
vesti.ru:Сергей Капков покинул правительство Москвы
lenta.ru:Собянин принял отставку Капкова
interfax.ru:Капков ушел в отставку с поста главы департамента культуры Москвы

и как вот определить, что это одно и то же? ТС,решил проблему?


Думаю только анализом текста, то-есть самой статьи
Zveryugaz Отправлено: 14 Марта, 2015 - 13:54:00 • Тема: Не получается получить ширину блока • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1854
android пишет:
var html = '<div class="testblock">' + $('enter:selected').text() + '</div>';
width = $(html).width();
alert(width);


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var html = '<div class="testblock">' + $('enter:selected').text() + '</div>';
  3. //только здесь его опубликовать
  4.  
  5.       width = $('.testblock').width();
  6. alert(width);
  7.  

(Добавление)
exlant пишет:
вставить блок, (например с opacity:0, или выдвинуть его за рамки окна margin-left: -500px)
узнать ширину, и спрятать обратно!
а потом уже вставлять куда надо с известной шириной!


И это тоже можно делать в цикле.

Страниц (5): [1] 2 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB