<?
/////////////////////////////////////////////////////////////////
// Сниппеты с регулярными выражениями
/////////////////////////////////////////////////////////////////
// --------------------------------------------------------------
// Поиск по регулярному выражению
// --------------------------------------------------------------
// Все ссылки
preg_match_all('/<a[^>]+>/i',$content, $links);
var_dump($links);
// Все картинки
preg_match_all('/<img[^>]+>/i',$content, $images);
var_dump($images);
// Поиск страницы из постраничной навигации
$result = "/articles/page20/";
$pattern = '/page[0-9]*/';
preg_match($pattern, $result, $matches);
if(!empty($matches)){
echo $matches[0]; // page20
}
// -------------------------------------------------------------
// Очистка текстов с использованием регулярных выражений
// -------------------------------------------------------------
// Очистка адреса от постраничной навигации
$result = "/msk/doctor/page10/";
$result = preg_replace('/page[0-9]*\//','',$result);
echo $result; // /msk/doctor/
// Очистрка хештэгов
$arItem["BODY_FORMATED"] = "текст текст #LENTA# текст #BOLEZN_RIGHT_5121#, #BOLEZN_LEFT_5122#, #BOLEZN_LEFT_5105#";
$pattern_delete = '/(#BOLEZN_RIGHT_(\d+)#)|(#BOLEZN_LEFT_(\d+)#)|(#LENTA#)|(#OPINIONS#)|(#ARTICLES#)|(#Q-A#)/i';
// $pattern_delete = '/#([a-zA-Z0-9-_]+)#/i'; - более простой шаблон для всех тэгов
$arItem["BODY_FORMATED"] = preg_replace($pattern_delete, '', $arItem["BODY_FORMATED"]);
// --------------------------------------------------------------
// Валидация телефона (нужно указать свои данные оператора)
// --------------------------------------------------------------
function chek_tell($tell)
{
$pattern = "/^\+380\d{3}\d{2}\d{2}\d{2}$/";
if(preg_match($pattern, "+380635290289")) return true;
else return false;
}
// --------------------------------------------------------------
// Очистка текста
// --------------------------------------------------------------
// Убираем переносы строк
$arResult['DETAIL_TEXT'] = str_replace(array("\n","\r"), "", $arResult['DETAIL_TEXT']);
// Убираем лишние пробелы
$arResult['DETAIL_TEXT'] = preg_replace('/\s{2,}/', ' ', $arResult['DETAIL_TEXT']);
// --------------------------------------------------------------
// Добавление тэга alt="" к изображениям у которых он отсутствует
// --------------------------------------------------------------
// Загружаем код страницы
$content = file_get_contents("page.html");
// Получаем код с добавленными тэгами alt
$content = addAltTagsToImages($content);
function addAltTagsToImages($content)
{
preg_match_all('/<img[^>]+>/i',$content, $images);
if(!empty($images[0]))
{
foreach($images[0] as $img)
{
if(!strpos($img, 'alt=')){
$newIMG = str_replace('<img', '<img alt=""', $img);
$content = str_replace($img, $newIMG, $content);
}
}
}
return $content;
}
// -------------------------------------------------------------
// Добавляем поддержку BB кодов на сайт
// -------------------------------------------------------------
function AddBB($var) {
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>'
);
$var = preg_replace ($search, $replace, $var);
return $var;
}
?>