[英]Detect if a string contains any punctuation or accentued characters in PHP
[英]Replace one accentued characters in php
我有一個帶有一個法語重音符號的字符串(例如lycée)。
我只想替換一個字符,但是重音字符就像2個字符,結果永遠不好:
$str='lycée';
$str[3]='o';
echo $str;
結果將是:
lycoe
但是結果是
lyco�e
(所有設置都設置為UTF8:php.ini,元字符集,mb_internal_encoding,notepad ++文件編碼...)
當我使用substr_replace函數時,我遇到了同樣的問題。
如果我使用:
$str= iconv('UTF-8','ASCII//TRANSLIT',$str);
問題正在轉移到其他角色:
$str='lycée';
$str= iconv('UTF-8','ASCII//TRANSLIT',$str);
$str[2]='o';
echo $str;
結果:
lyo?e
有人可以幫我嗎?
我只是角色角色。
我想要:
$str[2]='o' -> lyoée
$str[3]='o' -> lycoe
$str[4]='o' -> lycéo
...
<?php
$str='lycée';
//$str[3]='o';
//echo $str;
function mbStringToArray ($string) {
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,0,1,"UTF-8");
$string = mb_substr($string,1,$strlen,"UTF-8");
$strlen = mb_strlen($string);
}
return $array;
}
$new_str=mbStringToArray($str);
$new_str[3]='o';
echo implode($new_str); //output: lycoe
手冊頁mb_split中的函數mbStringToArray
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.