php抓取网页标签(html标签不能是什么事都不能十全十美,就这样了 )
优采云 发布时间: 2022-02-19 03:25php抓取网页标签(html标签不能是什么事都不能十全十美,就这样了
)
日志一般需要生成摘要,手动填写太麻烦,所以使用mb_substr自动拦截,问题来了。如果纯文本还是基本准确的,如果html代码太多,拦截就太糟糕了。例如,如果摘要设置为 300 字,则前面的空格和 html 代码可能占 100 字。怎么做?你最好的办法是遇到html代码,跳过它,不计较。这样更准确,当然美中不足的是,如果是img标签呢?没有什么是完美的,仅此而已。
utf编码,unicode字符1-6个字节都是可以的,但是html码肯定是1个字节,而且以<开头>结尾,所以后面分析出来。但是有一个问题,html标签不能关闭。比如300字满的时候,后面还有几个html标签,导致标签打不开,页面布局完全乱了。我记得php有一个扩展库,专门检查html规范,但是一般主机没有安装,所以我试着写了。逻辑挺复杂的,看到就头晕,觉得有些地方是多余的,但是没找到别的办法。
在这几天的测试中,可以正确处理未封闭的 html 标签。但是如果使用php过滤器会比较麻烦,php代码中可能会有很多<和>,目前的解决方案是,如果输入格式中收录php过滤器,则不进行处理。如果字符串中没有html标签,直接调用mb_substr进行处理,其中收录抽象截取标记,优先从标记截取。
这是代码: