Необходима поддержка 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