【问题标题】:How do I escape quotes in URL?如何在 URL 中转义引号?
【发布时间】:2016-09-25 22:35:42
【问题描述】:

我想将 URL 全部插入单引号。我试过同时使用单引号和双引号,但它不起作用。我检查了这个问题 - Escaping single quote in URL link,但没有帮助:

<?php
    echo '\'' base_url().'\'index.php?admin/product/delete/1\'';
    echo '\''; echo base_url().index.php?admin/product/delete/1\'';
    echo '\'. base_url().index.php?admin/product/delete/1\'';
    echo "\'"; echo base_url().'index.php?admin/product/delete/1\'";
?>

我正在努力实现这一目标: 'http://localhost/my_site/index.php?admin/product/delete/1'

单引号中的 URL。

【问题讨论】:

  • echo sprintf("'%s%s'", base_url(), 'index.php?admin/product/delete/1');
  • base_url() 函数是什么?内置的?你自己? an answer to How do I get the base URL with PHP? 中有一个同名的函数。
  • 好的,OP已经离开了……
  • @PeterMortensen 关于您最近的编辑,没有人像这样格式化 PHP 代码。这不是 XML。开始标记后没有额外的缩进,结束标记通常被省略,除非后面有一些非 PHP 代码。参见例如php-fig.org/psr/psr-2

标签: php


【解决方案1】:

如果你真的只想使用单引号,试试这个:

echo '\'' . base_url() . 'index.php?admin/product/delete/1\'';

【讨论】:

    【解决方案2】:

    很简单:

    echo "'" . base_url() . "index.php?admin/product/delete/1'";
    

    【讨论】:

      【解决方案3】:

      您可以使用双引号将变量传递到 PHP 中的字符串中。除了提高可读性之外,这还省去了转义单引号的麻烦。

      例如:

      <?php
          $foo = 'bar';
      
          echo 'single-quoted string: $foo <br />';
          echo "double-quoted string: $foo <br />"; // "$foo" works, "{$foo}" is better
          echo "double-quoted string: \$foo <br />"; // Backslash escapes
      ?>
      

      印刷品(强调我的):

      单引号字符串:$foo 双引号字符串:bar 双引号字符串:$foo

      所以更新你的例子:

      <?php
          /* ... */
          $baseurl = base_url();
      
          echo "'{$baseurl}index.php?admin/product/delete/1'";
      ?>
      

      或者我们如何将它全部放入一个变量中并获得一点可读性:

      <?php
          /* ... */
          $baseurl = base_url();
          $fullurl = $baseurl . 'index.php?admin/product/delete/1';
      
          echo "'{$fullurl}'";
      ?>
      

      【讨论】:

      • 如果$baseurl 后面没有字母数字(“i”),则不需要{} 对(例如echo "'$baseurl(index.php?admin/product/delete/1";(后面的左括号)输出@ 987654330@)。使用 PHP 7.1.33 测试(大约 2019-10-23)。
      • ${baseurl}(所谓的simple syntax)和{$baseurl}(所谓的complex syntax)都有效。
      【解决方案4】:
      echo "'" . base_url() . "index.php?admin/product/delete/1'";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 1970-01-01
        • 2019-12-28
        • 2011-04-19
        相关资源
        最近更新 更多