PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (92): В начало « ... 78 79 80 81 [82] 83 84 85 86 ... » В конец
Найдено сообщений: 1370
andrewkard
Отправлено: 13 Августа, 2015 - 15:10:47 • Тема: удалить из строки все небуквенно-числовые символы, оставив смайлики • Форум: Регулярные выражения
Ответов: 11 Просмотров: 1535
sun1_sun2_sun3 пишет: вот только хотелось бы объединить это все в 1 регулярку
вряд ли это возможно
(Добавление)
Можно уменьшить количество ошибок, на клиенте перед отправкой проверяйте по такому выражению, и если такие символы присутствуют, подсвечивайте их и не позволяйте отправить до исправления.
/([^\s]{1}\:|\)[^\s]{1})/
andrewkard
Отправлено: 13 Августа, 2015 - 14:01:58 • Тема: удалить из строки все небуквенно-числовые символы, оставив смайлики • Форум: Регулярные выражения
Ответов: 11 Просмотров: 1535
Тогда нужно эти символы дополнительно обрабатывать, например так:
PHP:
скопировать код в буфер обмена
$arr_smile = array ( ':)' , ': )' , ':Р' , ': Р' ) ; $str = 'Hello!!! i:u (o)и :)' ;
//запоминаем символы ":" и ")", которые не являются смайликом
for ( $i = 1 ; $i < strlen( $str ) - 1 ; $i ++ ) {
if ( $str [ $i ] == ':' ) {
if ( $str [ $i - 1 ] != ' ' ) {
$arr_symbols [ ] = $i ;
} else {
if ( $str [ $i + 1 ] == ' ' || $str [ $i + 1 ] == ')' ) { } else {
$arr_symbols [ ] = $i ;
}
}
}
if ( $str [ $i ] == ')' ) {
if ( $str [ $i + 1 ] != ' ' ) {
$arr_symbols [ ] = $i ;
} else {
if ( $str [ $i - 1 ] == ' ' || $str [ $i - 1 ] == ':' ) { } else {
$arr_symbols [ ] = $i ;
}
}
}
}
//сортируме массив символов в обратном порядке
//затираем символы ":" и ")", которые не являются смайликом
foreach ( $arr_symbols as $symbos ) {
$str [ $symbos ] = '' ;
}
//чистим строку
$pattern = '/[^a-zA-ZА-Яа-я0-9\s\:\)*]/iu' ;
//убираем смайлы для теста
$str_test = $str_clear ;
foreach ( $arr_smile as $smile ) {
}
//если другие символы не найдены, выводим строку, иначе ошибка
echo "Error" ;
} else {
echo $str_clear ;
}
(Добавление)
Правда нужно еще подумать как правильно эти условия прописать
andrewkard
Отправлено: 13 Августа, 2015 - 10:08:59 • Тема: Выражение и SQL-инъекция • Форум: Регулярные выражения
Ответов: 7 Просмотров: 554
Регулярное выражение проверяет на наличие конкретного набора символов, если оно верно, то в переменной будет только то, что разрешено Вами же. Так что в ней не будет ничего для sql инъекции.
andrewkard
Отправлено: 12 Августа, 2015 - 18:40:18 • Тема: Как сделать вывод текста по отдельности из ячейки mysql • Форум: Программирование на PHP
Ответов: 12 Просмотров: 1293
Видимо я упустил это:
spark108 пишет: В ячейках этого столбца садержутся сами теги через запятую например "Конкурсы, Новости, Видео"
Вот это не понял:
spark108 пишет: И после тегов стоят знаки ";', а между ними неболольшие нижние черточки с разными ссылками.
Пробуйте так:
PHP:
скопировать код в буфер обмена
include 'config.php' ;
if ( isset ( $_GET [ 'news' ] ) ) { $limit = ( int) $_GET [ 'news' ] ;
} else {
$limit = '3' ;
}
$request = "SELECT news, user, title, tag, date_format(data,'%e .%m.%Y') as data1 FROM news ORDER BY id DESC LIMIT $limit " ;
// Цикл, вынимающий строку как массив с числовым индексом
//массив ключевых слов
//обработка
$i = 0 ;
$tags = '' ;
foreach ( $arr_tags as $tag ) {
$tags .= '<a href=index.php?tag=' . $i . '> ' . $tag . ' </a> ' ;
$i ++;
}
print '<div id="colLeft">' ;
print '<div class="postItem">' ;
print '<h2>' . $row [ 2 ] . '</h2>' ;
print '<p>' . $row [ 0 ] . '</p>' ;
print '</div>' ;
print '<div class="meta meta-comments">' ;
print 'Дата публикации: ' . $row [ 4 ] . ' | Опубликовал: ' . $row [ 1 ] . ' | Метки: ' . $tags . '</div>' ;
print '</div>' ;
$arr_tags [ ] = $row [ 3] ;
}
}
andrewkard
Отправлено: 12 Августа, 2015 - 17:29:57 • Тема: Как сделать вывод текста по отдельности из ячейки mysql • Форум: Программирование на PHP
Ответов: 12 Просмотров: 1293
Код не проверял:
PHP:
скопировать код в буфер обмена
include 'config.php' ;
if ( isset ( $_GET [ 'news' ] ) ) { $limit = ( int) $_GET [ 'news' ] ;
} else {
$limit = '3' ;
}
$request = "SELECT news, user, title, tag, date_format(data,'%e .%m.%Y') as data1 FROM news ORDER BY id DESC LIMIT $limit " ;
// Цикл, вынимающий строку как массив с числовым индексом
print '<div id="colLeft">' ;
print '<div class="postItem">' ;
print '<h2>' . $row [ 2 ] . '</h2>' ;
print '<p>' . $row [ 0 ] . '</p>' ;
print '</div>' ;
print '<div class="meta meta-comments">' ;
print 'Дата публикации: ' . $row [ 4 ] . ' | Опубликовал: ' . $row [ 1 ] . ' | Метки: ' . $row [ 3 ] . '</div>' ;
print '</div>' ;
$arr_tags [ ] = $row [ 3] ;
}
}
$i = 0 ;
foreach ( $arr_tags as $tag ) {
echo '<a href=index.php?tag=' . $i . '> ' . $tag . ' </a>;' ;
$i ++;
}
andrewkard
Отправлено: 12 Августа, 2015 - 11:00:55 • Тема: Проблема с базами данными • Форум: Вопросы новичков
Ответов: 11 Просмотров: 437
Heartofprogrammer пишет: При клике на заголовок новости на главной странице index.php меня перебрасывает на страницу news.php и там не одну новость выводит а все новости.
вставьте полученный id в запрос:
как то так, код не проверял
andrewkard
Отправлено: 12 Августа, 2015 - 10:30:56 • Тема: Непонятка с list'ом • Форум: Вопросы новичков
Ответов: 10 Просмотров: 280
arimanecro пишет: А почему он туда попадает?
что то не то записалось в переменную $status
(Добавление)
arimanecro пишет: хм...и все таки не работает ))
работает:
55b72b9a0d300|Lynda|lynda@aol.com|str.groove 788|859860958|read
55b72be3c7f3e|Zorro|zorro@mail.ru|str.silver street|+40006060606|unread
PHP:
скопировать код в буфер обмена
echo 'no orders' ; }
$orders = file ( 'ORDERS.txt' ) ; $status = 'unread' ;
foreach ( $orders as $order ) {
if ( strpos ( $order , $status ) === false ) { continue ;
} else {
list ( $oid , $name , $email , $address , $phone , $status1 ) = explode ( '|' , $order ) ; echo $name ; // Выводит Zorro
}
}
andrewkard
Отправлено: 12 Августа, 2015 - 10:21:34 • Тема: Непонятка с list'ом • Форум: Вопросы новичков
Ответов: 10 Просмотров: 280
и еще, я думаю не нужно заменять переменную $status в $list
(Добавление)
вот так работает:
PHP:
скопировать код в буфер обмена
echo 'no orders' ; }
$orders = file ( 'ORDERS.txt' ) ; $status = 'unread' ;
foreach ( $orders as $order ) {
if ( strpos ( $order , $status ) === false ) { } else {
list ( $oid , $name , $email , $address , $phone , $status1 ) = explode ( '|' , $order ) ; echo $name ; // Выводит Lynda и Zorro
}
}
Страниц (92): В начало « ... 78 79 80 81 [82] 83 84 85 86 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB