⑴ php中正则匹配img标签,并且替换了。
这个用前台的js+dom处理 比较合适
如果非要 用php处理 也可以 只是比较麻烦
function add_http($string){
$a=preg_match_all('/<img.*?>/i',$string,$img_arr);
if(!$a){exit;}
foreach($img_arr[0] as $img){
$b=preg_match('/src\s*?=.*?(\'|").*?(\'|")/i',$img,$url);
if(!$b){continue;}
$url=str_ireplace(' ','',$url[0]);
$url=str_ireplace('src=','',$url);
$url=str_ireplace('"','',$url);
$url=str_ireplace("'",'',$url);
$url_re=str_ireplace('http://','',$url);
$img_url=str_ireplace($url,'http://'.$url_re,$img);
$string=str_ireplace($img,$img_url,$string);
}
return $string;
}
对代码有什么不懂的,可以问我
⑵ php 正则替换所有img标签并且去掉多余属性
//写的一个正则,你试试
preg_replace("/<imgs*src=("|')(.*?)\1[^>]*/is",'<imgsrc="$2"/>',$str)
⑶ php正则替换img标签,在线等
^我估计是你全局替换HTML文本!
第一个:
$output = preg_replace('/<img[^>]+original=\"[^>]+xijie\.jpg\"[^>]+\/>/g','<img width="958" height="40" src="/images/upload/Image/proct-3.png">',$input);
第二个版:
$output = preg_replace('/<img[^>]+original=\"[^>]+\/images\/describe\/[^>]+\"[^>]+\/>/g','',$input);
第三个权:
$output = preg_replace('/<p>\s*<\/p>/g','',$input);
⑷ 请问怎样用php 正则表达式取设置宽和高的[img][/img]标签里面的图片地址
用php给你运行了一个
$txt='[img=442,296]图片地址1[/img]
[img=300,188]图片地址2[/img]
[img=120,206]图片地址3[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';//这里修改下,加上一个?防止以单行文本导致的定界符不准问题
$arr=[];
preg_match_all($re,$txt,$arr);
var_mp($arr);
运行结果如下
phptest.php
array(3){
[0]=>
array(3){
[0]=>
string(32)"[img=442,296]图片地址1[/img]"
[1]=>
string(32)"[img=300,188]图片地址2[/img]"
[2]=>
string(32)"[img=120,206]图片地址3[/img]"
}
[1]=>
array(3){
[0]=>
string(7)"442,296"
[1]=>
string(7)"300,188"
[2]=>
string(7)"120,206"
}
[2]=>
array(3){
[0]=>
string(13)"图片地址1"
[1]=>
string(13)"图片地址2"
[2]=>
string(13)"图片地址3"
}
}
//增加一个矩阵转换
$txt='[img=442,296]图片地址1[/img][img=300,188]图片地址2[/img][img=120,206]图片地址3[/img][img=120,206]wwww[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';
var_mp(preg_match_all_to_array($re,$txt));
functionpreg_match_all_to_array($re,$txt)
{
$arrs=[];
preg_match_all($re,$txt,$arrs);
if($arrs===false)
return$arrs;
//移除到总匹配数据
array_shift($arrs);
$return=[];
//获取矩阵纵长
$arrs_longitudinal=count($arrs);
for($i=0;$i<$arrs_longitudinal;$i++){
//获取单列横长
$arrs_transverse=count($arrs[$i]);
for($j=0;$j<$arrs_transverse;$j++){
$return[$j][$i]=$arrs[$i][$j];
unset($arrs[$i][$j]);
}
unset($arrs[$i]);
}
return$return;
}
⑸ PHP 正则过滤图片的代码
$oldhtml = "<div><span><img src=\"11\" />111111<img src=\"33\" /><img src=\"22\" /></span></div>";
$pattern = "#<img[^复>]+>#";
$html = preg_replace ($pattern , "" , $oldhtml);
输出的制结果就替换掉所有图片了
⑹ php正则表达式怎么过滤除了img标签其他都去删掉
strip_tags($text,'<p><img><br>');
⑺ php正则匹配img标签,并删除
先引入jquery库
<script type="text/javascript">
$(function(){
$('img.delImg').click(function(){
if(confirm('确定删除吗?')){
var delSrc = $(this).prev().attr('src');
alert(delSrc);//如果你需要对该src做其版他操作修改此处权
$(this).parents('li:first').remove();
}
});
});
</script>
⑻ 如何取出img标签的正则表达式(php)
下面我提供点写法:
<?php
$html='<imgsrc="/Cms/Upload/image/20140912/20140912041822_11373.png"alt=""/>
<imgsrc="/Cms/Upload/image/20140912/20140912041822_11373.png"alt=""width="233"/>
<imgsrc="/Cms/Upload/image/20140912/20140912041822_11373.png"alt=""height="400"/>
';
$trip=array('width','height');//过滤的标签,这个根据需要修改
preg_match_all('/<img[^>]*>/',$html,$match);//匹配img标签
$res=array();//结果存放
foreach($match[0]as$val)
{
$flag=true;//是否满足条件
foreach($tripas$s)
{
if(preg_match('/'.$s.'/',$val))//查到在过滤的标签中,不满足条件
{
$flag=false;
break;
}
}
if($flag)
{
preg_match_all('/image[^"]*"/',$val,$temp);//满足条件取出类似image/20140912/20140912041822_11373.png"这一段
$res[]=substr(substr($temp[0][0],0,-1),6);//取出类似20140912/20140912041822_11373.png这一段,并存放到结果数组中
}
}
var_mp($res);
?>
⑼ php用正则表达式替换img中src的路径。
--这个还要写正则!直接用DW就可以批量替换了!
帮你写了一个版
$url='<imgwidth="197"height="253"alt=""src="/case/clxy/page/files/newspic/20090928084704364888.jpg"border="0"/>';
$ok=preg_replace('/(<img.+src="?.+)(case/clxy/page/)(.+."?.+>)/i',"${1}${3}",$url);
echo$ok;
替换后的结果权为
<imgwidth="197"height="253"alt=""src="/files/newspic/20090928084704364888.jpg"border="0"/>
⑽ php通过正则过滤img标签
你好,
关于你问的php通过正则过滤img标签的问题,
没看明白你问的是什么?
能不能再表达清楚一点