/*
我想实现把字体串当中的第一个/替换成*,不知道如何实现,本来想用str_replace的,但没有替换个数的参数,
ereg_replace函数有限制替换函数的参数,只有用preg_replace了,但是问题出现了,如下报错,在线等待高手解决/*
$search = "/";
echo preg_replace("/" . addslashes($search) . "/","*","/|/|",1);//不加addslashes不行,加了也不行,不知道有办法解决么

解决方案 »

  1.   

    补充一下:$search = "/";
    这个变量是不固定的有可能是以下几种情况
    $search = "/web/";
    $search = "/../";
    $search = "../";
    $search = "test/";
    ..................................

      

  2.   

    我比较喜欢exploded() 和implode()$search = "????????";
    $tempArray = explode($search,"/");$tempArray[1] = $tempArray[0]."*".$tempArray[1];
    unset($tempArray[0]);
    $tempArray = implode($search,"/");
      

  3.   

    更好的方法$search = "????????";
    $tempArray = explode($search,"/",2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1];
      

  4.   

    对不起错了,应该是$search = "????????";
    $tempArray = explode("/",$search,2);//将$search截为两个数组元素$search= $tempArray[0]."*".$tempArray[1];
      

  5.   

    echo preg_replace("/\//","*","1/2/3/4",1);
      

  6.   


    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);
    ?>  
     
      

  7.   

    str_replace( "//", "*", $search, 1 );
      

  8.   

    正则搞了半天搞不出来,写了段代码,仅供参考...$search = "12/33/44/5";$se = explode( "/", $search );$se[1] = $se[0]."*".$se[1];unset( $se[0] );$se = implode( "/", $se );print_r( $se );
      

  9.   

    $str = 'fjkfjaffjdkafjdl/afjkds/fjska';$str[strpos($str,'/')]='*';根本用不着函数,csdn的论坛怎么不让编辑帖子啊.
      

  10.   

    $str = 'fjkfjaffjdkafjdl/afjkds/fjska'; $str[strpos($str,'/')]='*'; 根本用不着函数,csdn的论坛怎么不让编辑帖子啊$str = 'fjkfjaffjdkafjdl/afjkds/fjska'; $str[strpos($str,'/')]='*'; 根本用不着函数,csdn的论坛怎么不让编辑帖子啊
    这个对吗??
      

  11.   

    $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);