具体要求?
html的来源?
js的输出方式?通常转换后,html代码变成了串。只需注意到以下两点
1、如转换后的串用“""”括起,则原html中的“"”要替换成“\"”
2、js的续行符是  串中的换行符(\n 或 \r\n)要替换成\\n

解决方案 »

  1.   

    要做的是一个代理系统,生成广告连,别人把这个生成的广告连放到自己的页面中我是想这样做
    ob_start();
    $agentid=$_GET['agentid'];
    $tpl->display("test.htm");
    $str = ob_get_contents();然后把$str防到一个html 2 js 的函数里 进行自动转化
    然后把转换后的JS代码输出,不知道 $str = ob_get_contents(); 的方法行不行还有一个问题就是用ADODB类没有用 $db->close()会不会很耗系统资源(如果用户访问量比较多的时候)
      

  2.   

    1、可以
    $str = ob_get_contents();
    $str = str_replace('"','\\"',$str);
    $str = eregi_replace("\r?\n","\\n",$str); //如果你确认不会有\r那么用str_replace要快些
    echo <<< JS
    <script>
    document.write("$str");
    </script>
    JS;
    2、有没有用 $db->close()并无直接的关系,php会自行关闭的
    但是显式的执行$db->close()使得程序比较规范,并在优化程序时可不必考虑他的影响了。
    注意:$db->close()不是放在程序的结尾处,而是放在最后一次使用查询结果之后
      

  3.   

    ob_start();
    require_once("lib/main.php");
    $tpl->display("test.htm");
    $str = ob_get_contents();
    $str = str_replace('"','\\"',$str);
    $str = eregi_replace("\r?\n","\\n",$str); 
    echo <<< JS
    <script>
    document.write("$str");
    </script>
    JS;试了一下 好象是有html输出,用调试器查看
    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td>1</td>
        <td>1</td>
      </tr>
      <tr>
        <td>1</td>
        <td>1</td>
      </tr>
      <tr>
        <td>1</td>
        <td>1</td>
      </tr>
      <tr>
        <td>1</td>
        <td>1</td>
      </tr>
    </table><script>
    document.write(\n<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n</table>\n
    );
    </script说明$tpl->display("test.htm")  是输出的
    怎么让他不输出 我记得好象有一个函数的
      

  4.   


    改了一下
    ob_start();
    require_once("lib/main.php");
    $tpl->display("test.htm");
    $str = ob_get_contents();
    $str = str_replace('"','\\"',$str);
    $str = eregi_replace("\r?\n","\\n",$str); 
    ob_end_clean();
    echo <<< JS
    <script>
    document.write("$str");
    </script>
    JS;HTML代码不输出了 但是还是有错误
    <script>
    document.write("\n<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n</table>\n
    ");
    </script这是在WINODWS的代码调试器里面看的 不知道为什么 最后是</script
      

  5.   

    那你不加ob_end_clean();这个应该没有问题吧,给你顶一下
      

  6.   

    这样才市对的
    <script>
    document.write("\n<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n  <tr>\n    <td>1</td>\n    <td>1</td>\n  </tr>\n</table>\n");
    </script>
    不清楚你为什么回得到那样的结果。
      

  7.   

    ob_end_clean();肯定是要的,我以为你是有意不写的,这样便于调试echo <<< JS
    <script>
    document.write("$str");
    </script>
     // <==这里加个空行看看结果是否正确
    JS;
      

  8.   

    还是不行
    echo <<< JS
    document.write("123");
     // <==这里加个空行看看结果是否正确
    JS;
    是能输出 123  的
    但是换成$str还是不行
    我估计是转换还有问题