Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 в строку, выглядящую как месяц/число/год. На- 
верняка затем вы захотите разбить эту строку на составляющие, чтобы работать с 
ними по отдельности. Для этого воспользуйтесь функцией explode(): 
$jd = GregorianToJD(10,11,1970); 
echo "$jd
\n"; $gregorian = JDToGregorian($jd); echo "$gregorian
\n"; $list=explode($gregorian,"/"); mixed JDDayOfWeek(int $julianday, int $mode) Последняя функция этой серии — JDDayOfWeek() — тоже совершенно незаменима: она возвращает день недели, на который приходится указанная JDC-дата. Фактиче- ски, это единственное, чего нам не хватало бы для формирования календарика. Па- раметр $mode задает, в каком виде должен быть возвращен результат: r 0 — номер дня недели (0 — воскресенье, 1 — понедельник, и т. д.); r 1 — английское название дня недели; r 2 — сокращение английского названия дня недели. В PHP существует еще множество функций для работы с другими календарями — в том числе с Республиканским, Юлианским и т. д. Объем книги не позволяет привести здесь их описания. Глава 20 Посылка писем через PHP Одно из самых мощных средств PHP — возможность автоматической посылки писем по электронной почте, минуя использование внешних программ и утилит. Функция отсылки встроена в PHP. С нее мы и начнем. Функция отправки письма bool mail(string $to, string $subject, string $msg [,string $headers]) Функция mail() посылает сообщение с телом $msg (это может быть "многострочная строка", т. е. переменная, содержащая несколько строк, разделенных символом пере- вода строки) по адресу $to. Можно задать сразу нескольких получателей, разделив их адреса пробелами в параметре $to. Пример: mail("[email protected] [email protected], "My Subject", "Line 1\nLine 2\nLine 3" ); В случае, если указан четвертый параметр, переданная в нем строка вставляется ме- жду концом стандартных почтовых заголовков (таких как To, Content-type и т. д.) и началом текста письма. Обычно этот параметр используется для задания дополни- тельных заголовков письма. Пример: mail("[email protected] [email protected]", "the subject", "Line 1\nLine 2\nLine 3", "From: webmaster@$SERVER_NAME\n". "Reply-To: webmaster@$SERVER_NAME\n". "X-Mailer: PHP/" . phpversion() ); Необходимо добавить, что этот пример довольно-таки неказист. Гораздо лучше было бы включить указанные заголовки прямо в тело письма $msg (в начало тела), отделив их от самого письма пустой строкой (прямо как в стандарте HTTP). То же самое при- менимо и к параметру $subject: лучше задавать в нем всегда пустую строку и ука- Часть IV. Стандартные функции PHP 286 зывать заголовок Subject в самом письме. Всегда старайтесь поступать таким обра- зом. Далее будет ясно, зачем. Проблема с кодировками Думаю, не надо напоминать, что русских кодировок существует великое множество. Поэтому от того, насколько умело вы перекодируете письмо перед его отсылкой, за- висит, прочтет ли его получатель или, махнув рукой, отправит в корзину, даже не попытавшись установить в своем почтовом клиенте нужную кодировку. Эта глава как раз и призвана раз и навсегда решить проблему кодировок. Если вы воспользуетесь советами, изложенными в ней, ваши письма всегда будут читаемыми. Посылка в указанной кодировке Сначала давайте договоримся об одном соглашении: функции mail() передавать только адрес получателя и текст письма. Ни заголовков, ни темы — и то и другое должно присутствовать в самом письме. Например: $message= "From: Лист рассылки To: Иванов Иван Иванович Subject: Пробная рассылка Content-type: text/plain; charset=windows-1825 Уважаемый товарищ! Это письмо послано почтовым роботом. Всего хорошего!"; Mail("[email protected]","",$message); Обратите внимание на заголовок Content-type (в некоторых системах он обяза- тельно должен стоять последним — проверьте это экспериментально). Он задает, что, во-первых, письмо доставляется как простой текст (text/plain), а во-вторых, что его кодировка — Windows. Теперь письмо всегда можно будет прочитать, даже если почтовая программа клиента по умолчанию настроена на китайскую кодировку. И почему некоторые программы так не делают, а посылают письма без указа- ния их кодировки? Неужели им жалко лишнего десятка байтов для названия кодировки? Обратите внимание на то, что тело письма отделяется от заголовков пустой строкой, с тем, чтобы почтовая программа могла понять, где кончаются заголовки и начинается тело. Глава 20. Посылка писем через PHP 287 Динамическая смена кодировки Приведенное в предыдущем примере письмо можно будет прочитать в 90% сущест- вующих почтовых программ. Для "удовлетворения" остальных желательно посылать письма не
 
<<-[Весь Текст]
Страница: из 287
 <<-