"background设置图片": "url(" + img_str + ") no-repeat center 0"

php 去除图片以及DIV的width、height、style,作用:ecshop手机网站调用商品...
php 去除图片以及DIV的width、height、style,作用:ecshop手机网站调用商品详情
1.去掉图片的宽高,去掉DIV的style样式
/*PHP正则提取图片img标记中的任意属性*/
$str = '&div style=&margin: 0 width: 740&& &p&&img width=&748& height=&444& alt=&& src=&/images/upload/Image/manmiao_0001.jpg& /&&/p&&/div&';
//去掉图片宽度
$search = '/(&img.*?)width=([&\'])?.*?(?(2)\2|\s)([^&]+&)/is';
//去掉图片高度
$search1 = '/(&img.*?)height=([&\'])?.*?(?(2)\2|\s)([^&]+&)/is';
$content = preg_replace($search,'$1$3',$str);
$content = preg_replace($search1,'$1$3',$content);
//去掉div的style
$content = preg_replace(&/style=.+?['|\&]/i&,'',$content);//这种方式很简单易懂,但因为太简单,不知道有没有漏洞,否则去掉图片的宽高也用这种方法写了
highlight_string($content);
请问php正则如何去掉得到img标签中的 border属性,例如:&img src=&test.gif& border=&0& alt=&test1& /&&& 替换后的& &img src=&test.gif& alt=&test1& /&
一开始我就想到要 只去掉border=&& 很简单的写出
$search&=&'/(&img.*?)(border=&.*?&)([^&]+\/?&)/is';
它只能去掉形如&img src=&囧1& border=&囧2& /&这样的border,一般的 &img&标签会有这样几种含有boder的情况
&&& &img src=&囧1& border=&囧2& /&&&& &img src='囧1' border='囧2' /&&&& &img src=囧1 border=囧2 /&
也就是有符合w3c标准的双引号,还有不符合w3c标准单引号,无引号的情况。想要把他们的border也去掉
于是改成以下的正则:
$search&=&'/(&img.*?)border=([&\']).*?\2([^&]+&)/is';
此正则只能解决有单、双引号的border,暂时没有解决无引号的
回去翻了以前的文章《》&
看了正则还支持三目运算: (xxx)? (?(分组号) yyy|zzz) 如果xxx不为空 执行yyy,否则执行zzzz
于是改成了此完美最终版本:
$search&=&'/(&img.*?)border=([&\'])?.*?(?(2)\2|\s)([^&]+&)/is';
终于解决问题了,上一个php例子吧
src=&test1.jpg&&border=&1&&/&
src=\'test2.jpg\' border=\'2\' /&
src=test3.jpg border=3 /&
$search&=&'/(&img.*?)border=([&\'])?.*?(?(2)\2|\s)([^&]+&)/is';
preg_replace($search,'$1$3',$str);
highlight_string($r);
过滤后只是多了一个空格,也不要紧了,已经解决问题了。
enenba原创,转载请保留出处:
$str&=&'&center&&img
src=&/uploads/images/.jpg& height=&120& width=&120&&&br /&PHP正则提取或更改图片img标记中的任意属性&/center&';
preg_match('/&\s*img\s+[^&]*?src\s*=\s*(\'|\&)(.*?)\\1[^&]*?\/?\s*&/i',$str,$match);
echo&$match[0];
preg_match('/&img.+(width=\&?\d*\&?).+&/i',$str,$match);
echo&$match[1];
preg_match('/&img.+(height=\&?\d*\&?).+&/i',$str,$match);
echo&$match[1];
preg_match('/&img.+src=\&?(.+\.(jpg|gif|bmp|bnp|png))\&?.+&/i',$str,$match);
echo&$match[1];
preg_replace('/(&img.+src=\&?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\&?.+&)/i',&\${1}uc/images/\${3}&,$str);
echo&&&hr/&&;
preg_replace('/(&img).+(src=\&?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\&?).+&/i',&\${1}
\${2}uc/images/\${3}&&,$str);
strip_tags($str)&去掉 HTML 及 PHP 的标记
语法: string strip_tags(string str);&
传回值: 字串&
函式种类: 资料处理&
内容说明 :
解析:本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串。若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。而本函式和&fgetss()&有着相同的功能
PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了
经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。
PHP清除html、css、js格式并去除空格的PHP函数
function cutstr_html($string, $sublen)&&&&
&&$string = strip_tags($string);
&&$string = preg_replace ('/\n/is', '', $string);
&&$string = preg_replace ('/ | /is', '', $string);
&&$string = preg_replace ('/&/is', '', $string);
&&preg_match_all(&/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/&, $string, $t_string);&&&
&&if(count($t_string[0]) - 0 & $sublen) $string = join('', array_slice($t_string[0], 0, $sublen)).&…&;&&&
&&else $string = join('', array_slice($t_string[0], 0, $sublen));
&&return $
解析:这个函数既有去除html标签、css样式、js、空格等格式的功能(格式化html文本)也有截取字符串的功能。
htmlspecialchars&将特殊字元转成 HTML 格式
语法: string htmlspecialchars(string string);&
传回值: 字串&
函式种类: 资料处理&
解析:本函式将特殊字元转成 HTML 的字串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。&
& (和) 转成 &&
& (双引号) 转成 &&
& (小于) 转成 &&
& (大于) 转成 &&
此函式只转换上面的特殊字元,并不会全部转换成 HTML 所定的 ASCII 转换。&
&FORM ACTION='./../b'la&
&H2&Restaurant Description&H2&
Name of restaurant:
&INPUT TYPE=text NAME=&restname& VALUE=&&?echo HTMLSpecialChars($restname); ?&&&&
&!-- 变数 $restname 是酱子的 $restname=&\&The White Horse\&&; --&
输入描述 (若您会 HTML,可直接使用): &BR&
&TEXTAREA NAME=&descript&&&?echo HTMLSpecialChars($descript);?&&/TEXTAREA&&
&INPUT TYPE=submit&
htmlentities&将所有的字元都转成 HTML 字串&
语法: string htmlentities(string string);&
传回值: 字串&
函式种类: 资料处理&
解析:本函式有点像 htmlspecialchars() 函式,但本函式会将所有 string 的字元都转成 HTML 的特殊字集字串。不过在转换后阅读网页原始码的方面,会有很多困扰,尤其是网页原始码的中文字会变得不知所云,浏览器上看到的还是正常的。
去除html标签 js&和 css样式 -&最爱用的一个PHP清楚html格式函数
Function ClearHtml($content) {&&
&&&$content = preg_replace(&/&a[^&]*&/i&, &&, $content); &
&&&$content = preg_replace(&/&\/a&/i&, &&, $content); &&
&&&$content = preg_replace(&/&div[^&]*&/i&, &&, $content); &
&&&$content = preg_replace(&/&\/div&/i&, &&, $content);&&&&&&
&&&$content = preg_replace(&/&!--[^&]*--&/i&, &&, $content);//注释内容
&&&$content = preg_replace(&/style=.+?['|\&]/i&,'',$content);//去除样式 &
&&&$content = preg_replace(&/class=.+?['|\&]/i&,'',$content);//去除样式 &
&&&$content = preg_replace(&/id=.+?['|\&]/i&,'',$content);//去除样式 &&&&
&&&$content = preg_replace(&/lang=.+?['|\&]/i&,'',$content);//去除样式 &&&&&
&&&$content = preg_replace(&/width=.+?['|\&]/i&,'',$content);//去除样式 &&
&&&$content = preg_replace(&/height=.+?['|\&]/i&,'',$content);//去除样式 &&
&&&$content = preg_replace(&/border=.+?['|\&]/i&,'',$content);//去除样式 &&
&&&$content = preg_replace(&/face=.+?['|\&]/i&,'',$content);//去除样式 &&
&&&$content = preg_replace(&/face=.+?['|\&]/&,'',$content);//去除样式只允许小写正则匹配没有带 i 参数
&&&return&$content;
正则表达式处理字符串中的img,去除style属性,添加自适应图片的类
php 去掉图片的宽度、高度设置
php 去除html标签 和 css样式
php使用正则去除宽高样式
没有更多推荐了,Spring MVC 实现文件下载 【Spring MVC 学习笔记 五】...
Spring MVC 实现文件下载 【Spring MVC 学习笔记 五】
Spring MVC 实现文件上传地址:
文件下载的模式
1.直接下载模式:把上传的文件直接放在Web的目录,使用HTML标签显示或下载。
&img src=”upload/文件名” /&
&a href=”upload/文件名”&下载&/a&
2.间接下载模式: 文件保存在数据库中,或保存一个非web目录下。只能通过编程取得下载文件。
HTTP响应内容
1.状态码(Status Code)
表达服务器处理请求的状态,是否成功等信息。200 OK, 404,400, 405 ,415, 500
2.响应头(response header):
包含响应体的类型(ContentType), 字符编码集,响应体长度等信息。
3.响应体(Response Body):
文本格式: text/html, application/json,
application/xml
二进制格式:image/jpeg, image/gif, audio/mp3, video/mp4
原始的Servlet发送HTTP响应编程
1.文本类型响应:
(1)取得响应对象: HttpServletResponse
(2)设置响应类型:setContentType
(3)设置字符编码集:
(4)取得连接客户端的文本输出流: Writer out=
(5)写数据到输出流。
(6)清空缓存
(7)关闭输出流。
2.二进制类型响应:
(1)取得响应对象: HttpServletResponse
(2)设置响应类型:setContentType
(3)取得连接客户端的二进制输出流: OutputStream out=
(4)写数据到输出流。
(5)清空缓存,
(6)关闭输出流
Spring MVC控制器的方法的参数类型
1.Spring MVC的Model对象:Model:保存给View传递的数据。
2.业务的Model对象:接收请求的数据。
3.单独的参数: int page: 接收数据。
4.地址栏变量: url{page} @PathVariable
Spring MVC控制方法的返回类型
1.String : 表达View的逻辑名, 需要View的解析器进行解析。
2.void: 无view返回,直接处理响应。
3.@ResponseBody Java数据类型: 控制器直接发送响应数据。
默认使用JSON解析器。
可以返回任何Java数据类型。
4.HttpEntity&B&,
5.ResponseEntity&B&: 由控制方法直接返回HTTP响应,
B泛型指定响应体的数据类型。
Spring MVC 模式 图片显示:
编程案例:显示保存在数据库中员工的照片。
数据库使用Byte[]存放图片,并编写下列代码读取图片,并直接输出:
@ResponseBody
@RequestMapping("/togetPhotobyno")
public void showEmployeePhoto(@RequestParam(required=false) int no,HttpServletResponse response) throws Exception{
EmployeeModel employee=employeeService.findEmployeeByNo(no);
if(employee!=null&&employee.getPhotoFileName()!=null) {
response.setContentType(employee.getPhotoContentType());
OutputStream out=response.getOutputStream();
//其中getPhoto()返回类型是 byte[] 类型
out.write(employee.getPhoto());
out.flush();
out.close();
其实就是将图片以二进制输出即可实现图片显示,前端只需要通过 togetPhotobyno.mvc 即可显示图片。
&img src="togetPhotobyno.mvc?no=${employeeNo}" /&
效果:访问
Spring MVC模式编写文件下载
使用ResponseEntity&B&返回类型,可以实现Spring MVC模式的文件下载。
优点是不依赖Web Servlet API对象,推荐使用此模式。
基本编程步骤:
取得响应的类型,包括主类型,子类型。
创建响应头对象:HttpHeaders
设置响应头信息:
创建ResponseEntity&B&对象,设置响应体数据,响应头,状态码。
返回ResponseEntity&B&对象即可。
编程案例:下载保存在数据库中员工的照片。
@RequestMapping(value="/togetPhotobyno01")
public ResponseEntity&byte[]& showEmployeePhoto01(@RequestParam(required=false) int no) throws Exception{
EmployeeModel emp=employeeService.findEmployeeByNo(no);
if(emp!=null&&emp.getPhotoFileName()!=null) {
byte[] photo=emp.getPhoto();
String fileName=emp.getPhotoFileName();
String contentType=emp.getPhotoContentType();
String mainType=contentType.substring(0, contentType.indexOf("/"));
String subType=contentType.substring(contentType.indexOf("/")+1);
String dfileName=new String (fileName.getBytes("UTF-8"),"iso8859-1");
HttpHeaders headers=new HttpHeaders();
headers.setContentType(new MediaType(mainType,subType));
headers.setContentDispositionFormData("attachment", dfileName);
return new ResponseEntity&byte[]& (photo,headers,HttpStatus.CREATED);
访问该网址即可自动下载文件。
没有更多推荐了,搬运工一枚
2018年02月
确定要删除当前文章?页面ajax上传图片后,后台上传图片服务器后回显页面ajax上传图片后,后台上传图片服务器后回显凯哥Java百家号在工作中,我们会经常遇到上传图片的功能。如下图:页面使用ajax上传后,经过java后台处理上传到图片服务器后,返回路径,进行回显。如下图:申明:本文系凯哥Java(www.kaigejava.com)原创。未经允许,禁止转载!开始编码:前台HTML代码:&div&
&label class=&label_width_right& for=&&&转账回执单:&/label&&input type=&text& placeholder=&上传转账回执截图&&
&span class=&upload-btn&&
&input type=&file& name=&file& id=&pic& onchange = &uploadFile(this)&&
&input type=&hidden& id=&tmpFileName&&
&span id = &zzhz1& style = &color:red&&&span& &/div&js代码:校验图片格式、大小的js//校验图片function checkImgType(ths){ if (ths.value == &&) {
alert(&请上传图片&);
if(!/\.(jpg|jpeg|png|JPG|JPEG|PNG)$/.test(ths.name)) {
alert(&图片类型必须是jpeg,jpg,png中的一种&);
ths.value = &&;
var size = ths.
var max_size
= Math.ceil(size / 1024);
if(max_size & 5*1024){
alert(&图片不能大于5M&);
}执行上传的js://上传转账回执function uploadFile(obj){ if(checkImgType(document.getElementById(&pic&).files[0])){
var formData = new FormData();
formData.append(&file&, document.getElementById(&pic&).files[0]);
formData.append(&type&, &1&);
formData.append(&authType&, &1&);
url: &${path }/web/order/uploadFile&,
type: &POST&,
data: formData,
cache: false,
contentType: false,
processData: false,
success: function (data){
var dataJson = JSON.parse(data)
if(dataJson.flag){
var ht = &&img src = '&%=file_path %&&+dataJson.fileUrl+&' height = '200px' width = '300px' id = 'zzhz'&&;
$(&#seeImg&).empty();
$(&#seeImg&).append(ht);
$(&#zzhz1&).text(&&);
alert(&上传失败&)
}); }}后台Java代码:上传入口:/**
* 上传转账回执以及专票资质审核图片
* @param request
* @param response
* @param file
* @param pid
转账回执的图片ID
* @param str
0 转账回执上传图片
1专票资质审核上传的图片
* @param zid
专票审核图片ID
* @param fl
区分专票资质审核的上传图片位置
*/ @RequestMapping(value = &/uploadFile&) public void uploadFiles(HttpServletRequest request,HttpServletResponse response,@RequestParam(value = &file&, required = false) MultipartFile file,String pid,String str,String zid,Integer fl){
//响应参数 0正常
1文件为空 2文件大于5M
boolean flag =
String url =
String zzid
if (null != file && !file.isEmpty()){
//判断图片大小 不能大于5M
if(file.getSize()/1024 & OrderConstant.PIC_SIZE){
//获取上传的路径//
String path = request.getSession().getServletContext().getRealPath(&/uploadFiles/&);
String path = SysConstants.UPLOAD_FILE_PATHS;//
UPLOAD_FILE_PATHS = /data/phrastatic/yaodu/uploadFiles
//获取原文件名
String fileName = file.getOriginalFilename();
//获取里面的输入流
InputStream is = file.getInputStream();
String newFileName = FileUtil.uploadFile(is, fileName, path);
url = newFileN
} catch (IOException e1) {
e1.printStackTrace();
if(null != str && str.equals(&0&)){
//根据ID查询图片是否存在
EedbOrderPayBean eopb =
if(null != pid && !pid.equals(&&)){
eopb = eedbOrderService.findPicById(pid);
//图片已经上传过 进行修改
if(null != eopb){
if(null != eopb.getTransferAccountsReceiptName() && !eopb.getTransferAccountsReceiptName().equals(&&)){
//删除服务器源文件
FileUtil.deleteFile(path + &/& + eopb.getTransferAccountsReceiptName());
eopb.setTransferAccountsReceiptName(url);
eedbOrderService.updatePicById(eopb);
} catch (Exception e) {
e.printStackTrace();
}else if(null != str && str.equals(&1&)){
//根据ID查询图片是否存在
EedbSysExperticketExamine esee =
if(null != zid && !zid.equals(&&)){
esee = eedbOrderService.findExperticketExamineById(zid);
zzid = esee.getId();
if(null != esee){
EedbSysExperticketExamine esee2 = new EedbSysExperticketExamine();
esee2.setId(esee.getId());
if(fl == 1){
if(null != esee.getBusinessLicenseImgName() && !esee.getBusinessLicenseImgName().equals(&&)){
//删除服务器源文件
FileUtil.deleteFile(path + &/& + esee.getBusinessLicenseImgName());
esee2.setBusinessLicenseImgName(url);
esee2.setBusinessLicenseImgName(url);
}else if(fl == 2){
if(null != esee.getTaxRedisCertifiImgName() && !esee.getTaxRedisCertifiImgName().equals(&&)){
//删除服务器源文件
FileUtil.deleteFile(path + &/& + esee.getTaxRedisCertifiImgName());
esee2.setTaxRedisCertifiImgName(url);
esee2.setTaxRedisCertifiImgName(url);
}else if(fl == 3){
if(null != esee.getOpenBankAccountImgName() && !esee.getOpenBankAccountImgName().equals(&&)){
//删除服务器源文件
FileUtil.deleteFile(path + &/& + esee.getOpenBankAccountImgName());
esee2.setOpenBankAccountImgName(url);
esee2.setOpenBankAccountImgName(url);
}else if(fl == 4){
if(null != esee.getGeneralTaxCertifiImgName() && !esee.getGeneralTaxCertifiImgName().equals(&&)){
//删除服务器源文件
FileUtil.deleteFile(path + &/& + esee.getGeneralTaxCertifiImgName());
esee2.setGeneralTaxCertifiImgName(url);
esee2.setGeneralTaxCertifiImgName(url);
eedbOrderService.updateZZPicById(esee2);
EedbSysExperticketExamine esee1 = new EedbSysExperticketExamine();
esee1.setId(UUID.randomUUID().toString());
zzid = esee1.getId();
if(fl == 1){
esee1.setBusinessLicenseImgName(url);
}else if(fl == 2){
esee1.setTaxRedisCertifiImgName(url);
}else if(fl == 3){
esee1.setOpenBankAccountImgName(url);
}else if(fl == 4){
esee1.setGeneralTaxCertifiImgName(url);
eedbOrderService.saveZZPicUrl(esee1);
JsonUtil.outJson(&{\&flag\&:\&&+flag+&\&,\&fileUrl\&:\&&+url+&\&,\&zid\&:\&&+zzid+&\&}&, response); }FileUtil工具类:/**
* 文件上传
* @param is
* @param fileName
* @param folderPath
*/ public static String uploadFile(InputStream is, String fileName, String folderPath) {
//上传物理文件到服务器硬盘
BufferedInputStream bis =
FileOutputStream fos =
BufferedOutputStream bos =
String uploadFileName =
// 构建输入缓冲区,提高读取文件的速度
bis = new BufferedInputStream(is);
// 自动建立文件夹
File folder = new File(folderPath);
if (!folder.exists()) {
folder.mkdirs();
// 为了避免中文乱码问题则新生成的文件名
uploadFileName = getSuffix(fileName);
// 构建写文件的流即输出流
fos = new FileOutputStream(new File(folderPath+&/&+uploadFileName));
// 构建输出缓冲区,提高写文件的性能
bos = new BufferedOutputStream(fos);
//通过输入流读取数据并将数据通过输出流写到硬盘文件中
byte[] buffer = new byte[4096];//构建缓冲区
int s = 0;
while ((s=bis.read(buffer)) != -1) {
bos.write(buffer, 0, s);
bos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bos != null) {
bos.close();
} catch (IOException e) {
e.printStackTrace();
if (fos != null) {
fos.close();
} catch (IOException e) {
e.printStackTrace();
if (bis != null) {
bis.close();
} catch (IOException e) {
e.printStackTrace();
if (is != null) {
is.close();
} catch (IOException e) {
e.printStackTrace();
return uploadFileN }
private static String getSuffix(String fileName) {
String extensionName = fileName.substring(fileName.lastIndexOf(&.&) + 1);
//新的图片文件名 = UUID(前8位) + 获取时间戳 (后6位) + fileName后缀
String substring = UUID.randomUUID().toString().substring(0, 8);
String valueOf = String.valueOf(System.currentTimeMillis());
String substring2 = valueOf.substring(valueOf.length()-6, valueOf.length());
String suffix = substring + substring2 + &.& + extensionN }本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。凯哥Java百家号最近更新:简介:专业Java教程开发。从零学Java作者最新文章相关文章MySQL的开端
确定要删除当前文章?}

我要回帖

更多关于 background属性平铺 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信