Я делаю почтовую программу, которая будет использоваться для рассылки информационных бюллетеней клиентам, в информационных бюллетенях будут изображения и ссылки. Когда я тестировал его на localhost, все работало нормально, а ссылки работали. Однако, когда я загрузил его на свой сайт, ссылки и пути изображения больше не будут работать.
По какой-то причине он добавляет% 22 (который я обнаружил, это двойные кавычки) к ссылкам и путям, поэтому ссылка, которую я отправил, выглядит следующим образом:
/%22http//www.mywebsite.com/%22
И путь изображения выглядит так:
%22http//www.mywebsite.com/content/someimage.jpg/%22
Я использую TinyMCE для редактирования информационного бюллетеня, и я попробовал relative_urls : false
и convert_urls : false
но это ничего не делает. Я не думаю, что это проблема TinyMCE, но я подумал, что я упоминал об этом в любом случае.
Я не знаю, что вызывает это, поэтому, если кто-нибудь знает, что происходит, это было бы здорово!
Обновление: я проверил свой код и посмотрел на html текста, отправляемого по почте, и нет никаких двойных кавычек по ссылке в любое время, поэтому я предполагаю, что это проблема с сервером.
Это проблема с magic_quotes
Проверьте ваш phpinfo (), чтобы увидеть, отключено ли оно. Если вы можете отключить его, вам нужно отключить его в php.ini.
Вы можете проверить, включено ли оно или отключено с помощью следующего кода:
<?php echo "Magic quotes is "; if (get_magic_quotes_gpc()) { echo "enabled."; } else { echo "disabled"; } ?>
Еще одним stripslashes()
может быть использование stripslashes()
для удаления косой черты. Это, скорее всего, решит проблему.
Прочтите документы о stripslashes()
ЗДЕСЬ
Быстрый пример:
<?php $str = "Is your name O\'reilly?"; // Outputs: Is your name O'reilly? echo stripslashes($str); ?>
Изменить: еще одна вещь, которую вы можете попробовать, – использовать html_entity_encode()
.
Пример:
<?php $orig = "I'll \"walk\" the <b>dog</b> now"; $a = htmlentities($orig); $b = html_entity_decode($a); echo $a; // I'll "walk" the <b>dog</b> now echo $b; // I'll "walk" the <b>dog</b> now ?>
информация ЗДЕСЬ
Другой ответ. для html_entity_encode()
в URL- html_entity_encode()
https://stackoverflow.com/a/10001006/1379394
Если у вас нет доступа к вашему файлу php.ini, самый простой способ – это добавить его в ваш файл .htaccess:
php_flag magic_quotes_gpc Выкл.