在 php 字符串中转义“$_”

escaping "$_" in php string

我正在尝试将 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");`

我收到 "Notice: Undefined variable: _ in C:" 错误。我可以手动转义第二个 $ 但这违背了目的。我试过 metaquote() 但这也不起作用。关于如何避免此错误的任何帮助?

用单引号替换双引号。双引号内的变量是内插的,而单引号内的则不是。

$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');