Воскресенье, 2024-05-19, 1:12 PM
Статьи - PHP
Приветствую Вас Гость | RSS
Главная страница Каталог статей Регистрация Вход
Меню сайта

Категории каталога
PHP [158]
Статьи по PHP

Наш опрос
Выбираем ОС
Всего ответов: 192

Начало » Статьи » PHP » PHP

Веб-программирование для всех!
Здравствуйте! Итак, надеюсь, вы разобрались с работой с сессиями. Сегодня мы продолжим более подробное изучение PHP. -------------------------------------------------------------------------------- В этом выпуске рассылки -------------------------------------------------------------------------------- » Простой графический счетчик на PHP » Отправка писем в правильной кодировке при помощи PHP -------------------------------------------------------------------------------- Простой графический счетчик на PHP -------------------------------------------------------------------------------- Должно быть, Вы видели на многих сайтах рекламные баннеры. На некоторых сайтах они относятся к тематике сайта, на некоторых – нет, но статья не об этом. Как разместит эти баннеры на своей странице? Довольно часто web-мастера поступают следующим образом. Заходят на сайт какой-нибудь баннерной сети (допустим, http://www.best-banner-network.net.ua), регистрируют в ней свой сайт и получают HTML-код для размещения на своем сайте случайного баннера из каталога баннерной сети. Нечто вроде такого: <IFRAME SRC=”http://www.best-banner-network. net.ua/cgi-bin/banner-show.cgi? id=12345&banner=67890” WIDTH=”468” HEIGHT=”60” SCROLLING=”no”><A HREF=” http://www.best-banner-network. net.ua/cgi-bin/banner-show.cgi? id=12345&banner=67890”></A></IFRAME> Конечно, web-мастеру довольно выгодно зарегистрироваться в баннерной сети – ведь и его баннер демонстрируется на сайтах, зарегистрированных в той же баннерной сети. Но этот вариант подходит далеко не в каждом случае. Сайты, сделанные только при помощи HTML, JavaScript и CSS, можно отлаживать и в режиме автономной работы. Но сайты, использующие при работе серверные скрипты (PHP, ASP) и/или базы данных, надо отлаживать на LocalHost’e НЕ в режиме автономной работы. Все бы хорошо, но при размещении приведенного выше HTML-кода при загрузке страницы браузер пытается подключиться к Интернету. Поэтому в таких случаях приходится, чтобы и сайт работал на LocalHost’e, и изображение баннера выводилось, вставлять код баннера во все страницы уже после окончания работы над сайтом. А это довольно неудобно. Давайте же напишем собственный скрипт показа баннеров, чтобы, во-первых, показывать лишь те баннеры, которые Вам хотелось видеть у себя на страницах, во-вторых, не было ситуации, когда незагрузившийся баннер портит дизайн страницы, и в-третьих, не возникало проблем, упомянутых выше. Теперь определимся, что нужно для этого использовать. Писать будем на PHP. Вся нужная нам информация будет храниться в текстовом файле, поэтому наличия MySQL не потребуется. В этом текстовом файле должна храниться полная информация о всех баннерах (высота, ширина, адрес изображения, т.е. его URL), демонстрируемых на сайте. Кроме того, в этом файле будет храниться информация о том, сколько раз баннер демонстрировался посетителям, а также сколько раз на него нажимали (!). Для начала давайте создадим тестовый файл. Назовем его banner.txt . В нем будут храниться данные такого вида: URL1|IMG1|NAME1|WH1|SHOW1|CL1 URL2|IMG2|NAME2|WH2|SHOW2|CL2 Эти строки означают следующее: URL - ссылка, на которую будет переходить пользователь по нажатию на изображение баннера; IMG - адрес файла изображения, которое будет выводиться на экран; NAME – альтернативный текст изображения (в тэге <IMG> параметр ALT); WH - строка вида WIDTH=XX HEIGHT=XX (ширина и высота изображения). Если все изображения одного размера, соответственно можно упростить скрипт, но пока что лучше оставим так, ведь набрать лишнюю пару слов легче, чем потом переделывать весь скрипт. SHOW - показы баннера. Поскольку баннеры еще нигде не демонстрировались, то изначально пишем - 0; CL – количество нажатий на данный баннер, пишем тоже - 0; Теперь создадим два PHP-файла. Один из них (show.php) будет отвечать за показ баннеров, другой (click.php) будет подсчитывать количество кликов по баннеру. Пишем show.php. Откройте любимый текстовый редактор и наберите следующий текст. Сначала загружаем файл, в котором хранится описание баннеров: <?PHP $array_bann = file ('banner.txt'); Потом выбираем случайную запись из считанного файла, разделяем ее на элементы по признаку "|" с помощью функции explode() и заносим их в массив $data_bann. srand((double)microtime()*1000000); $pos = rand(0,sizeof($array_bann)-1); $data_bann=explode ("|", $array_bann[$pos]); Далее выводим на экран сам баннер на основе данных из массива $data_bann. echo "<a href=click.php?banner=$pos target=_blank><IMG SRC='$data_bann[1]' ALT='$data_bann[2]' $data_bann[3] border=0></a>"; Увеличиваем счетчик показов баннера на единицу. $data_bann[4]++; Склеиваем измененную запись и записываем весь массив в файл. $array_bann[$pos]=join('|',$data_bann); $fp= fopen ('database.txt',"w"); flock($fp,3); fwrite ($fp, join('',$array_bann)); fclose ($fp); ?> Теперь пишем файл click.php Открываем файл с исходными данными. <?PHP $array_bann = file ('banner.txt'); В переменной $banner у нас находится уже переданный из html-файла номер баннера, по которому кликнули. Берем запись, соответствующую этому номеру, опять разделяем ее по признаку "|" при помощи той же функции explode() и заносим это в массив $data_bann. $data_bann=explode ("|", $array_bann[$banner]); Увеличиваем счетчик показов на единицу, склеиваем запись обратно в $array_bann. $data_bann[5]=$data_bann[5]+1; $array_bann[$banner]=join('|',$data_bann)."n"; И записываем измененный массив в файл database.txt. $fp= fopen ('database.txt',"w"); flock($fp,3); fwrite ($fp, join('',$array_bann)); fclose ($fp); Пересылаем пользователя по адресу, хранящемуся в переменной $data_bann[0]. header("Location: http://$data_bann[0]"); ?> В заключение хочу добавить, что при помощи полученных данных можно, к примеру, составить статистику, сколько раз каждый из баннеров был просмотрен, и сколько раз по нему нажимали. Таким образом можно определить наиболее привлекательные для пользователей баннеры. А что делать с этой информацией – это уже Ваше дело. Конечно, этот скрипт очень прост, но он выполняет все требования, которые были выдвинуты к нему в начале статьи. А если Вам нужно что-то более солидное, то нужно применять базу данных MySQL. -------------------------------------------------------------------------------- Отправка писем в правильной кодировке при помощи PHP -------------------------------------------------------------------------------- У меня часто спрашивают, как отсылать письма с помощью PHP в правильной кодировке: после отправки письма с русскими буквами, на почту людям приходит абракадабра. А все дело в том, что для почты у нас принято использовать кодировку KOI8-R, а для веба - Win-1251 (ANSI) - так, и выходит - мы шлем с сайтов в win-1251, а почтовые программы открывают его как KOI8-R... Выходов из ситуации хватает. Начиная, можно на самой веб странице можно использовать кодировку KOI8-R. Но я бы не советовал этого не делать - у некоторых посетителей могут возникнуть с кодировкой на самой странице. Так что оставим этот метод для ламеров, а применим более изящный, на PHP. Итак, что же можно сделать? Первое что приходит в голову - а не проще ли перекодировать само сообщение? И в правду, нет нечего проще. Тем более в PHP предусмотрена стандартная процедура - convert_cyr_string(string str, string from, string to); как Вы уже, наверное, догадались, функция перекодирует текст, содержащийся в переменной $str из кодировки $from в кодировку $to. Указание кодировки происходит посредством символов латинского алфавита, вот доступные параметры и соответствующие им кодировки: k KOI8-R w Win-1251 i ISO8859-5 a X-CP866 d X-CP866 m X-Mac-Cyrillic Как видно из таблицы, в нашем случае, перед отправкой сообщения, содержащегося в переменной $msg, его нужно перекодировать из w в k (из Win-1251 в KOI8-R), это выглядит так: $msg = convert_cyr_string ($msg,w,k); вот и все, теперь можно спокойно отсылать наше письмо.
Категория: PHP | Добавил: webmaster (2006-12-16)
Просмотров: 477 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Сервисы

Поиск по каталогу

Друзья сайта

| Ссылки 1 | Ссылки 2 | Ссылки 3 |
www.webmaster.clan.su Каталог+поисковая система be number one Bakililar.az Top Sites Сервис авто регистрации в
каталогах, статьи про раскрутку сайтов, web дизайн, flash, 
photoshop, хостинг, рассылки; форум, баннерная сеть, каталог 
сайтов, услуги продвижения и рекламы сайтов Скрипт для определения тиц (Яндекс CY: индекс цитирования). Определение pr (Google Pagerank). Проверить тиц pr сайта.
Copyright WebMaster.Clan © 2006 Бесплатный хостинг uCoz