0

我从这样的网站的 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 一起使用,但它没有改变任何东西。

4

1 回答 1

0

我明白了,只需在行前修补以下switch($str)

mb_internal_encoding("utf-8");

我在城市分类网站上使用,目前没有问题。

您的脚本应该是这样的示例

function category_selector($str){
mb_internal_encoding("utf-8");
switch ($str) {
    case 'فوتبال، فوتسال':
        return '1';
        break; ...

我相信它应该工作。

于 2015-03-23T07:12:56.430 回答