2013-08-27 1 views
0

Я фактически использую сценарий, который использовался мною годами раньше, и когда я разместил его на своем веб-сайте, я получил ошибку «Устаревшие: функция ereg() & ereg_replace ()». На самом деле я не могу понять, как изменить элементы ereg() в preg(). Если кто-то способен, я буду благодарен!Устаревшее: Функция ereg() & ereg_replace()

Вот мой код:

// couleur 
    $t=str_replace("[/color]", "</span>", $t); 
    $regCouleur="\[color= ?(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6})) ?\]"; 
    $t=ereg_replace($regCouleur, "<span style=\"color: \\1\">", $t); 

    // taille des caractères 
    $t=str_replace("[/size]", "</span>", $t); 
    $regCouleur="\[size= ?([[:digit:]]+) ?\]"; 
    $t=ereg_replace($regCouleur, "<span style=\"font-size: \\1px\">", $t); 

    // lien 
    $regLienSimple="\[url\] ?([^\[]*) ?\[/url\]"; 
    $regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]"; 
    if (ereg($regLienSimple, $t)) $t=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $t); 
    else $t=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $t); 

    // mail 
    $regMailSimple="\[email\] ?([^\[]*) ?\[/email\]"; 
    $regMailEtendu="\[email ?=([^\[]*) ?] ?([^]]*) ?\[/email\]"; 
    if (ereg($regMailSimple, $t)) $t=ereg_replace($regMailSimple, "<a href=\"mailto:\\1\">\\1</a>", $t); 
    else $t=ereg_replace($regMailEtendu, "<a href=\"mailto:\\1\">\\2</a>", $t); 

    // image 
    $regImage="\[img\] ?([^\[]*) ?\[/img\]"; 
    $regImageAlternatif="\[img ?= ?([^\[]*) ?\]"; 
    if (ereg($regImage, $t)) $t=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t); 
    else $t=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t); 

    // Video 

    $regVidSimple="\[video\] ?([^\[]*) ?\[/video\]"; 
    $regVidEtendu="\[video ?=([^\[]*) ?] ?([^]]*) ?\[/video\]"; 
    if (ereg($regVidSimple, $t)) $t=ereg_replace($regVidSimple, "<p style=\"text-align: center;\"><object style=\"background-color: rgb(255, 255, 204); background-position: 50% 50%;\" data=\"\\1\" type=\"application/x-shockwave-flash\" height=\"190\" width=\"240\"><param name=\"src\" value=\"\\1\"></object></p>", $t); 
    else $t=ereg_replace($regVidEtendu, "<iframe title=\"YouTube video player\" width=\"240\" height=\"190\" src=\"\\1\" frameborder=\"0\" allowfullscreen>\\2</iframe>", $t); 

Спасибо за ваши ответы!

+0

Возможный дубликат [Как преобразовать выражения ereg в preg в PHP?] (Http://stackoverflow.com/questions/6270004/how-can-i-convert-ereg-expressions-to-preg-in- php) –

+0

Я действительно не понимаю, смотрю эту тему, как изменить мои переменные: | – user2720263

ответ

0

Попробуйте это:

$regCouleur="/\[color=\s+(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6}))\s+\]/"; 
$t=preg_replace($regCouleur, "<span style=\"font-size: \\1px\">', $t); 

Кстати, не могли бы вы добавить источник и ожидаемую строку?