我正在处理一个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;
}
答案 0 :(得分: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уб');
...并使用数组值和键进行比较/打印。
那会有用吗?