$val['color']='<b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2(x3)">[显示全部]</a>我想把上面这句代码中的(x3)加一个单引号变成('x3'),但是我用了转义符之后(“\'”x3“\'”)程序提示如下错误Parse error: syntax error, unexpected T_STRING in E:\php\PHPnow-1.5.6\htdocs\dg\e\data\tmp\templist9.php请问是怎么回事,我的转义符应该没有输入错误啊

解决方案 »

  1.   

    本帖最后由 PhpNewnew 于 2012-06-10 22:21:36 编辑
      

  2.   

    [User:root Time:22:44:38 Path:/home/liangdong/php]$ php preg.php 
    <b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2('x3')">[显示全部]</a>
    <b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2('x3')">[显示全部]</a>
    [User:root Time:22:44:39 Path:/home/liangdong/php]$ cat preg.php 
    <?php
    // 直接手写上去?
    $val['color'] = '<b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2(\'x3\')">[显示全部]</a>';
    echo $val['color'] . PHP_EOL;// 还是程序替换上去?
    $val['color'] = '<b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2(x3)">[显示全部]</a>';
    $val['color'] = str_replace('x3', "'x3'", $val['color']);
    echo $val['color'] . PHP_EOL;
    ?>
      

  3.   


    $val['color']='<b>颜色:</b><div class="xmkk"><a style="cursor:pointer;position:absolute; right:0;top:0;" onclick="s2(\'x3\')">[显示全部]</a>';
    echo $val['color'];
      

  4.   

    完整代码是这样的
    <?php 
            $GET=$_GET;
    //------- 函数参数设置开始 ----- //要显示的结合项字段列表,多个字段用半角逗号","隔开 如果是二级关系用 "#"
    $fieldandvar='danpinxifenlei,color,jiage,qqq#kkk';
    //正常链接样式
    $fieldandcss='fieldandcss';
    //已选的选项链接样式
    $changefieldandcss='changefieldandcss'; //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
    $fieldexp='<table class="goufenleibg"><tr><td>|</td></tr></table>'; //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
    $valexp='| '; //字段显示选项设置,多项用"|"号隔开,格式:选项说明|==|内容1,值1|内容2,值2
            $val=array();
    $val2=array();
    $val3=array();
    $val['danpinxifenlei']='<b>分类:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2"('x2')">[显示全部]</a>

    <div id="x2" style="height:20px;width:900px;overflow:hidden;">|==|全部类型|雪纺衫,雪纺衫|短袖T,短袖T|衬衫,衬衫|西装,西装</div></div>';

        $g=user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3);
    ?><?=$g[0]?>
    <?=$g[1]?>
    <?=$g[2]?>
    <?=$g[3]?>
    <?=$g[4]?>
    <script type="text/javascript">
    function s2(x)
    {
      var n=document.getElementById(x);
      if(n.style.overflow!=""){
      n.style.overflow = ""
      }
      else {
      n.style.overflow = "hidden"
      }
    }
    </script>我就是想把$val['danpinxifenlei']='<b>分类:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2"('x2')">[显示全部]</a>
    这句里面x2的单引号转义一下 现在php一直报错 我想让他生成网页的时候是('x2')
      

  5.   

    $val['danpinxifenlei']='<b>分类:</b><div class="xmkk"><a style="cursor: pointer; position:absolute; right:0;top:0;" onclick="s2(\'x2\')">[显示全部]</a>
      

  6.   

    $val['color']='<b>颜色:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2(x3)">[显示全部]</a>';没有结尾。
      

  7.   

    $val['danpinxifenlei']='<b>分类:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2(\'x2\')">[显示全部]</a>
        
    <div id="x2" style="height:20px;width:900px;overflow:hidden;">|==|全部类型|雪纺衫,雪纺衫|短袖T,短袖T|衬衫,衬衫|西装,西装</div></div>';
        
    print_r($val);
    Array
    (
        [danpinxifenlei] => <b>分类:</b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2('x2')">[显示全部]</a>
        
    <div id="x2" style="height:20px;width:900px;overflow:hidden;">|==|全部类型|雪纺衫,雪纺衫|短袖T,短袖T|衬衫,衬衫|西装,西装</div></div>
    )
      

  8.   

    <?
     $val["color"]=<<<HTML
    <b>颜色: </b><div class="xmkk"><a style="cursor: pointer;  position:absolute; right:0;top:0;" onclick="s2('x3')">[ 显示全部 ]</a>
    HTML;
    ?>