SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Малко помощ с regex и preg_replace, ако може

ktomov

New member
Май даже сбърках заглавието, но все пак. Имам една функция, която ми е нужна да работи и със символи на кирилица. Добре де, ама хич ме няма и не знам как да я редактирам.
Та функцията е следната:
Код:
function sub_post_link( $link, $id ){
   $link = str_replace('www.','',$link);
   $link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.]+)\/(.*)\/([a-z0-9\-\_]+)\/([a-z0-9\-\_]+)/','$3.$1/$4', $link);
   $link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.]+)\/([a-z0-9\-\_]+)\/([a-z0-9\-\_]+)/','$2.$1/$3', $link);
   return $link;
}
Някой да има идея как може да проработи това?
 
За: Малко помощ с regex и preg_replace, ако може

За: Малко помощ с regex и preg_replace, ако може

И на мен ми е далечно, но пробвай дали работи с а-я, a накрая с /iu ? i за големи малки, u го третира като UTF-8

Т.е. нещо от рода на :

PHP:
$link = preg_replace('/(?<=http\:\/\/)([a-zа-я0-9_\-\.]+)\/(.*)\/([a-zа-я0-9\-\_]+)\/([a-zа-я0-9\-\_]+)/iu','$3.$1/$4', $link);
 
За: Малко помощ с regex и preg_replace, ако може

За: Малко помощ с regex и preg_replace, ако може

Да, това е едното, а другото е, че кирилицата е мултибайт стринг и съответно ползвай

mb_ereg_replace вместо preg_replace, но пробвай първо хоста ти дали я поддържа тая функция, най вероятно ще поддържа мултибайт функции ако е български хост.

И на мен ми е далечно, но пробвай дали работи с а-я, a накрая с /iu ? i за големи малки, u го третира като UTF-8

Т.е. нещо от рода на :

PHP:
$link = preg_replace('/(?<=http\:\/\/)([a-zа-я0-9_\-\.]+)\/(.*)\/([a-zа-я0-9\-\_]+)\/([a-zа-я0-9\-\_]+)/iu','$3.$1/$4', $link);
 
За: Малко помощ с regex и preg_replace, ако може

За: Малко помощ с regex и preg_replace, ако може

А защо не така:

PHP:
$link = preg_replace('/(?<=http\:\/\/)([^\/]+)\/(.*)\/([^\/]+)\/([^\/]+)/iu','$3.$1/$4', $link);
 
Re: Малко помощ с regex и preg_replace, ако може

Благодаря за съветите, но за съжаление с нито един от вариантите не проработи.
Ще чакам автора на добавката да отговори евентуално.
 
За: Малко помощ с regex и preg_replace, ако може

За: Малко помощ с regex и preg_replace, ако може

$link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.абвгде...яАБВГДЕ...Я]+)\/(.*)\/([a-z0-9\-\_абвгде...яАБВГДЕ...Я]+)\/([a-z0-9\-\_абвгде...яАБВГДЕ...Я]+)/u','$3.$1/$4', $link);
$link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.абвгде...яАБВГДЕ...Я]+)\/([a-z0-9\-\_абвгде...яАБВГДЕ...Я]+)\/([a-z0-9\-\_абвгде...яАБВГДЕ...Я]+)/u','$2.$1/$3', $link);

абв...изреждаш цялата азбука
 

Горе