urlencode, urldecode в php для персидского или арабского языка
Я получаю Категории новостей от rss сайта примерно так:
$rss = new DOMDocument();
$rss->load('http://isna.ir/fa/Sports/feed');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'category' => $node->getElementsByTagName('category')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$category = $feed[0]['category'];
Теперь я хочу использовать функцию для присвоения номера каждой категории следующим образом:
function category_selector($str){
switch ($str) {
case 'فوتبال، فوتسال':
return '1';
break;
case 'كشتي، رزمي':
return '2';
break;
case 'جهان ورزش':
return '3';
break;
case 'توپ و تور':
return '4';
break;
case 'ورزش بانوان':
return '5';
break;
case 'علم ورزش':
return '6';
break;
case 'نهادهاي ورزشي و ساير':
return '7';
break;
default:
return '0';
break;
}
}
Но category_selector($category) возвращает 0 для всех новостей! Я тоже использую функцию с urlencode, но это ничего не изменило.
1 ответ
Я понимаю, просто патч следующую строку перед switch($str)
линия
mb_internal_encoding("utf-8");
Я использую в городе сайт объявлений, у меня нет проблем в данный момент.
Пример вашего сценария должен быть таким
function category_selector($str){
mb_internal_encoding("utf-8");
switch ($str) {
case 'فوتبال، فوتسال':
return '1';
break; ...
Я считаю, что это должно работать.