簡體   English   中英

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM