【问题标题】:Get url query string with the /r/n values in it获取其中包含 /r/n 值的 url 查询字符串
【发布时间】:2019-07-09 06:54:58
【问题描述】:

我有这个查询字符串,我想要不转义 /r/n 字符的值,但它正在转义这些字符。

ics_link=data:text/calendar;charset=utf8,BEGIN:VCALENDAR%0D%0AVERSION:2.0%0D%0ABEGIN:VEVENT%0D%0AUID:4df97e535f751923b70c0bb2c8d7f4d2%0D%0ASUMMARY:Webinar - Crystal Eye Essentials Training Module 1: Introduction to New Partners%0D%0ADTSTART;TZID=UTC:20190710T150000%0D%0ADTEND;TZID=UTC:20190710T163000%0D%0ADESCRIPTION:Webinar - Crystal Eye Essentials Training Module 1: Introduction to New Partners%0D%0ALOCATION:Online%0D%0AEND:VEVENT%0D%0AEND:VCALENDAR

但是它将它们像这样保存在文件中而没有任何换行符,并且在日历中导入 ics 文件时导致错误。

BEGIN:VCALENDARVERSION:2.0BEGIN:VEVENTUID:4df97e535f751923b70c0bb2c8d7f4d2SUMMARY:Webinar - Crystal Eye Essentials Training Module 1: Introduction to New PartnersDTSTART;TZID=UTC:20190710T150000DTEND;TZID=UTC:20190710T163000DESCRIPTION:Webinar - Crystal Eye Essentials Training Module 1: Introduction to New PartnersLOCATION:OnlineEND:VEVENTEND:VCALENDAR

这是我在 PHP (Drupal) 中使用的代码:

$ics_download = $_GET['ics_link'];

$download_ics = "<a id='download_ics_rp' data-href='$ics_download' class='btn btn-default btn-lg' value='Download ICS' download>Download ICS</a>";
$element = array(
  '#markup' => $download_ics,
);
return $element;

然后在javascript中获取data-href的值如下:

 jQuery('#download_ics_rp').click(function(e) {
      var ics_data = jQuery(this).attr('data-href');

      var win = window.open(ics_data, '_blank');
 });

【问题讨论】:

  • json_encode 他们
  • @mplungjan 你的意思是 json_encode 整个 ics_link 或 ics_link 的单个参数?
  • 链接-可以解码

标签: javascript php query-string icalendar


【解决方案1】:

你可以试试这个:

$element = array(
  '#type' => 'markup',
  '#markup' => urldecode($download_ics),
);

【讨论】:

  • 问题是当我从我的 url 获取这个值时,我没有得到这些字符。我得到的字符串没有特殊字符,使用时会在一行中显示所有文本而没有换行符,因此在 ICS 文件导入期间导致错误。
【解决方案2】:

试试这个

$ics_download = $_GET['ics_link'];
$ics_download =  str_replace(PHP_EOL, '%0D%0A', $ics_download);
$download_ics = "<a id='download_ics_rp' data-href='$ics_download' class='btn btn-default btn-lg' value='Download ICS' download>Download ICS</a>";
$element = array(
  '#markup' => $download_ics,
);
return $element;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 2011-03-30
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多