2012-05-30 2 views
0

У меня возникли проблемы с попыткой сравнить две строки на арабском языке в скрипте PHP, чтобы убедиться, что они совпадают. Я попытался настроить внутреннюю кодировку на UTF-8 с помощью mb_internal_encoding, я пробовал простое выражение if ($ x == $ y), я пробовал strcmp() ... без кубиков. Любая идея, что я делаю неправильно? Есть ли у PHP проблемы с выполнением строковых сравнений с текстом, отличным от английского?Сравнение двух строковых значений на арабском языке в PHP?

Спасибо!

Вот фрагмент кода:

   // Chop up HTML content into bits 

      $threadPieces = explode('</div>', $innerHTML); 

      // Chop up the HTML bits into data entries 

      $strippedThreadPieces = strip_tags($threadPieces[1]); 
      $threadInfo = explode('-', $strippedThreadPieces); 

      $threadTitleExists = trim($threadTitleExists, 'thread_title_'); 

      $postername = "مراسل"; 

      if (($threadTitleExists > 100000) && ($threadInfo[0] === $postername)) 
      { 
      echo 'Thread title:'; 
      echo strip_tags($threadPieces[0]); 
      echo '<p>'; 
      } 
      else 
      { 

      } 
+0

Можете ли вы отправить код? – Ansari

+0

ли обе строки имеют одинаковую кодировку? Не могли бы вы опубликовать фрагмент, который вы используете для сравнения, включая ваши вызовы с функциями mb_? – stefgosselin

+1

Что вам нужно, это 'mb_strcmp()', который по какой-то причине не существует в PHP. Может быть, это может быть полезно: http://pastebin.com/d9kyBjBr – CodeZombie

ответ

0

Я думаю, что проблема является набор символов из файла PHP, попытайтесь сохранить его с помощью UTF-8 набор символов.

0

Способ, которым я это делал, состоял в использовании функции mb_ereg, которая соответствует регулярному выражению с поддержкой нескольких мегабайт.

Смежные вопросы