Кодирование французских символов в PHP - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть XML-документ, полный "производителей":

<producer>
   <name></name>
   <owner></owner>
   <address>
      <civic></civic>
      <mailing/>
      <town></town>
      <province></province>
      <postal></postal>
      <phone></phone>
      <fax></fax>
      <email></email>
      <website/>
   </address>
   <products>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
   </products>
   <exports>
      <region></region>
      <region></region>
      <region></region>
      <region>l'Amérique du Nord</region>
   </exports>
</producer>

Например, я хочу найти фразу "l'Amérique du Nord", которая является одним из регионов для данного конкретного производителя:

$query = "l'Amérique du Nord";
$xml = simplexml_load_file("../business-directory/producers-fr-nb.xml");

$upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÆÇÈÉÊËÎÏÔŒÙÛÜ"; 
$lower = "abcdefghijklmnopqrstuvwxyzàâæçèéêëîïôœùûü"; 

$nodes = $xml->xpath('//producers/producer[descendant::*[contains(translate(text(), "'.$upper.'", "'.$lower.'"), "'.$query.'")]]');

Это не сработало. Я решил, что проблема заключается в том, чтобы сохранить фразу «l'Amérique du Nord» в строке запроса $. Когда я повторяю запрос $, я получаю это: l'Amérique du Nord

Я использовал такие функции, как htmlspecialchars () и htmlentities (), чтобы попытаться закодировать é, но, похоже, ничего не работает. Есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 13 декабря 2011

Смотри, мама, я ответил:)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...