⑴ php正则替换
回答者“gpgkd906”的方法很好,学习了,我也把较初级的办法贴一下,供大家参考:
<?php
$content='<img style="cursor: pointer" border="0" alt="复地紫城外景" width="550" height="437" onclick="window.open(\'/uploads/allimg/110504/172_110504113610_1.jpg\')" src="/uploads/allimg/110504/172_110504113610_1.jpg" />';
//php中(\S+)要补上一个加号变成两个,即(\S++)
$s2=preg_replace("/(<img[^>]+(?:src=))(\S++)([^>]*>)/iU","<a href=$2>$1 $2 $3</a>",$content);
echo $s2."\r\n\r\n\r\n"; ///输出第一遍出理结果
//1、如果IMG中有ALT标记,则自动给A链接里加一个TITLE标记,其内容用ALT的。
$s2=preg_replace("/(<a[^>]+)(><img[^>]+?)alt=(\S++)([^>]+>)/iU","$1 title=$3$2$4",$s2);
//2、去掉IMG里的onclick标记
$s2=preg_replace("/(<a[^>]+)(><img[^>]+?)(onclick=\S++)([^>]+>)/iU","$1$2$4",$s2);
echo $s2."\r\n\r\n";
?>
⑵ php 如何正则替换
很简单,代码如下(其实不用正则也可以,strstr()与str_replace()函数也能替换):
// 需要替换的字符串
$string = 'D:\wwwroot\cms\index.php'; // 假设一个路径
// 正则样式
$pattern = '/\\/';
// 检测是否需要替换
if (preg_match($pattern, $string)) {
// 开始替换\为/
$string = preg_replace($pattern, '/', $string);
}
// 输出替换后的字符串
echo $string; // D:/wwwroot/cms/index.php
⑶ php正则替换函数 preg_replace ,替换部分字符
只想将 $param 替换为 $pstr的话就不要用正则。
$phpstr = str_replace('$param','$pstr',$phpstr);
⑷ php指定范围批量正则匹配与替换
preg_replace(array('/>小明/'),array('>小王'),html代码);//已经过测试有效
⑸ php 正则表达式替换
<?php
@header('Content-type:text/html;charset=GBK');
$subject='<imgtitle="美国留学网站"alt="美国留学网站">美国留学网站<imgtitle="美国留学网站"alt="美国留学网站">';
$pattern="/(留学)(?![^'"><]*['"])/";
$result=preg_replace($pattern,"<a>$1</a>",$subject);
echo$result;
?>
⑹ php正则表达式替换问题php函数preg_replace的使用问题
都帮你测试好了,正则多写一个<ul>就能搞定了:
<?php
$str = '你的一大堆字符串'; // 你如果直接放字符串,需要用单引号
$reg = '/<div class="pic-list">\s+<ul>.*?<\/ul>\s+<\/div>/is';
$new_str = preg_replace( $reg, '', $str);
echo $new_str;
?>
⑺ php正则替换
如果你是想要把空格前后的内容换换位置的话,是完全可以的。
首先以空格为分隔,把字符串变成数组.$arr_titles = explode(' ',$titles);这样就得到一个数组,$arr_titles的内容应该是('手提包','超级甜美味儿简约蝴蝶结箱型手提包'),你可以用print_r($titles)打出来看一下。
然后把数组$arr_titles反过来排序。
$i = count($arr_titles);//获取数组长度
$new_arr_titles = array();//定义新数组
foreach($arr_titles as $k=>$v){
$new_arr_titles[$i-$k] = $v;
}
然后拼接回数组。$new_titles = implode(' ',$arr_titles);
这样不管$title中有多少个按照空格分隔的字符串,都可以反过来排序了。
不知道是不是你想要的效果,如果不是可以追问,我继续回答。如果可以帮到你,希望你能够采纳。谢谢。
⑻ PHP正则表达式替换函数eregi_replace不起作用
在5.3版的以后的php,比如5.4, 5.5,已经废除了eregi_replace函数
去掉@,用preg_replace替代。
⑼ php如何进行正则替换
按照你的要求把h后的数字和w后的任意数字替换成固定数的php程序如下
<?php
$fix='555';//固定数
$str='asdasda/w/100/h/200/q/sdasdsad';
$regex1="~h/[0-9]+~";
$result=preg_replace($regex1,"h/".$fix,$str);
$regex2="~w/[0-9]+~";
$result=preg_replace($regex2,"w/".$fix,$result);
print_r($result);
?>
运行结果
asdasda/w/555/h/555/q/sdasdsad
⑽ php 正则函数 preg_replace
因为数组里面你先写了#ab#,后写的#abc#,实际工作时系统先使用第一组参数替换,然后使用第二组参数替换。
如果你希望得到22结果,应该交换数组里面两个的顺序。