Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_用正确的字符替换_Php_Regex_Preg Replace - Fatal编程技术网

Php preg_用正确的字符替换

Php preg_用正确的字符替换,php,regex,preg-replace,Php,Regex,Preg Replace,我试图替换preg_replace中的值。 我有以下代码: <?php $name = 'AVENDAÑO, PAULVIC T.'; $match = preg_replace('/[^A-Z]/','N',$name); echo '<pre>'; print_r($match); echo '</pre>'; ?> 虽然变量$name包含AVENDAñO,PAULVIC T,但它仍然显示AVENDAÃO,PAULVIC T 但是当我尝试使用上面的代码

我试图替换preg_replace中的值。 我有以下代码:

<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = preg_replace('/[^A-Z]/','N',$name);

echo '<pre>';
print_r($match);
echo '</pre>';
?>
虽然变量$name包含AVENDAñO,PAULVIC T,但它仍然显示AVENDAÃO,PAULVIC T

但是当我尝试使用上面的代码时,它会将所有非字符替换为N


我知道我的正则表达式有问题,或者有人知道解决这些字符格式问题的方法吗?

最好的方法是使用iconv


最好的方法是使用iconv


使用str_替换


使用str_替换


这将导致AVENDA~NO,PAULVIC T。不太确定第一个/第二个参数应该是什么,请查看PHP文档以了解更多信息,我很少使用此功能,但最好使用它,因为您需要为每个特殊字符编写几百个str_替换:这将导致AVENDA~NO,PAULVIC T.不太确定第一个/第二个参数应该是什么,请查看PHP文档以获得更好的信息,我很少使用此功能,但它是最好的使用方法,因为您需要为每个特殊字符编写几百个stru_替换:您认为仍然有一种方法可以在屏幕上正确显示ñ吗?假设我想用str_替换'ñ','ñ',$name;如果这是在网页中,请检查所使用的代码页是否正确。UTF-8可能是您想要使用的:应该对其进行分类。如果它在shell会话中,也检查那里的代码页。您认为还有一种方法可以正确地在屏幕上显示吗?假设我想用str_替换'ñ','ñ',$name;如果这是在网页中,请检查所使用的代码页是否正确。UTF-8可能是您想要使用的:应该对其进行分类。如果它在shell会话中,也检查那里的代码页。
echo iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $name);
<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = str_replace('Ñ','N',$name);

echo $match;
?>