自己实在实现不了这个函数了,请大家帮忙 /*我想实现把字体串当中的第一个/替换成*,不知道如何实现,本来想用str_replace的,但没有替换个数的参数,ereg_replace函数有限制替换函数的参数,只有用preg_replace了,但是问题出现了,如下报错,在线等待高手解决/*$search = "/";echo preg_replace("/" . addslashes($search) . "/","*","/|/|",1);//不加addslashes不行,加了也不行,不知道有办法解决么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一下:$search = "/";这个变量是不固定的有可能是以下几种情况$search = "/web/";$search = "/../";$search = "../";$search = "test/";.................................. 我比较喜欢exploded() 和implode()$search = "????????";$tempArray = explode($search,"/");$tempArray[1] = $tempArray[0]."*".$tempArray[1];unset($tempArray[0]);$tempArray = implode($search,"/"); 更好的方法$search = "????????";$tempArray = explode($search,"/",2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1]; 对不起错了,应该是$search = "????????";$tempArray = explode("/",$search,2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1]; echo preg_replace("/\//","*","1/2/3/4",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);?> str_replace( "//", "*", $search, 1 ); 正则搞了半天搞不出来,写了段代码,仅供参考...$search = "12/33/44/5";$se = explode( "/", $search );$se[1] = $se[0]."*".$se[1];unset( $se[0] );$se = implode( "/", $se );print_r( $se ); $str = 'fjkfjaffjdkafjdl/afjkds/fjska';$str[strpos($str,'/')]='*';根本用不着函数,csdn的论坛怎么不让编辑帖子啊. $str = 'fjkfjaffjdkafjdl/afjkds/fjska'; $str[strpos($str,'/')]='*'; 根本用不着函数,csdn的论坛怎么不让编辑帖子啊$str = 'fjkfjaffjdkafjdl/afjkds/fjska'; $str[strpos($str,'/')]='*'; 根本用不着函数,csdn的论坛怎么不让编辑帖子啊这个对吗?? $search = "/";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); 找个人帮忙测试一下手上的shopex系统是否还能使用 这个网站是用php的什么技术做的 问一个数组问题,急…… fckeditor编辑器 默认居中对齐? static变量的问题 我的正则为何不对 你们的电脑是不是可以直接在cmd里运行php命令,而不需要先cd到php目录? 剔除mysql数据库中重复的数据有什么好办法吗? %%%%%%%%%%%十万火急,请高手帮忙! %%%%%%%%%%%%%% %s是什么意思/???? 一个关于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);