我在PHP中使用fopen
打开从tesseract OCR中提取的文件。返回的文本包含<<<<<<
,fopen
读取直到找到第一个<
字符,然后停止。
从OCR返回的文件:
P<dsdasdasd<<dasd<adsda<dsada<<<<<<<<<<ec<
dasdasdsdasdasdasdasd<<<<<<<<<<<<<<06
£ y
来自fopen
的回声:
P
如果我查看源代码,会发现红色的其余文本。
我使用的代码:
<?php
file_put_contents("tmpFile.jpg",file_get_contents("1.jpg"));
$cmd = "tesseract tmpFile.jpg ee ";
exec($cmd);
$myfile = fopen("ee.txt", "r") or die("Unable to open file!");
$data= fread($myfile,100000000);
fclose($myfile);
echo $data;
?>
我粘贴了有问题的文本,它也被隐藏了。
我输入问题时的屏幕截图,以及隐藏在问题中的文本:
来自输出和视图源的屏幕截图:
答案 0 :(得分:0)
据我所知,该问题与tesseract或您的输入文本文件无关。
fopen
读取直到找到第一个<字符,然后停止
我认为那不是真的。那么,为什么您会在“查看源代码”中看到其余的源代码呢? fopen
读取了整个文件,但问题在于在浏览器中显示该信息。
您要显示为HTML标记保留的字符-在这种情况下为<
(“小于”符号)。这就是为什么您在“查看源代码”中看到红色文本的原因,因为浏览器不知道如何解释HTML代码。
作为第一种解决方法,只需在<textarea>
周围放置一个<?php
标记即可查看数据:
<textarea><?php
/* ...
your regular code here
... */
?></textarea>
下一步应该是对那些特殊字符进行编码,然后再将其提供给echo
。看看htmlspecialchars
或htmlentities
。
您还可以在以下位置找到有关该主题的有用信息: