Home >Backend Development >PHP Tutorial >获取文本中第一张切合尺寸的图片地址

获取文本中第一张切合尺寸的图片地址

WBOY
WBOYOriginal
2016-06-13 11:55:54885browse

获取文本中第一张符合尺寸的图片地址
可以preg_match_all 获取所有图片地址, 循环判断直到找到合要求的图片解决!

但是我想在找到第一张图片时就立即判断,不符合就找第二张再判断,怎么解决比较有效率呢? 或者说全部匹配再循环根本就没问题?
------解决方案--------------------
参见 

<br />preg_match<br />

------解决方案--------------------
preg_match 不是可以用正则匹配吗? 可以写正则来匹配你想要的图片啊。
------解决方案--------------------
听上去很像提取文章缩略图,过滤小图标
preg_match_all函数貌似是直接返回所有匹配结果,如果文章太长或者图片过多确实影响性能
循环preg_match,每次都切掉已匹配的前部分文章呢?如何快速获得断点的位置?
用preg_replace_callback能做到吗?回调函数有办法结束主调函数吗?
换一种思路,你的文本是采集来的还是用户发布的?后者可以把图片存成附件形式入库方便管理,用了ueditor这类可以修改源码实现
------解决方案--------------------
preg_match_all 一次性取出
循环结果,必要时跳出(中断检查)

循环中 preg_match 或 strstr 逐次检查,直到符合条件

两者效率一样,且 preg_match 存在剩余串判断的问题

对于 php 5.2 可用纯字符串函数,逐字符识别。效率明显高于使用正则
对于 php 5.3 及以上,两者效率相当。不必讳疾忌医

建议对原串做 strip_tags 只保留 img 标记,处理起来要快好几倍

------解决方案--------------------
另外,若程序无后续动作(即允许在符合条件时 die)
那么 preg_replace_callback 最符合你的需求
------解决方案--------------------
版主提出的strip_tags提取img标签 一针见血啊
楼主说的单字段管理多个数据用逗号分隔,仅限用于极个别情况:不搜索,不排序,数量少等等,你可以学一下数据库范式这个东东,说白了就是多数据一定要单独建表方便管理
前阵子自己写的菜鸟CMS,图片单独建表,上传改为ajax,返回id和src。提交一些文章字段和这几个图片id后,在图片表中修改这些图片的其他字段,与当前文章绑定。管理起来非常方便。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn