You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP输出含引号与撇号的字符串及复杂echo代码修正求助

嘿,搞定PHP引号嵌套的两个问题!

问题1:如何输出同时包含双引号和单引号的字符串字面量?

这里有几种实用的方法,根据你的场景选就行:

  • 转义字符法:用反斜杠\转义和外层包裹相同类型的引号。比如用单引号包裹字符串时,转义内部的单引号;双引号包裹时转义内部的双引号:
    // 单引号包裹,转义内部单引号
    echo 'My friend said "Let\'s go!" this morning.';
    // 双引号包裹,转义内部双引号
    echo "She yelled: \"Don't touch that!\"";
    
  • 混合引号包裹法:如果字符串里某一种引号更多,就用另一种引号包裹整个字符串,内部的同类型引号不用转义:
    // 字符串里单引号多,用双引号包裹
    echo "I'm learning PHP, it's \"awesome\"!";
    // 字符串里双引号多,用单引号包裹
    echo 'The sign read "No Entry" — but he didn\'t care.';
    
  • Heredoc/Nowdoc语法:适合长字符串或者复杂内容,完全不用转义引号,可读性拉满:
    // Heredoc:会解析变量,适合带动态内容的字符串
    $name = "Alice";
    $longStr = <<<CONTENT
    $name said: "I can't believe how easy this is!"
    She smiled and waved.
    CONTENT;
    echo $longStr;
    
    // Nowdoc:加单引号,完全按字面量输出,不解析变量
    $staticStr = <<<'CONTENT'
    He said "I'm not sure" and walked away.
    CONTENT;
    echo $staticStr;
    

问题2:修正混乱的echo代码

先看你这段代码的核心问题:引号嵌套冲突,onclick属性里的单引号和外层的引号撞在一起了,导致语法错误。我给你三种修正后的写法,选你看着舒服的来:

写法1:单引号包裹整个HTML,转义内部单引号

echo '<td style="text-align: center"><a onclick="window.open(\'/edit.php?id=' . $row['id'] . '\', \'_self\')"><img height="30" width="30" src="/wp-content/themes/sparkling/edit.png"/></a></td>';

解释:整个echo用单引号包裹,所以HTML属性里的双引号直接用;onclick里的单引号要加\转义,避免和外层的单引号冲突。

写法2:双引号包裹整个HTML,解析变量更方便

echo "<td style='text-align: center'><a onclick=\"window.open('/edit.php?id={$row['id']}', '_self')\"><img height='30' width='30' src='/wp-content/themes/sparkling/edit.png'/></a></td>";

解释:用双引号包裹整个字符串,变量$row['id']可以用{$row['id']}直接解析;HTML属性用单引号,onclick里的双引号加\转义,内部单引号正常使用。

写法3:Heredoc语法,最清晰易读

echo <<<HTML
<td style="text-align: center">
    <a onclick="window.open('/edit.php?id={$row['id']}', '_self')">
        <img height="30" width="30" src="/wp-content/themes/sparkling/edit.png"/>
    </a>
</td>
HTML;

解释:这种写法完全不用纠结引号转义,代码结构一目了然,后期维护也方便,强烈推荐给复杂的HTML输出场景!

内容的提问来源于stack exchange,提问作者Martin Švejda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:13:00