我想写一个文本文件.当我在php中使用substr_replace时,编码会发生变化.它不能正确打印希腊字符.如果我不是一切都很好.有什么建议?
<?php
$file = "test.txt";
$writeFile = fopen($file, "w+");//read/write
$myarray = array("????","???????","?????");
$myarray[0] = substr_replace($myarray[0],"?", 0,1);
foreach ($myarray as $data){
fwrite($writeFile, $data."\n");
}
?>
Run Code Online (Sandbox Code Playgroud)
观察
εφδφ
δφδσφδσ
δφδφδ
没有
substr_replace的
结果
δφδφδφδσφδσδφδφδ
M98*_*M98 14
您可以使用以下两个功能:
function mb_substr_replace($original, $replacement, $position, $length)
{
$startString = mb_substr($original, 0, $position, "UTF-8");
$endString = mb_substr($original, $position + $length, mb_strlen($original), "UTF-8");
$out = $startString . $replacement . $endString;
return $out;
}
Run Code Online (Sandbox Code Playgroud)
来自GitHub
function mb_substr_replace($str, $repl, $start, $length = null)
{
preg_match_all('/./us', $str, $ar);
preg_match_all('/./us', $repl, $rar);
$length = is_int($length) ? $length : utf8_strlen($str);
array_splice($ar[0], $start, $length, $rar[0]);
return implode($ar[0]);
}
Run Code Online (Sandbox Code Playgroud)
我试过两个都很好
| 归档时间: |
|
| 查看次数: |
4297 次 |
| 最近记录: |