怎么将ereg_replace替换成 preg_replace

$rootpath=ereg_replace("/install/index\\.php(.*)\$","",$scriptName);... $rootpath = ereg_replace( "/install/index\\.php(.*)\$", "", $scriptName ); 展开
 我来答
w别y云j间
高粉答主

2015-10-22 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:8903
采纳率:91%
帮助的人:773万
展开全部

  preg_replace的正则表达式前后要加 /


  ereg_replace与 preg_replace区别:

  mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

  在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。

  replacement 可以包含 \\n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。

  对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 \\1 符号来表示逆向引用。举例说 \\11,将会使 preg_replace() 搞不清楚是想要一个 \\1 的逆向引用后面跟着一个数字 1 还是一个 \\11 的逆向引用。本例中的解决方法是使用 \${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。

  此函数主要是用来进行正则匹配的mixed pattern必须是行为""这样的形式

  string ereg_replace ( string pattern, string replacement, string string)

  本函数在 string 中扫描与 pattern 匹配的部分,并将其替换为 replacement。

  返回替换后的字符串。(如果没有可供替换的匹配项则会返回原字符串。)

  如果 pattern 包含有括号内的子串,则 replacement 可以包含形如 \\digit 的子串,这些子串将被替换为数字表示的的第几个括号内的子串;\\0 则包含了字符串的整个内容。最多可以用九个子串。括号可以嵌套,此情形下以左圆括号来计算顺序。

  如果未在 string 中找到匹配项,则 string 将原样返回。

  此函数主要是用来进行字符匹配的,不能带有“//”

匿名用户
2015-05-03
展开全部
preg_replace的正则表达式前后要加 /

1
2
3
4
5

// 这个是把连续的空格替换成下划线
$file_name = preg_replace("/[ ]+/", "_", $file_name);

// 我估计 $pattern 变量里也没有加 /
$valid_file = preg_replace("/" . $pattern . "/", "_", trim($fname));
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式