V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chenyg32
V2EX  ›  程序员

HTML单引号 双引号用完了怎么办

  •  
  •   chenyg32 · 2013-12-05 22:06:29 +08:00 · 7862 次点击
    这是一个创建于 4031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如在PHP里面
    这样一个语句 echo"<button onclick = 'f(xxx)'></button>"
    里面的xxx我想传的是一个字符串,此时单引号和双引号都不能用了怎么办,python里面有三引号''',这里好像没有,怎么破?

    回复请注意,
    1.不要告诉我重新定义一个变量,把字符串的值给这个变量。
    2.不要问我为什么要这样写,我只想知道,单双引号都用完了应该怎么办。

    谢谢~
    24 条回复    1970-01-01 08:00:00 +08:00
    lk09364
        1
    lk09364  
       2013-12-05 22:22:02 +08:00   ❤️ 1
    echo "<button onclick = 'f(" . xxx . ")'></button>";

    沒写过python,对「三引号」表示惊奇……
    423241836
        2
    423241836  
       2013-12-05 22:28:51 +08:00 via Android   ❤️ 2
    大多数语言都可以\转义吧?\'\"
    SvenWong
        3
    SvenWong  
       2013-12-05 22:32:30 +08:00   ❤️ 1
    echo "<button onclick = \"f('" . xxx . "')\"></button>"

    onclick的可以用转义,我记得也可以不写,还可以试试下面这种
    echo "<button onclick = f('" . xxx . "')></button>"
    rannnn
        4
    rannnn  
       2013-12-05 22:33:59 +08:00   ❤️ 6
    有什么事情阻止你转义么
    pirex
        5
    pirex  
       2013-12-05 22:37:44 +08:00   ❤️ 3
    (" . xxx . ")莫名萌
    lizheming
        6
    lizheming  
       2013-12-05 22:45:49 +08:00   ❤️ 1
    ls萌点好高...lss我也想说一样的话,转义什么的有这么难么...
    funagi
        7
    funagi  
       2013-12-05 22:50:30 +08:00
    ETiV
        8
    ETiV  
       2013-12-05 22:52:36 +08:00 via iPhone
    lz应该只是不知道还有这么个写法吧。
    shiny
        9
    shiny  
       2013-12-05 22:54:27 +08:00
    @lizheming 也许是 lz 不知道还有转义这个东西呢……

    其实 PHP 还有个 EOT http://www.php.net/manual/zh/language.types.string.php
    Seita
        10
    Seita  
       2013-12-05 23:02:05 +08:00
    \
    lizheming
        11
    lizheming  
       2013-12-05 23:11:03 +08:00   ❤️ 1
    @shiny 为了这么短个东西召唤EOT大神出来...这个..不太好吧...
    touch
        12
    touch  
       2013-12-06 08:44:05 +08:00   ❤️ 1
    这个不是直接转义就可以了么 ,为什么还在纠结'的个数
    codegear
        13
    codegear  
       2013-12-06 09:13:45 +08:00   ❤️ 1
    其实lz是在号召大家试探v2ex能不能来点注入= =
    alexrezit
        14
    alexrezit  
       2013-12-06 09:25:18 +08:00   ❤️ 2
    很烦楼主这种连转义都不知道还很傲慢地说回复请注意不要告诉我 blah blah 不要问我 blah blah blah 的.
    hsu
        15
    hsu  
       2013-12-06 09:40:05 +08:00   ❤️ 1
    @alexrezit 很烦楼主这种连转义都不知道还很傲慢地说回复请注意不要告诉我 blah blah 不要问我 blah blah blah 的....人
    缺了一个宾语,帮你加上~
    zorceta
        16
    zorceta  
       2013-12-06 10:19:20 +08:00 via Android
    @hsu 汉语口语这样用也没错啊,定语从句嘛不是(我也不太清楚语法上的说法不过日常这样说的还挺多)
    bombless
        17
    bombless  
       2013-12-06 10:54:00 +08:00   ❤️ 1
    其实我觉得楼主需要的是字符实体……
    https://gist.github.com/bombless/7817852
    bombless
        18
    bombless  
       2013-12-06 10:56:47 +08:00   ❤️ 1
    拿我github主页给大家演示一下吧
    http://bombless.github.io/
    tonghuashuai
        19
    tonghuashuai  
       2013-12-06 11:20:41 +08:00 via iPhone   ❤️ 1
    转义
    ch_linghu
        20
    ch_linghu  
       2013-12-06 12:41:36 +08:00
    python的三引号(''' 或 """)用于多行文本。跟这个题目应该没什么关系
    spkinger
        21
    spkinger  
       2013-12-06 13:31:32 +08:00   ❤️ 1
    1.如果xxx就是字符串
    echo "<button onclick = 'f(\"xxx\")'></button>";
    2.如果是个字符串变量$a
    echo "<button onclick = 'f(\"$a\")'></button>";
    双引号里可以直接放变量和转义字符,就这些。。。
    LcaKen0day
        22
    LcaKen0day  
       2013-12-06 14:42:53 +08:00   ❤️ 1
    1、"\"转义
    2、同五楼
    3、单双引号都用完了应该怎么办?还是同五楼,如果你看懂了,就不存在这个疑问了。
    4、既然是请教的话,个人认为还是要注意一下语气。赞同14、15楼。
    bombless
        23
    bombless  
       2013-12-06 15:44:02 +08:00   ❤️ 2
    利用PHP本身的字符串字面量里的转义有时候不能完全解决问题。
    这一点你用Smarty完成一些复杂的显示逻辑的时候就会发现了。
    这个时候就要借助字符实体,能够以一种一致的方式很好的绕开这个问题。
    示例见我18楼(点进去之后查看网页源代码)
    yinxingren
        24
    yinxingren  
       2013-12-06 18:23:45 +08:00 via Android
    @bombless 学习了字符实体。感谢已送
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5345 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 07:04 · PVG 15:04 · LAX 23:04 · JFK 02:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.