繁体   English   中英

寻找特殊字符的PHP

[英]Looking for Special Characters php

我正在尝试在字符串中查找特殊字符。 这些是西班牙语中带有变音符号的元音。 该程序应该计算是否带有变音符号的字符串中的元音。 在西班牙语中,它们是áé,í,ó和ú。 不过,我只希望前四个。 问题是我的代码没有检测到特殊字符

<?php
$string='maría';

$vocales = preg_match_all('/[aeiouáéíó]/i',$string,$matchesV);
echo "<br>vocales = $vocales";

if ((in_array('á',$matchesV))||(in_array('é',$matchesV)) || (in_array('í',$matchesV)) || (in_array('ó',$matchesV))){
    $v = $vocales - 1;
    echo "<br>v $v";
    echo '<br>1'; }

?>

为什么使用正则表达式? 如果我正确理解了您的问题,则只需对此功能稍作更改即可:

<?php
function substr_count_array($string, $arr)
{
     foreach ($arr as $letter)
          $count[$letter] += substr_count($string, $letter);
     return $count;
}

$str = 'óóómaóríaéé';
print_r(substr_count_array($str, array("á","é","í","ó")));

输出:

Array
(
    [á] => 0
    [é] => 2
    [í] => 1
    [ó] => 4
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM