【问题标题】:escaping "$_" in php string在 php 字符串中转义“$_”
【发布时间】:2017-12-06 00:49:39
【问题描述】:

我正在尝试将 VCARD 信息作为长文本字符串加载到数据库字段中。在某些情况下,vcard 信息带有一个以“$_”结尾的参数(见倒数第二行)。我无法让 php 将其作为字符串带入变量中以对其进行转义。

`$vcard = mysqli_real_escape_string($connection, "BEGIN:VCARD
    VERSION:3.0
    FN:Your Name
   N:Name;Your;;;
   EMAIL;TYPE=INTERNET;TYPE=WORK:your@email.here
   TEL;TYPE=CELL:
   ADR;TYPE=HOME:;;I am here;;;;
   ORG:Your organization
   TITLE:Owner and Co-Creator
   item1.URL:https\://yoursite.com
   item1.X-ABLabel:_$!<HomePage>!$_
          END:VCARD");`

我收到“注意:未定义的变量:C:中的_”错误。我可以手动逃脱第二个 $ 但这违背了目的。我尝试了 metaquote() ,但这也不起作用。有关如何规避此错误的任何帮助?

【问题讨论】:

  • 你在用这个字符串做什么?它是如何包装的?
  • 我试图将 vcard 信息存储在数据库中,以便即时生成 vcard 文件

标签: php escaping special-characters vcf-vcard


【解决方案1】:

用单引号替换你的双引号。双引号内的变量会被插值,而单引号内的变量则不会。

$vcard = mysqli_real_escape_string($connection, 'BEGIN:VCARD
    VERSION:3.0
    FN:Your Name
   N:Name;Your;;;
   EMAIL;TYPE=INTERNET;TYPE=WORK:your@email.here
   TEL;TYPE=CELL:
   ADR;TYPE=HOME:;;I am here;;;;
   ORG:Your organization
   TITLE:Owner and Co-Creator
   item1.URL:https\://yoursite.com
   item1.X-ABLabel:_$!<HomePage>!$_
          END:VCARD');

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
相关资源
最近更新 更多