我正在开发一个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;
}
您有多少种货币?不是所有的代码,为什么不使用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уб');
并使用数组值和键进行比较/打印。
这样行吗?