嗨我有以下由字母和数字“00G990010020100038”组成的字符串,我想用它们的ASCII值替换字母,实际上字符串里面只能有一个字母,位置是它的变化。
我尝试使用preg_replace但没有成功,也许我做错了。
preg_replace("/[a-zA-Z]/", ord('$\1'), $mystring)
我的代码用字母“$”替换字母的ASCII值,但我想要替换“G”(在这种情况下)。
答案 0 :(得分:2)
试试这个:
preg_replace("/[a-zA-Z]/e", "ord('\\0')", $mystring)
/ e修饰符允许您在替换中执行PHP。
答案 1 :(得分:2)
您可以使用preg_replace_callback
代替。 It's more efficient than the e
modifier.
preg_replace_callback(
"/[a-zA-Z]/",
create_function('$matches','return ord($matches[0]);'),
$mystring
);