# Koenig (17.02.2017 / 12:47)функции обработки входящих данных ()
ну по поводу тега имГ надо тему отдельную сделать, так как некоторые не хотят грузить к себе картинку и прочие мелочи
/**
* @param array $url
* @return string
*/
function redirect_image_replace($url)
{
if(preg_match('#^https?://'.$_SERVER['SERVER_NAME'].'#', $url[1])){
return '<img src="'.preg_replace('|^https?:\/\/'.$_SERVER['SERVER_NAME'].'|i', '', $url[1]).'" alt="" />'; // если не хотим ссылки на свой же сайт, возвращаем пустоту, (рекомендуется, как защита от попыток флуда путем вставки uri в адрес картинки)
}else{
return '<img class="out-image" src="/out-image.php?image='.base64_encode($url[1]).'" alt="" />';
}
}
функция редиректа, переадресовывает и убивает скрипт, воизбежание
/**
* @param string $image
*/
function redirect_image($image){
header("Location: ".preg_replace('|^https?:\/\/|i', '//', $image));
exit();
}парсим текст на предмет ббкода картинки
$clean_html = preg_replace_callback('|\[img\](https?://[^\[]+)\[\/img\]|i', 'redirect_image_replace', $clean_html);содержимое out-image.php
redirect_image(base64_decode($_GET['image']));просто до безобразия, и работает безотказно. вот и все.
кд на ходу адаптировал, т.к. не использую ббкоды давно, но вроде ни где не накосячил
UPD поддерживает http и https
UPD2 все равно, не рекомендовал бы пропускать картинки по хттп