[英]Replace special characters UTF-8 PHP DOM
我有以下代码:
$strhtml = file_get_contents('05001400300320100033100.html');
// create the DOMDocument object, and load HTML from a string
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById('upPanelActuciones');
$segatiel= $dochtml->saveXml($elm);
$order = array("á","é","Ã","ó","ú","ñ");
$replace = array("á","é","í","ó","ú","ñ");
$megin = str_replace($order, $replace,$segatiel);
echo $megin;
但是str_replace函数显然不起作用,因为输出保留符中的稀有字符(如³)。 有没有办法使str_replace工作?
在此先感谢您的帮助。
pd:我有html字符集Utf-8集。
更新
试试这个代替
$strhtml = file_get_contents('05001400300320100033100.html');
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById('upPanelActuciones');
$segatiel= $dochtml->saveXml($elm);
$trans = get_html_translation_table(HTML_ENTITIES);
unset($trans["\""], $trans["<"], $trans[">"]);
$megin = strtr($segatiel, $trans);
echo $megin;
str_replace不适用于国际字符。
<?php
/**
* Replace all occurrences of the search string with the replacement string.
*
* @author Sean Murphy <sean@iamseanmurphy.com>
* @copyright Copyright 2012 Sean Murphy. All rights reserved.
* @license http://creativecommons.org/publicdomain/zero/1.0/
* @link http://php.net/manual/function.str-replace.php
*
* @param mixed $search
* @param mixed $replace
* @param mixed $subject
* @param int $count
* @return mixed
*/
if (!function_exists('mb_str_replace')) {
function mb_str_replace($search, $replace, $subject, &$count = 0) {
if (!is_array($subject)) {
// Normalize $search and $replace so they are both arrays of the same length
$searches = is_array($search) ? array_values($search) : array($search);
$replacements = is_array($replace) ? array_values($replace) : array($replace);
$replacements = array_pad($replacements, count($searches), '');
foreach ($searches as $key => $search) {
$parts = mb_split(preg_quote($search), $subject);
$count += count($parts) - 1;
$subject = implode($replacements[$key], $parts);
}
} else {
// Call mb_str_replace for each subject in array, recursively
foreach ($subject as $key => $value) {
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
}
}
return $subject;
}
}
?>
但是您不是在寻找htmlentities()吗? http://www.php.net/manual/zh/function.htmlentities.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.