1

我正在研究一个 PHP 文件,该文件可以回显以某种货币转换的价格(由另一个网站的数组给出)(例如,以欧元为例)。

我考虑过使用 in_array 函数来检查从其他网页检索到的价格是否包含货币字符。唯一的问题:即使我使用预定义的数组,它也无法识别该符号。如果我尝试将 $currency 数组更改为 priceclass 给出的实际价格,它将起作用。提前致谢!

$html=file_get_contents('http://thewebsite');
preg_match_all("thepriceclass", $html, $a);

foreach(end($a) as $key=> $value)
{
   print print_r($value, true).'<br>';
   $currency = array("€");
   $value = str_split($value);
   $message = "This listing =/= €";

   foreach($value as $letter)
   {
      if (in_array($letter, $currency)) 
      {
         $message = "This listing == €";
         break;
      }
   }
   echo $message;
   break;
}
4

1 回答 1

0

你有多少种货币?不是全部,为什么不使用 ISO 代码(例如美元、欧元、日元等)呢?

我会创建一个将符号转换为代码的小函数,反之亦然。

编辑:

在评论中,您说您正在使用 €、$、£ 和 pуб。

我认为问题在于编码,要么是因为 PHP 是 latin1,要么是类似的东西。

我只是使用货币代码(http://en.wikipedia.org/wiki/ISO_4217)。在您的情况下:美元、欧元、英镑、卢布,并与之进行比较。

我不完全理解您的代码,因为您在数组中查找值,但您总是打印€。我认为这只是为了测试。

我会做:

$currency = array('EUR');

或者:

$currency = array('USD', 'EUR', 'GBP', 'RUB');

如果你不能使用上述我会做这样的事情......

$currencies = array('USD'=>'$', 'EUR'=> '€', 'GBP'=>'£', 'RUB'=>'pуб');

...并使用数组值和键来比较/打印。

那行得通吗?

于 2013-06-22T16:15:40.077 回答