Получить строку запроса URL со значениями / r / n - PullRequest
0 голосов
/ 09 июля 2019

У меня есть эта строка запроса, и я хочу, чтобы значения были такими, какие они есть, без экранирования символов / 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;

и затем получить значение data-href в javascript следующим образом:

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

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

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Попробуйте это

$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;
0 голосов
/ 09 июля 2019

Вы можете попробовать это:

$element = array(
  '#type' => 'markup',
  '#markup' => urldecode($download_ics),
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...