Необходима е поддръжка за preg_replace за откриване на езиков таг и премахване на други езикови данни

Имам низ от данни, който съдържа съдържание на 3 различни езика, оградено в съответните тагове.

/[langStart-en] и //[langEnd-en] за английски

/[langStart-ar] и //[langEnd-ar] за арабски

/[langStart-fr] и //[langEnd-fr] за френски

Езиков код ще бъде предаден като параметър през url, да речем за напр. ако езикът е английски, url ще бъде

article.php?lang = EN,

за арабски article.php?lang = AR и

за френски article.php?lang = FR.

Искам да открия езика и да премахна съдържанието за други езици от низа.

Дано това има смисъл


person Community    schedule 24.06.2011    source източник


Отговори (2)


Имам бързо решение за вас. Моля, проверете дали работи.. Трябва да можете да оптимизирате логиката, но се надявам, че това ще ви помогне да я накарате да работи.

$pattern1 = '/\/\/\[langStart-en\][^n]*\/\/\[langEnd-en\]/';
$pattern2 = '/\/\/\[langStart-ar\][^n]*\/\/\[langEnd-ar\]/';
$pattern3 = '/\/\/\[langStart-fr\][^n]*\/\/\[langEnd-fr\]/';

$lan= $_GET['lang'];
$replace= '';
$string = "whatever may be string";

if ($lan=='EN')
{
$string = preg_replace($pattern2, $replace, $string);
$string = preg_replace($pattern3, $replace, $string);

}

else if ($lan=='AR')
{
$string = preg_replace($pattern1, $replace, $string);
$string = preg_replace($pattern3, $replace, $string);

}

else if ($lan=='FR')
{
$string = preg_replace($pattern1, $replace, $string);
$string = preg_replace($pattern2, $replace, $string);
}
echo $string;

Моля, проверете и ме уведомете, ако откриете проблеми.

person Deepu S Nath    schedule 24.06.2011

За съвпадение на шаблони можете също да използвате

$pattern1 = '/\/\/\[langStart-en\].+\/\/\[langEnd-en\]/';

Същото може да се постигне и чрез str.replace. Трябва да използвате

str.replace(/\/\/\[langStart-en\].+\/\/\[langEnd-en\]/, '//[langStart-en]//[langEnd-en]');

Трябва да опитате това само ако горният отговор не помогне

person Chris    schedule 24.06.2011