post textarea图文信息到后台,但是后台无法提取到图片数组,求解????

php中文网
发布: 2016-06-23 14:27:22
原创
1334人浏览过

post 提取图片 http

我用kindeditor做了一个textarea在线编辑框,当用户删除textarea里面的图片上传另外图片的时候,为了节省服务器空间。。我将原来数据库中textarea的图片提取出来组成数组,然后将该数组中每一个值与新传递的textarea对比in_array(),不存的图片就删除掉。。奇怪的,新传递过来的textarea中,却无法提取到图片数组,提取结果为空数组。。求大礼赐教,谢谢。。

回复讨论(解决方案)

当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?

确切地说,是当用户删除textarea中的某一张图片,如exp.jpg,提交到后台,那么从该$_POST['textarea']中提取的图片数组应该就少了一个值,即exp.jpg 。。这个时候从原来数据库的textarea提取的图片数组和后台接收的图片数组相对比,缺少的那个图上路径就是用户在前台删除却未在服务器删除的图片。。
当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?

问题就在于,在任何情况下,从后台接收的$_POST['textarea']提取的图片数组都为空。。但$_POST['textarea']中确实是有img图片的。。奇怪的是保存到数据库在提取就是对的,直接从$_POST['textarea']中提取就只能得到为空。。
当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?

需要知道你是如何提取的
也需要知道 $_POST['textarea'] 的内容

前台textarea中的内容:

<p><span style="line-height:1.5;"><img src="/info/201311/1384551494771680415.jpg" data-ke-src="/info/201311/1384551494771680415.jpg" alt=""><br></span></p><p><span   style="max-width:90%">爱微淘是一</span><span style="line-height:1.5;">家专业从事移动应用开发、微信api开发的技术团队。</span> </p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/ai/1291">
                            <img src="https://img.php.cn/upload/ai_manual/001/431/639/68b6d9880d850190.png" alt="NovelAI">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/1291">NovelAI</a>
                            <p>AI 辅助写作、讲故事,基于你自己的作品创造出类似人类的写作。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="NovelAI">
                                <span>236</span>
                            </div>
                        </div>
                        <a href="/ai/1291" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="NovelAI">
                        </a>
                    </div>
                
登录后复制

后台接收及处理:
$content = isset($_POST['content']) ? $_POST['content']: false ;$pic_now = get_pic_html($content);     //现在的图片数组print_r($pic_now);   // always empty /* * 从html中提取图片整合到数组 @ param string $str @ return array*/function get_pic_html($str){   $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.png|\.jpg]))[\'|\"].*?[\/]?>/";    // 正则式   preg_match_all($pattern,$str,$match);     return $match[1];    // 返回只带有图片路径的一维数组}
登录后复制

需要知道你是如何提取的
也需要知道 $_POST['textarea'] 的内容

$s =<<< HTML<p><span style="line-height:1.5;"><img src="/info/201311/1384551494771680415.jpg" data-ke-src="/info/201311/1384551494771680415.jpg" alt=""><br></span></p><p><span   style="max-width:90%">爱微淘是一</span><span style="line-height:1.5;">家专业从事移动应用开发、微信api开发的技术团队。</span> </p>HTML;function get_pic_html($str){   $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.png|\.jpg]))[\'|\"].*?[\/]?>/";    // 正则式   preg_match_all($pattern,$str,$match);     return $match[1];    // 返回只带有图片路径的一维数组}print_r(get_pic_html($s));
登录后复制
Array
(
    [0] => /info/201311/1384551494771680415.jpg
)
你的代码并没有什么大问题

不过还是需要 echo base64_encode($_POST['textarea']); 的结果来验证一下

后台直接打印才发现php对post过来的img div span 等带有双引号的标签自动加了转义。。
所以图片标签变成了post textarea图文信息到后台,但是后台无法提取到图片数组,求解???? 所以正则验证不出来。。
对post过来的数据进行stripslashes()去反斜杠就OK了。。
奇怪的是,写入数据库中的textarea却没有反斜杠。。

$s =<<< HTML<p><span   style="max-width:90%"><img src="/info/201311/1384551494771680415.jpg" data-ke-src="/info/201311/1384551494771680415.jpg" alt=""><br></span></p><p><span   style="max-width:90%">爱微淘是一</span><span style="line-height:1.5;">家专业从事移动应用开发、微信api开发的技术团队。</span> </p>HTML;function get_pic_html($str){   $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.png|\.jpg]))[\'|\"].*?[\/]?>/";    // 正则式   preg_match_all($pattern,$str,$match);     return $match[1];    // 返回只带有图片路径的一维数组}print_r(get_pic_html($s));
登录后复制
Array
(
    [0] => /info/201311/1384551494771680415.jpg
)
你的代码并没有什么大问题

不过还是需要 echo base64_encode($_POST['textarea']); 的结果来验证一下

转义是为了入库方便,转义符不会被数据库保留

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号