时间:2021-07-01 10:21:17 帮助过:5人阅读
当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?
确切地说,是当用户删除textarea中的某一张图片,如exp.jpg,提交到后台,那么从该$_POST['textarea']中提取的图片数组应该就少了一个值,即exp.jpg 。。这个时候从原来数据库的textarea提取的图片数组和后台接收的图片数组相对比,缺少的那个图上路径就是用户在前台删除却未在服务器删除的图片。。
当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?
问题就在于,在任何情况下,从后台接收的$_POST['textarea']提取的图片数组都为空。。但$_POST['textarea']中确实是有img图片的。。奇怪的是保存到数据库在提取就是对的,直接从$_POST['textarea']中提取就只能得到为空。。
当用户删除textarea里面的图片时
你如何能 从新传递过来的textarea中提取出图片地址?
需要知道你是如何提取的
也需要知道 $_POST['textarea'] 的内容
前台textarea中的内容:
爱微淘是一家专业从事移动应用开发、微信api开发的技术团队。
$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=[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"](.*?(?:[https://img.gxlcms.com/\.gif|https://img.gxlcms.com/\.png|https://img.gxlcms.com/\.jpg]))[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"].*?[https://img.gxlcms.com/\/]?>/"; // 正则式 preg_match_all($pattern,$str,$match); return $match[1]; // 返回只带有图片路径的一维数组}
$s =<<< HTMLArray
爱微淘是一家专业从事移动应用开发、微信api开发的技术团队。
HTML;function get_pic_html($str){ $pattern="/<[img|IMG].*?src=[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"](.*?(?:[https://img.gxlcms.com/\.gif|https://img.gxlcms.com/\.png|https://img.gxlcms.com/\.jpg]))[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"].*?[https://img.gxlcms.com/\/]?>/"; // 正则式 preg_match_all($pattern,$str,$match); return $match[1]; // 返回只带有图片路径的一维数组}print_r(get_pic_html($s));
后台直接打印才发现php对post过来的img div span 等带有双引号的标签自动加了转义。。
所以图片标签变成了 所以正则验证不出来。。
对post过来的数据进行stripslashes()去反斜杠就OK了。。
奇怪的是,写入数据库中的textarea却没有反斜杠。。
$s =<<< HTMLArray
爱微淘是一家专业从事移动应用开发、微信api开发的技术团队。
HTML;function get_pic_html($str){ $pattern="/<[img|IMG].*?src=[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"](.*?(?:[https://img.gxlcms.com/\.gif|https://img.gxlcms.com/\.png|https://img.gxlcms.com/\.jpg]))[https://img.gxlcms.com/\'|https://img.gxlcms.com/\"].*?[https://img.gxlcms.com/\/]?>/"; // 正则式 preg_match_all($pattern,$str,$match); return $match[1]; // 返回只带有图片路径的一维数组}print_r(get_pic_html($s));
转义是为了入库方便,转义符不会被数据库保留