进行urlencode,urldecode在PHP波斯或阿拉伯语

问题描述:

我得到的消息类别从网站的RSS这样的:进行urlencode,urldecode在PHP波斯或阿拉伯语

$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($类)返回0对所有的消息! 我也使用urlencode函数,但它没有改变任何东西。

+0

检查编码。一切都是UTF8吗? – OptimusCrime

+0

当然,我使用'header('Content-Type:text/html; charset = utf-8');'在我的代码开头。 –

+0

你加载的rss怎么样? – OptimusCrime

我明白了,只是以前switch($str)线

mb_internal_encoding("utf-8"); 

我使用city classifieds网站修补以下行,我不此刻有问题。

你的脚本应该是这样的

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

一个例子,我认为它应该工作。