Поддержка preg_replace для обнаружения языкового тега и удаления других языковых данных - PullRequest
3 голосов
/ 24 июня 2011

У меня есть строка данных, которая содержит 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.

Я хочу определить язык и удалить из строки содержимое других языков.

Надеюсь, что это имеет смысл

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Для сопоставления с образцом вы также можете использовать

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

То же самое можно сделать с помощью str.replace.Вы должны использовать

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

Вы должны пытаться делать это, только если приведенный выше ответ не поможет

0 голосов
/ 24 июня 2011

У меня есть быстрое решение для вас.Пожалуйста, проверьте, работает ли он. Вы должны быть в состоянии оптимизировать логику, но я надеюсь, что это поможет вам заставить его работать.

$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;

Пожалуйста, проверьте и дайте мне знать, если вы обнаружите какие-либо проблемы.

...