• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-23) 15次浏览 已收录 0个评论
文章目录[隐藏]

可以preg_match_all 获取所有图片地址, 循环判断直到找到合要求的图片解决!

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

回复讨论(解决方案)

参见

preg_match

参见

preg_match

preg_match只能获取第一张图片地址, 但是若该张图片不符合尺寸时, 如何获取第二张图片?

preg_match 不是可以用正则匹配吗? 可以写正则来匹配你想要的图片啊。

preg_match 不是可以用正则匹配吗? 可以写正则来匹配你想要的图片啊。

对呀,我匹配到第一张图片,但这张图片不符合我的要求! 想接着匹配第2张

听上去很像提取文章缩略图,过滤小图标
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 最符合你的需求

另外,若程序无后续动作(即允许在符合条件时 die)
那么 @本文9来源gao($daima.com搞@代@#码8网^搞代gaodaima码preg_replace_callback 最符合你的需求

多谢!

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

多谢了, 这里面你提到将图片以附件形式存储,是将文章中的所有图片都存储到一个独立的表里吗?

我是这样的,在文章表中另建一个字段,将文章中的所有图片链接以逗号分割存储在这个字段里! 通过这个字段来操作存储在磁盘上的图片,不知道这样怎么样?

版主提出的strip_tags提取img标签 一针见血啊
楼主说的单字段管理多个数据用逗号分隔,仅限用于极个别情况:不搜索,不排序,数量少等等,你可以学一下数据库范式这个东东,说白了就是多数据一定要单独建表方便管理
前阵子自己写的菜鸟CMS,图片单独建表,上传改为ajax,返回id和src。提交一些文章字段和这几个图片id后,在图片表中修改这些图片的其他字段,与当前文章绑定。管理起来非常方便。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:获取文本中第一张符合尺寸的图片地址

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址