-1
PHP - funkcja mail i podwójne entery
Jelcyn
20.05.2007, czytano 4,452 razy, pobrano kod HTML 3 razy, komentarzy 0.
Piszę różne skrypty w PHP. Jedną z częściej używanych funkcji jest funkcja mail, która wysyła maila. Często moje skrypty pobierają dane, przetwarzają i wysyłają emaila. Niestety, ale czasami w emailach są podwójne entery co niezbyt estetycznie wygląda. W tym artykule opiszę jak temu zaradzić.
Piszę różne skrypty w PHP. Jedną z częściej używanych funkcji jest funkcja mail, która wysyła maila. Często moje skrypty pobierają dane, przetwarzają i wysyłają emaila. Niestety, ale pod Outlook Express przykładowy mail wygląda tak:
Cześć
Mam dla Ciebie ważną informację:
a pod operą ten sam email wygląda tak:
Cześć
Mam dla Ciebie ważną informację
Pojawia się pytanie: dlaczego użytkownicy M2 (program pocztowy wbudowany w przeglądarkę internetową Opera) dostają maile z "podwójnymi" enterami? Odpowiedź jest prosta, ale długo szukałem rozwiązania. Problem tkwi w kodzie PHP, używam mniej więcej takiej konstrukcji:
$tresc="Czesc
Mam dla Ciebie wazna informacje";
mail($adresat,$temat,$tresc,$od);
Konstrukcja jest jak najbardziej OK. Zwróć uwagę, że zmienna $tresc zajmuje 2 linijki (jest to wygodny sposób zapisywania długich zmiennych z enterami). Problem właśnie tutaj tkwi. Otóż plik utworzyłem pod Windowsem a serwery na których mam strony są pod Linuxami. Pod windowsem kod ASCII entera to #13,#10 (CR LF) a pod linuxem to samo #10 (LF). No i zmienna tresc zawiera w miejsce enterów zamiast #10 aż 2 znaki: #13 #10 i Outlook Express to interpretuje jako 1 normalny enter a Opera traktuje taką sekwencję znaków jako dwa entery (!). Dlatego tworząc pliki PHP zadbaj, aby koniec wiersza zawierał sam znak #10. Program, w którym pisuje skrypty PHP (EditPad) ma opcję zapisywania plików tekstowych w formacie Linuxowym, wystarczy z menu Convert wybrać opcję To Linux i od teraz już zawsze ten plik będzie miał entery zapisywane w postaci kodu ASCII #10 (LF). Jak ponownie otworzysz ten plik w programie EditPad to on sam zorientuje się, że koniec wiersza to kod ASCII #10 i nie trzeba już będzie pamiętać o konwersji. No a maile czytane pod Operą w końcu nie będą miały podwójnych enterów
Artykuł pochodzi ze strony
www.jelcyn.com na której znajdziesz darmowe programy i ciekawe porady
Podobał Ci się ten artykuł? Oceń na TAK lub NIE.
-1
Artykuł został przedrukowany na następujących stronach:
http://ugi.pl
http://neonek.net
http://pogotowiepc.wroclaw.pl/
Liczba komentarzy: 0