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

Я считаю, что это должно работать.

Другие вопросы по тегам