- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочу разрешить пользователям вставлять штмл таблицы, но их нужно парсить, и чистить.
Пишу регилярное выражения но не пашет. Цель - очистить текст от всего кроме
table|td|th|tr|width|border|cellspacing|cellpadding|scope|row|align|center|right|left " = и цифр
preg_replace("/^(table|td|th|tr|width|border|cellspacing|cellpadding|scope|row|align|center|right|left|)[0-9\=\"]/i","",$s[1]);
Но оно не пашет уже закалупался, помогите плиз.
Как именно не пашет? Пробуй частями составлять. Сначала основные теги, потом все остальное.
Вы же наоборот заменяете то что не надо заменять.
Не пашет - выдавая все, авбсолютно все.
Пробовал поштучно
preg_replace("/[^width]/i","",$s[1]);
в итоге вывело все юуквы из списка ... width iiiddd thdw и т.п.
Вот какую таблицу вставляю пробно:
<table width="300" border="0" cellspacing="0" cellpadding="0" calo="s" onlclick="alert('hack');">
<tr>
<th scope="row"> </th>
<td>а</td>
<td>о</td>
</tr>
<tr>
<th onClick="alert('fff');" scope="row">а</th>
<td> </td>
<td>о</td>
</tr>
<tr>
<th scope="row"> </th>
<td>п</td>
<td>р</td>
</tr>
</table>
ddddddddddddd
Prosto_niki добавил 18.07.2011 в 02:43
Вы же наоборот заменяете то что не надо заменять.
А как правильно?
О функции preg_replace читали вообще?
Результат приведенного примера выше будет таким. The bear black slow jumped over the lazy dog. Но т.к у нас в условии не, необходимо поставить квадратные скобки.
PS. Вместо звездочек квадратные скобки.
Эта фигня и не будет работать.
^ - в начале выражения означает начало строки. Спецсимволом отрицания "все символы (не буквы) кроме" становиться в начале символьного класса (в квадратные скобки).
Отрицание шаблона кажется нету.
Как вариант можно попробовать и доработать так
"/.*?(table|td|tr)/", "$1"
Ту просто надо поэтапно все делать и правильно условие составить
на самом деле не очень сложно.
Вот например я всегда делаю на яваскрипте, он быстрее, а потом на пхп перенести можно.
<script type="text/javascript" >
<!--
// input control
function chcol(){
var ls=document.getElementById('ls');
var ls_zona=ls.value;
var int = /[^\d]/; // исключить цифры
// если находит совпадение (любой символ, кроме цифр), то значение поля обнуляется
if(ls_zona.search(int) !== -1){
ls.value = '';
}
//-->
</script>
<input name="ls" id="ls" type="text" size="5" maxlength="5" onkeyup="chcol()" />
Обрати внимание на условие. как не просто для понимания
Не регулярка, но тоже можно использовать, основное по крайней мере должно отсечь.
http://pastebin.com/dbSZuH6y
О функции preg_replace читали вообще?
Результат приведенного примера выше будет таким. The bear black slow jumped over the lazy dog. Но т.к у нас в условии не, необходимо поставить квадратные скобки.
PS. Вместо звездочек квадратные скобки.
Писать все возможные варианты - глупо и не реально. В ЮТФ7 яваскрипы по прежнему будутут работать. Мне нужно только дозволенные слова пропустить
я вот сейчас попробовал вдуматься и понял. что тут условие задачи не очень то грамотно составлено. Наверно не получится таким образом обработать, потому что в итоге получится каша из символов.
Единственное, что можно попробовать, так это предварительный просмотр.
Юзер вставляет код в поле, и если скрипт находит что-то лишнее, то оповещает. а перебирать строку с такой регуляркой не по-человечески как-то
Ну почему-же каша. Лимит символов и вывод толкьо width="цифра"
width загнаять в ИЛИ table|td|th|tr|width|border|cellspacing|cellpadding|scope|row|align|center|right|left
по идее не сложно. Но я прсто сам preg_match условия не сильно знаю