我有这个查询字符串,我想按原样使用这些值,而不用转义/ 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');
});
答案 0 :(得分:0)
您可以尝试以下方法:
$element = array(
'#type' => 'markup',
'#markup' => urldecode($download_ics),
);
答案 1 :(得分:0)
尝试一下
$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;