/*
我想实现把字体串当中的第一个/替换成*,不知道如何实现,本来想用str_replace的,但没有替换个数的参数,
ereg_replace函数有限制替换函数的参数,只有用preg_replace了,但是问题出现了,如下报错,在线等待高手解决/*
$search = "/";
echo preg_replace("/" . addslashes($search) . "/","*","/|/|",1);//不加addslashes不行,加了也不行,不知道有办法解决么
解决方案 »
- php 导出excel 出现科学计算法 怎么办
- 为什么我php文件中显示不了jpg图形文件?请教各位,谢谢。
- 控制器和视图之间传参时字符串前面莫名其妙多了“77u/”字符
- 哪位大哥救救小弟! pear真难啊,看得我头都大了,英文又看不懂
- 动态页面中js 实现跨域访问页面
- discuz5.5 如何贴视贴视频分享的代码?
- warning 可以改成抛出异常么
- 可以这样创建对象吗?
- PHP连接MSSQL处理日期类型?????
- 我用delphi自带的QuickRep作了个简单的报表,可是...(斑竹,我问的报表问题没人解决,你来好吗?)
- 一个关于sqlserver +php分组查询的问题
- 怎样开启邮件服务
这个变量是不固定的有可能是以下几种情况
$search = "/web/";
$search = "/../";
$search = "../";
$search = "test/";
..................................
$tempArray = explode($search,"/");$tempArray[1] = $tempArray[0]."*".$tempArray[1];
unset($tempArray[0]);
$tempArray = implode($search,"/");
$tempArray = explode($search,"/",2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1];
$tempArray = explode("/",$search,2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1];
string preg_quote ( string str [, string delimiter] )
preg_quote() 以 str 为参数并给其中每个属于正则表达式语法的字符前面加上一个反斜线。如果你需要以动态生成的字符串作为模式去匹配则可以用此函数转义其中可能包含的特殊字符。 如果提供了可选参数 delimiter,该字符也将被转义。可以用来转义 PCRE 函数所需要的定界符,最常用的定界符是斜线 /。 正则表达式的特殊字符包括:. \ + * ? [ ^ ] $ ( ) { } = ! < > | :。 例 1. preg_quote() 例子<?php
$keywords = '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // returns \$40 for a g3\/400
?>
例 2. 给某文本中的一个单词加上斜体标记<?php
// 本例中,preg_quote($word) 用来使星号不在正则表达式中
// 具有特殊含义。$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/".preg_quote($word)."/",
"<i>".$word."</i>",
$textbody);
?>
这个对吗??
echo preg_replace("/" . addslashes($search) . "/","*","/|/|",1); ???????????1、不能用addslashes进行转义,需要做字符串替换
str_replace('/','\\/',$search)2、$search 还有可能出现正则表达式的保留字,因此还应该用preg_quote对保留字进行转义综合上述,得
echo preg_replace("/" . str_replace('/','\\/',preg_quote($search)) . "/","*","/|/|",1);当然也可以写做
echo preg_replace("#" . preg_quote($search) . "#","*","/|/|",1);