我有一个html文档,其中包含数百个特殊字符(例如em破折号,智能撇号,重音egrave等),我想将其转换为其html等价物。
例如,我的文档包含一个“em dash”( - ),我想将其转换为:
—
当然,我的html文档包含html标签。我不想将部分html标签(例如“<”或“>”)转换为html等价物。
是否有任何工具(php脚本,Web应用程序,桌面应用程序等)可以上传我的html文档,并返回相同的文档,但是根据需要修改为包含html等效文件?
我有很多文件,有许多特殊字符。我想避免使用“查找和替换”(对于每个特殊字符)作为解决方案......需要太长时间。
答案 0 :(得分:1)
你可以使用类似的东西:
<?php
ob_start();
include 'test.html';
$content = ob_get_contents();
ob_clean();
$new = str_replace('<','$start$',$content);
$new = str_replace('>','$end$',$new);
$new = htmlentities($new);
$new = str_replace('$start$','<',$new);
$new = str_replace('$end$','>',$new);
echo $new;
ob_end_flush();
?>
然后只需将test.html更改为您想删除特殊字符的文件
编辑: 对于同一目录中的每个html文件,这都是自动化的:
<?php
foreach(glob('*.html') as $file){
ob_start();
include $file;
$content = ob_get_contents();
ob_clean();
$new = str_replace('<','$start$',$content);
$new = str_replace('>','$end$',$new);
$new = htmlentities($new);
$new = str_replace('$start$','<',$new);
$new = str_replace('$end$','>',$new);
$file = fopen($file,'w');
fwrite($file,$new);
fclose($file);
}
echo 'done';
ob_end_flush();
?>
答案 1 :(得分:1)
$new = str_replace(array('<', '>'), array('<', '>'), htmlentities($old));
答案 2 :(得分:0)
如果您仍想这样做:
Create a list of special chars with their respective code:
例如:
$htmlNumbers = array( "0" => array( "char"=>"—", "code"=>"—" ),
"1" => array( "char"=>"@", "code"=>"@" ),
---------------------
---------------------
);
现在从html文件中获取html内容,并使用str_replace将所有字符替换为其代码:
$html = file_get_contents("index.html");
for( $i=0; $i<count( $htmlNumbers ); $i++ ) {
$html = str_replace( $htmlNumbers[$i]['char'] , $htmlNumbers[$i]['code'], $html );
}
echo $html;
现在您可以使用文件处理方法将输出保存到html文件中。