1、php 正则替换img路径
思路是,读取CSS样式文件,正则取出所有url路径;然后,再用copy和unlink更换路径。代码如下:
<?php
$str=file_get_contents("layout.css");
preg_match_all("/url\((.*)\) /",$str,$out);
foreach($out[1] as $v){
$new=str_replace("../pic","img",$v);//设置新路径
if(file_exists($v)){//判断是否存在
copy($v,$new);//复制到新目录
unlink($v);//删除老文件
}else{
echo $v."<br/>";//如果不存在,就输出文件目录+文件名
}
}
?>
你可以去后盾人平台看看,里面有很多学习视频,还有线上直播,我也在那里学习
2、php正则替换某一div
<?php
$str = '
<div class="1"></div>
<div class="2"></div>
<!--需要替换的开始-->
<div class="pagination">
<div class="page-bottom">
<span class="page-info">最近30天成交件 </span>
<span>上一页</span>1
<span class="page-cur">2</span>
3
<span class="page-break">…</span>
<span>下一页</span>
</div>
</div>
版 <p class="view-all">查看更多历权史记录<ins></ins></p>
</div>
<!--需要替换的结束-->
';
$search = '/<div class="pagination">.*?<\/p>(\t|\r\n|\n|\s)*<\/div>/is';
$r = preg_replace($search,'',$str);
highlight_string($r);
?>
3、求高手写php验证域名的正则表达式
||<?php
$str = "http://www.12aa_china521.com";
$strlen = strlen($str);
if($strlen<2 || $strlen>46)
{
echo "域名长度为2-46";
exit;
}
$arr = explode(".",$str);
if(strtolower(end($arr))=="cn")
{
if(strpos($str,"china") || strpos($str,"chinese"))
{
echo "cn后缀的域名不允许含有china或者chinese";
exit;
}
}
$preg = "/^(?:http:\/\/)?www.[0-9a-zA-Z]+_?[0-9a-zA-Z]+.(?:com(?:.cn)?|net|org|info|mobi)$/";
if(preg_match($preg,$str))
{
echo "域名正确";
}else{
echo "域名不正确";
}
?>
4、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);
5、PHP正则表达式如何匹配出域名?
看看我下面的例子代码:
<?php
$s='http://www.abc.com
http://www.def.com/
https://www.ghl.com/';
if (preg_match_all('#https?://(.*?)($|/)#m', $s, $r)) print_r($r[1]);
?>
执行的结果是:
E:\ygb>php a.php
Array
(
[0] => www.abc.com
[1] => www.def.com
[2] => www.ghl.com
)
6、php正则替换变量数字“str_replace”怎么用?
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。
PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
$str="news-123";
$str=preg_replace('/news-(d+)/','news',$str);
echo $str;
换个函数哦,str_replace是不支持正则的
7、PHP-php中如何使用正则表达式匹配URL中的域名
^<?php
// 从 URL 中取得主机名
preg_match("/^(http://)?([^/]+)/i", "IP/index.html", $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match("/[^./]+.[^./]+$/", $host, $matches);
echo "domain name is: {$matches[0]}
";
?>
8、php 正则查找 图片的src 并替换相应的src
/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg转
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根据你题目里面举例的这种对比的需求,转换条件认为是
“/Public/Files/全日期/数字.jpg”形式的图片转换成
“/File/Uploads/紧缩日期/数字.jpg”形式的图片。如果实际你的需求有所不同,可以根据这个略微对正则做修改。代码替换部分如下:
$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />来留言看看这的风景好吗 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//这里多举一个图片例子试试
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_)[0]?(\d{1,2}_)[0]?(\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//规则有不同的话你可以这里对比修改下正则参数。good luck~
//----------------------------------------
既然需求少了那么多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果对图片的格式限制不严格(严格点的就需要在尾巴那里罗列出来),可以再简化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);
9、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
10、php正则表达式 正则匹配网址是否带http:// https://
|$str = "https://xxxxxxxxx";
if(preg_match("/^(http:\/\/|https:\/\/).*$/",$str)){
echo "yes";
}
亲测是可以的,你可以自己拿去试一试