我为此搜索了很多但没有找到有效的东西
我有一个php页面,显示披萨送货的送货信息,一切正常,除了特殊的丹麦炭::æ,ø和å以及他们的资本对手Æ。 Ø和Å
它们在屏幕上显示正常,但在串行热敏打印机上它们没有,我想用代码告诉打印机要打印什么来替换这3个字符。
为了使这三个人能够很难在一个单词中显示出来,一个例子就是我的街道名称:Sandkæret其次是房子号码。街道名称也可以是2个单词。
如果这些char是独立的,我可以让替换工作,但如果它们在一个单词中则不行。
到目前为止,我已经使用过:
$string = $row['delivery_street_address'];
$patterns = array();
$patterns[0] = '*å*';
$patterns[1] = '*æ*';
$patterns[2] = '*ø*';
$replacements = array();
$replacements[3] = '/x7D';
$replacements[2] = 'X';
$replacements[1] = '/x7C';
echo str_replace($patterns, $replacements, $string);
也试过这个:
echo preg_replace("/([æ])/", "<span class=\"initial\">$1</span>", $string);
但仍然没有去
一个善良的灵魂可以帮助一个NOOB +新手吗?答案 0 :(得分:3)
str_replace
可以正常使用,只需删除字符周围的*
:
$patterns = array();
$patterns[0] = 'å';
$patterns[1] = 'æ';
$patterns[2] = 'ø';
当然,您也可以这样写:
$patterns = array('å', 'æ', 'ø');
$replacements = array('/x7D', 'X', '/x7C');
echo str_replace($patterns, $replacements, $string);
答案 1 :(得分:0)
用str_replace
替换preg_replace
会有效。或者@ p.s.w.g的答案也会起作用:)