Мне нужно отправить очень длинную ссылку, используя PHP. Известная проблема: почтовые клиенты ломают ссылку. Я пробовал это с обычной / текстовой или HTML-почтой, я помещаю URL в скобках (), как предложено в других темах — ничего не помогает. Я знаю о сокращениях URL и возможности решения этой проблемы с базами данных, НО !!! Можно отправлять ссылки с сотнями символов; например Ebay делает, Amazon делает … ссылка для подтверждения регистрации из stackoverflow содержит более 250 символов, так ?! Глядя на исходный код этих писем, все строки по умолчанию разделяются на 76 символов. Я пытался сделать то же самое с PHP Wordwrap. Результат; исходный код выглядит идентично, но мои ссылки не работают, их ссылки нет! Есть идеи? Я был бы очень рад за помощь, потому что это беспокоит меня !!!! 🙂
Я мог бы решить проблему самостоятельно. Во-первых, специальные символы ссылки должны быть закодированы (например, Thunderbird теперь будет принимать закодированную ссылку точно так же). Во-вторых, установите разрыв строки по умолчанию после 76 символов. Во избежание того, что ссылка не будет разорвана или больше не будет распознаваться клиентской программой как ссылка, каждая строка должна заканчиваться на «=», чтобы ее можно было повторно объединить …
<?php
$url = 'http://domainxy.com/index.php';
$ending = '?var1=gsgsdgsfgdhfjfgj&var2=sdferewerwrr&var3=jghjghjkloozzzz&var4=ghajsldahskhdhriehfsjndfnjnjjfnjsnjdfhksö&var5=öäüöü';
$ending = utf8_encode($ending);
$ending = rawurlencode($ending);
$link = wordwrap( $url . $ending, 75, "=<br />\n", true );
echo $link;
?>
/*
Encodes and devides the link like this:
http://domainxy.com/index.php%3Fvar1%3Dgsgsdgsfgdhfjfgj%26var2%3Dsdferewerw=
rr%26var3%3Djghjghjkloozzzz%26var4%3Dghajsldahskhdhriehfsjndfnjnjjfnjsnjdfh=
ks%C3%B6%26var5%3D%C3%B6%C3%A4%C3%BC%C3%B6%C3%BC
*/
Других решений пока нет …