Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Служба Рассылок Subscribe.Ru

_ Здравствуйте! Выпуск номер 36 _
рассылки сайта РНР для всех!

Вы получили этот выпуск рассылки, так как являетесь подписчиком рассылок сайта http://subscribe.ru Рассылка выходит еженедельно, и предлагает Вам авторские материалы по теме программирования на скриптовом языке гипертекстового препроцессора РНР. Кроме того - есть система вопросов и ответов, обмен ссылками и баннерами, раздел Ваши письма и многое другое.
Вам доступен форум рассылки:
Офицальный форум сайта
Все вопросы и ответы из форума
будут публиковаться в рассылке!
Архив рассылки
заказать книги по РНР
(только Беларусь)

Программа персонального заочного обучения программированию на HTML и PHP

Эта программа предназначена для персонального обучения программированию. Если Вы не знаете с чего начать, если Вы устали искать ответы на свои вопросы, если Вам нужен персональный преподаватель - все это есть у нас! Вы можете заказать пробный бесплатный урок, выслав пустое письмо с темой ЗАКАЗ по адресу: interphp@tut.by Обращаю Ваше внимание на то, что уроки предназначены самым начинающим программистам.

В этом выпуске впервые статья не моя, а другого человека. Но статья очень полезная, так как по этой теме поступает очень много вопросов. Теперь есть куда их отправлять!

Отправка файлов аттачем.

Сущность механизма отправки файлов в текстовом сообщении заключается в том, что письмо состоит из нескольких частей, границы которых обозначены уникальной сигнатурой. Именно она и позволяет Вам прикладывать к письму несколько файлов и не смешивать их содержимое в процессе передачи данных.
Я написал класс (точнее, если быть честным - это стандартное решение подобной проблемы. Вы можете найти такой же класс на http://php.spb.ru . Я не стал переписывать его без изменений, а немного переработал творчески.
Итак исходный код класса с комментариями:
<?
class multi_mail
{
var $from; // Отправитель
var $to; // Получатель
var $headers; // Заголовок сообщения
var $body; // Тело сообщения

function multi_mail() // Конструктор класса
// Проводим инициализацию переменных
{
$this -> from = "";
$this -> to = "";
$this -> body = "";
$this -> headers = Array();
$this -> subject = "";
}

// Присоединяем файл
function attach_file($file_name = "" , // Имя файла
$file_content, // Содержимое файла
$encoding_type = "application/octet-stream" //Тип кодировки данных.
)
{
$this -> headers[] = array( // Записываем заголовочную информацию.
"name" => $file_name,
"content" => $file_content,
"encode" => $encoding_type
);
}

function build_letter($header) // Строим Часть письма, будь то аттаченный файл или простой текст
{
$letter = $header["content"];
if ($header["encode"] != "text/plain"):
$letter = chunk_split(base64_encode($letter));
$encoding = "base64";
else:
$encoding = $header["encode"];
endif;
return "Content-Type: ".$header["encode"].
($header["name"]? ".; name = \"".$header["name"]."\"" : "")."\r\nContent-Transfer-Encoding: $encoding\r\n\r\n$letter\n";
}

function set_multipart_mail() // Собираем письмо из разрозненных частей
{
$boundary = 'b'.md5(uniqid(time())); // Создаем уникальное число, служащее индетификатором для части письма

$multipart = "Content-Type: multipart/mixed; boundary =$boundary\n\nThis is a MIME encoded letter\r\n\r\n--$boundary";
for($step = sizeof($this->headers)-1; $step >=0; $step--)
{
$multipart .= "\r\n".$this->build_letter($this->headers[$step])."--$boundary"; // Вставляем содержимое межу метками
}
return $multipart .= "--\r\n";
}

function get_full_message() // Вставляем тело письма (текстовую начинку) и все файлы
// на выходе получаем полное писмо (одна большая строка :)))
{
$mime = "";
if (!empty($this->from)):
$mime .= "From: ".$this->from." \r\n";
endif;
if (!empty($this->body)):
$this -> attach_file("",$this->body,"text/plain");
$mime .= "MIME-Version: 1.0\r\n".$this->set_multipart_mail();
endif;

return $mime;
}


function send_mail() // Собственно посыл письма
{
$mime = $this -> get_full_message(false);
mail($this->to,$this->subject,"",$mime);
}
}
?>
Уложив этот класс в отдельный файл, Вы можете использовать его где угодно.
Послать самому себе файлик со своей машине Вы можете здесь. А здесь исходный код этого примера.

(: l0G.[ERR] aka ThE0ReTiC[aLlY 0nLiNe] :)
l0g_err@xakep.ru
Аркадий Бабулин

P.S.
Маленькое дополнение, которое родилось после массового использования данного класса. Хитрость заключается в том, что перед прикреплением файла к письму, скрипт загружает его на сервер. Отсюда возникает проблема доступа. Для того, чтобы Вам пришло письмо с корректным аттачем, установите разрешающий запись доступ (у каждого хостера значения могут быть разные, поэтому примеров не привожу). Еще один момент. пременная $DOCUMENT_ROOT является переменной окружения и требует РНР, установленного как чать сервера (сейчас это практически повсеместная практика, но бывают и исключения. Платный хостинг весь настроен как надо.). Поэтому проверьте наличие приаттачиваемого (во сказал :) файла в прописанной Вами директории (путь может быть и относительный). Вроде все. Будут вопросы - мыло, плз.


Сайты в тему

Предлагаю Вам коллекцию сайтов, где Вы сможете отыскать различную информацию по поводу РНР. Если у Вас есть предложения по поводу расширения этого списка - я с удовольствием добавлю сюда еще один полезный ресурс. Присылайте свои ссылки и описания.

  • http://www.php.net/ - официальный сайт РНР. Масса информации, но только для тех, кто дружит с английским.
  • http://www.php-encoder.f2s.com - защита РНР скриптов UPDATED.
  • http://phpclub.net - Архив бесплатных PHP-приложений (вкл. E-commerce), форумы, чаты, рассылки, книги, обучение, хостинг.
  • http://www.devshed.com/Server_Side/PHP/ интересные статьи по PHP и не только.
  • http://ancient.dax.ru На сайте много готовых решений на PHP: форумы, чаты, гостевые книги и многое другое. Кроме того сам сайт реализован на php.
  • http://detail.phpclub.net/ - как обычно, о РНР.
  • http://firststeps.narod.ru/html/php/php.html
  • http://detail.phpclub.net/
  • http://phpclub.unet.ru
  • http://open.appideas.com/   сборник скриптов
  • http://programmingpub.com/scripts.html   скрипты на perl,php,python,tcl
  • http://px.sklar.com   php сборник скриптов
  • http://phplib.netuse.de   Здесь можно найти самую матёрую библиотеку на php(не отдельные скрипты, а цельное пособие по разработке), только не спешите подписываться на рассылки (авторы думают что все в мире должны знать немецкий
  • http://php.resourceindex.com/   коллекция скриптов
  • http://phpwizard.net   Tobias Ratschiller ничего не говорит?
  • http://www.umnik.f2s.com/ содержит информацию для вебмастера (по всем актуальным языкам веб-программирования), установка домашнего сервера Apache (разных версий)+MySQL+PHP+Perl. Также можно подписаться на рассылки
    "Вопросы и ответы по ОС" и "Будь достойным вебмастера". Имеются множество советов по компьютеру...
  • www.phpbuilder.com Здесь есть все! Форум, статьи, мануал, скрипты, да и вообще очень много профессионалов, тусующихся на сайте.
  • http://phpclasses.upperdesign.com/ Там находится масса классов на php, имеется рассылка на английском
    языке, регистрация бесплатная.
  • http://www.sourceforge.com - Вот IMHO очень полезный сайт. И не только для PHP-программистов, но и для всех остальных. Там десятки тысяч готовых примеров.

Где можно посмотреть

А и правда. РНР, да РНР! А где посмотреть как все это работает и оценить, стоит или нет заниматься этим... Правильное решение будет таким. Посетите сайты, указанные ниже, и посмотрите как они работают. Кстати, если хотите продемонстрировать всем свой проект или то, чего Вы достигли изучая РНР, присылайте ссылку и описание, и все это будет размещено здесь. Только не забудьте поставить у себя наш баннер, можно и не на главной, но буду не против :-) Ссылки на сайты будут вращаться по кругу по мере поступления.

http://virtual.bresttelecom.by - Виртуальный Брест. На РНР работают чат, форум, гостевая, объявления, статистика посещений, обмен компакт дисков, анекдоты.
www.gdekupit.ru Интернет-каталог Где купить в России. Каталог полностью автоматизирован. Регистрация, добавление нового города, Оформление Договора, выписка счета, служба рассылки и т.д. полностью автоматизировано. Все, кроме счетчика посещений на PHP и MySQL. Кстати, регистрация предприятий, расположенных в любом города России, абсолютно бесплатная.
http://www.ohrana.nsk.su - Практически весь сайт написан на PHP. Используется БД на MySQL.
http://www.webclub.lv   - Латвийский Клуб Веб-мастеров Наш сайт предназначен для всех кто творит и хочет творить Интернет. Мы предлагаем информацию, помощь и примеры по дизайну. Довольно обширная коллекция скриптов. Статьи, учебники и многое другое.
http://www.love24h.com/ru/   - международная служба знакомств, все анкеты (более 1500) с фото
http://www.freeglobus.com/ - сайт бесплатных игр (все со скриншотами и линками на загрузку)
http://trinet.wallst.ru - на PHP сделан каталог игр
www.nixers.com - сайт для поиска непостоянной работы в Ирландии. Short term, part-time and temporary jobs in Ireland.
http://karaganda.central.kz - "На связи Караганда" - содержание сайта полностью отделено от оформления.
http://moredeneg.wallst.ru - Сайт о Реальном заработке в сети. На сегодняшний день сайт почти полностью на PHP.
http://www.yanka.f2s.com - полностью написан на PHP. Работают следующие скрипты: новости, talk box, links, фотографии, гостевая, тексты, дневник.
http://softm.vov.ru - программы для бизнеса - это простые решения сложных задач
http://rec.gov.by - Сайт Центральной Комисси Республики Беларусь по выборам и проведению республиканских референдумов.
http://www.zgoda.f2s.com сайт белорусской опозиционной газеты "ЗГОДА" полностью сделан на php:"движок", гостевая, счетчик, голосование, обновление, а так же еще пару других мелких, но полезных фишек.
http://rec.gov.by - Сайт Центральной Комисси Республики Беларусь по выборам AK> и проведению республиканских референдумов.
www.saratoff.ru - "Саратовские народные новости". Новости политики, экономики, культуры, спорта и общественной жизни Саратовской области. Посетители сайта сами могут публиковать собственные новости на сайте. Удобная система администрированная, реализованная на принципиально новой технологии алгоритмизации, с использованием всех возможностей PHP и MySQL позволяет авторизованным пользователям самим создавать и администрировать новые разделы на портале.
www.ecsot.narod.ru  Это сайт ПП "Эксот", которое специализируется на изготовлении сепараторов для очистки сжатого воздуха от масла и влаги.
http://americansingles.to - знакомства, магазин. Много интересного, и вс ена РНР.
http://www.uvd.tula.ru - сайт УВД Тульской области.
http://www.andrey.nnov.ru "Сайт Андрея Зайчикова" - Поможет начинающим программистам стать профессионалами. Алгоритмы, статьи, книги, faq и многое другое.
www.puhlik.f2s.com - Система позволяет провести опрос (голосование) любой целевой аудитории (посетители сайта, участники форума и т.д.). Полностью написана на PHP4 с использование MySQL.
http://flower.lgg.ru - Доставка цветов и подарков
http://autodealer.ru - Все для авто. Поисковая ситема на запчасти. Програмное обеспечение для автобизнеса. Практически весь сайт написан на PHP. Используется БД на MySQL.


Почта рассылки


Внимание! Был проведен осмотр сайтов, учавствующих в баннерообмене. К сожалению, на очень многих просто не обнаружилось моего баннера. Пришлось нарушителей удалить из системы. Если это произошло по ошибке, просьба написать мне об этом. Желательно проверить наличие своих баннеров на моем сайте, так как удалены были и те баннеры, которые просто не отображались. Еще немного - и начну удалять описания из рассылки.


Вопросы и ответы
задать вопрос

Предлагаю Вам присылать свои вопросы на адрес рассылки. Вопрос должен быть кратким, точным и по теме. Ответы на вопросы по мере знаний будут даваться мной, а если я не смогу дать Вам исчерпывающий ответ - кто-то из подписчиков обязательно поможет. А если Вы знаете ответ на заданный вопрос - не поленитесь ответить. Этим Вы очень поможете кому-то решить свою проблему. Синтаксис и грамматика - авторские.

Внимание! - вопросы, на которые никто не ответил не будут переноситься в следующий выпуск. Если вы так и не нашли ответ, попробуйте поточнее сформулировать свою проблему и изложить ее еще раз. Если Вы хотите, что бы авторство ответа указывалось в самом ответе, указывайте ссылку на себя в тексте ответа, тогда она пойдет в рассылку.

задать вопрос

Вопросы: 

  1. У меня стоит NT и MySQL. Как можно настроить MySQL что бы к базе можно обращаться через ODBC. Я на своем веб - сервере использую файлы с расширением .IDC, а они работают с базой через ODBC.
    ответить
  2. К чёрту этикет, сразу к сути -- из базы на MSSQL Server'e получаю содержимое поля, в которое (по идее)
    записана картинка jpeg. Но, разработчики БД (мать их) устроили засаду -- они дописывают в начало этого, чего это? как его назвать? ну файла, или картинки, или чего там... 10 байт какой-то ОЧЕНЬ ВАЖНОЙ системной информации. В результате, при извлечении result'a из базы я получаю бинарный код, который на картинку похож меньше всего. Кто что может посоветовать? Кстати, киевские гуру могут рассчитывать на пиво.Владимир Руденко aka CyberCop vlad2@naiau.kiev.ua
    ответить
  3. Здравствуйте! Я начинающий. У меня есть на компе MySQL, IIS и PHP4 помогите -сделать настройки в IIS для корректной работы на этой же машинке с MySQL -вообще как написать первую программу на PHP4 и запустить,- я вообще ноль как и не пытался -создать на ПХП базу данных используя MySQL и записать туда и считать это от тудо в файл. Также попутно как эту считанные данные переправить на другой сервер и созранить их там в файл Пожелания напишите пожалуста по-подробней как это все сделать и запустить С приогромнейшим уважением Евгений
    ответить
  4. Подскажите, пожалуйста, как создать базу данных MySQL? Я открываю MySQL, и пишу следующее:
    mysql> create database test;
    В ответ MySQL выдает:
    ERROR 1044: Access denied for user: '@unknown' to database 'test'
    Подскажите, что мне надо сделать?
    dimamart mailto:dimamart@au.ru
    ответить
  5. Люди, а как мне установить модуль к Apache хотелость бы попрактиковаться с Mod_rewrite
    Я пишу
    LoadModule rewrite_module modules/mod_rewrite.so
    он пишит ошибка присоединенное к системе устройство не работает я и слэш наоборот писал ( вот так modules\mod_rewrite.so) и полный путь указывал Всё равно ругается на эту строчку. Апач 1.3.20. Напишите кто пользовался mod_rewrite
    ответить
  6. Что и где надо скачать и как подключить ГД? Страшно рисовать хочеться:)) З.Ы. Под Окна
    ответить
  7. Какие использовать типы полей в MySQL для того, чтобы на РНР вставить картинку Имя.JPG в базу и как   ее туда добавить. Просьба описать подробнее все операции и ввода и вывода. Заранее спасибо, Андрей kolosov@brt.san.ru 
    ответить
  8. Как при помощи PHP загрузить базу данных в MySQL из файла дампа и наоборот сгрузить дамп базы в файл (MySQLadmin и т.п. не предлагать) т.е нужен простой скрипт только для этих целей. Заранее благодарен Олег. mailto:havriliv@mail.ru
    ответить
  9. Всем привет! Как можно сделать комментарий к какой-нибудь статье?
    ответить
  10. Как можно при помощи PHP создать ТОП музыки, который будет зависеть от нажатия на ссылку или от
    количества скачиваний?
    ответить
  11. Я сейчас пытаюсь придумать чат. И у меня есть два вопроса.
    1. Есть ли в PHP генератор случайных чисел?
    2. Как узнать что человек вышел из чата?
    ответить

    Ответы на заданные вопросы:
  1. У меня почему-то не отправляется мыло с сайта. Я пишу так: mail ("peroon1999@mail.ru","Письмо с сайта","$message"); Причем ошибок пхп никаких не выдает... просто ничего не приходит. Подскажите в чем может быть проблема
    Ответ:

    У меня тоже была такая проблема на бесплатном хостинг сервере письмо просто не отправлялась Но на платном все работало отлично Может быть в PHP есть блокировка исходящей почты например защита от рассылки Спама посмотри php.ini у себя и проверь установлен ли у тебя sendmail и правильные ли пути и флаги к нему

    Отпиши скрипт на l0g_err@xakep.ru - так может быть все, что угодно. Посмотрю - помогу.

    если пишете с wallst.ru то надо еще добавлять в mail(..,..,..,"Return-Path:your@mail");

    Если у тебя сайт на WallSt.ru, то там функция мэил() почти не работает. А вообще еще надо прописывать
    четвертый параметр функции. || www.nokstr.dax.ru ||

    mail($recipient, $subject, $message, $headers);
    где
    $headers .= "From: $from\n";
    $headers .= "Content-Type: text/plain; charset=koi8-r\n";
    $headers .= "X-Priority: 1\n"; // Urgent message!
    $headers .= "Return-Path: peroon1999@mail.ru \n"; // Return path for errors


  2. Помогите, пожалуйста; над проблемой бьюсь уже неделю. У меня есть директория "days". В ней находятся файлы с именем 00.00.0000 (т.е. даты). Например, в "days" находятся вот такие файлы:

    01.11.2001.txt
    03.11.2001.txt
    15.10.2001.txt
    18.10.2001.txt
    21.10.2001.txt
    21.05.2000.txt

    Я при помощи функции readdir читаю названия этих файлов и создаю массив с их названиями, причем
    расширение ".txt" отбрасываю. Т.е. для данного случая у меня создается массив $filesdays. Где:

    $filesdays[0] = "01.11.2001"
    $filesdays[1] = "03.11.2001"
    $filesdays[2] = "15.10.2001"
    и т.д.

    А теперь сама проблема. Мне необходимо отсортировать массив по датам, т.е. не по алфавиту, как это
    делает функция sor(), а так, чтобы вначале шла самая первая дата а дальше по уменьшению. Например, для данного случая массив должен отсортироваться вот так:

    03.11.2001
    01.11.2001
    21.10.2001
    18.10.2001
    15.10.2001
    21.05.2000
    Ответ:

    Самое простое решение в таком случае - называть файлы по другому, например: 2001.11.03.txt (год.месяц.день).

    1. Храните имена файлов в timestamp формате, т.е. YYYYMMDD, тогда можно будет их корректно сортировать. timestamp можно получить примерно так:
    $d = date("Y.m.d");
    в результате получите нечто типа : 2001.11.10
    2. В ваших именах файлов делать explode по точке, а потом собирать имя в обратном порядке. т.е. :
    $str = "10.11.2001.txt";
    $arr = explode(".",$str);
    $d = $arr[2].".".$arr[1].".".$arr[0];
    в результате в $d будет лежать "2001.11.10";
    и для первого и для второго случая собираете все в массив, а потом функциями работы с массивами (см. доки по php) сортируете...alien@tavrida.net http://web.tavrida.net

    function bydate ($a, $b) {
    $a = implode("", array_reverse(explode(".", $a)));
    $b = implode("", array_reverse(explode(".", $b)));
    return ($a > $b ? -1 : 1);
    }
    usort($filesdays, 'bydate');
    puhlik

    Интересный вопросик. :))) У меня заработала такая схема - меняем формат представления даты на ГГГГ.ММ.ДД, сортируем, меняем назад и выводим в обратном порядке. Скрипт ниже по тексту. Имена файлом имеют формат ДД.ММ.ГГГ.txt
    <?
    $hand = opendir("temp");
    $i= 0;
    while(($date_array = readdir($hand)) != false)
    {
    if (!eregi("(^.$|^..$)",$date_array)): // Убираем все лишнее
    (указатели на корневую директорию)
    $date_array = eregi_replace(".txt","",$date_array); // Отрезаем
    последнее расширение
    $date_passed[$i] = $date_array; // Заносим дату в массив
    $i++;
    endif;
    }
    reset($date_passed); // Переводим указатель на первый элемент получившегося массива
    while(list($key,$val) = each($date_passed))
    {
    $temp_date = explode(".",$val); // Разбираем строку массива
    $year_sorting[$key] =
    $temp_date[2].".".$temp_date[1].".".$temp_date[0]; //
    переписываем строку в формате ГГГГ.ММ.ДД
    }
    sort($year_sorting); // Сортируем
    while(list($key,$val) = each($year_sorting))
    {
    $temp_date = explode(".",$val); // Опять разбираем
    $final_view[$key] =
    $temp_date[2].".".$temp_date[1].".".$temp_date[0]; // Опять
    переписываем утосортированный массив в формат ДД.ММ.ГГГГ
    }
    for ($step=sizeof($final_view);$step>=0;$step--)
    {
    echo$final_view[$step].'<br>'; // Выводим в обратном порядке
    }?>
    Проверил на PHP 3.0.18 on Apache 1.3.14/FreeBSD

    Нужно "перевернуть" дату в формат "YYYY.MM.DD" и та же sor() даст требуемый результат.

    Попробуй переколбасить эти даты слева направо и тогда они нормально отсортируются. Типа вместо 01.11.2001 будет 2001.11.01 тогда полная гарантия, что даты будут по возрастанию/убыванию. Во всяком случае, я бы так сделал. Просто напиши функцию, которая это всё будет делать. И всё. С ув. Master@Adelavida.com.ua

    Дату надо записать в формате yyyy.mm.dd для этого надо использовать функцию substr :
    $new_date=substr($date,6,4).".".substr($date,3,2).".".substr($date,0,2)
    После сортировки обратно преобразовать :
    $new_date=substr($date,8,2).".".substr($date,5,2).".".substr($date,0,4)


  3. люди, надо провернуть такую фишку: есть выпадающие список:
    <form method=post action=some.php>
    План:
    <select name=position>
    <option value=a>aaa</option>
    <option value=b>bbb</option>
    <option value=c>ccc</option>
    <option value=d>ddd</option>
    <option value=f>fff</option>
    </select><br>
    Cost:
    <select name=some>
    <option value=5>5</option>
    <option value=10>10</option>
    <option value=15>15</option>
    <option value=20>20</option>
    <option value=25>25</option>
    </select><br></form>
    нужно присвоить каждому имени свое значение, перемножить и вывести результат, т.е. например ааа присвоить значение 10 и выбрать во втором списке 20, перемножить и на следующей странице вывести 200
    Ответ:

    Сделай скрипт:
    1) При отправлении формы скрипт выхватывает значения SELECTов
    2) Перемножь эти переменные и выкинь результат.

  4. Возможно ли средствами PHP решить следующую задачу - очередной блок новостей формируется в форме E-Mail, письмо засылается на сервер, а сайт уже отображает полученное как последнюю новость?
    Сергей
    Ответ:

    Можно, возможно криво.. :) создать почтовый ящик на халявном сервере, при  заходе юзера на сайт проверять содержимое почтового ящика, если там что-то есть, то вытаскивать и обрабатывать. Более корректно - использовать cron, не на каждом хостинге есть такая возможность

    Можно. Только если сервер твой собственный, или админ большой друг. Настолько большой, что позлит твоему скрипту работать резидентно, да еще и следить за почтой. (хотя можно попробовать обойти при помощи сокетов, но я такого еще не пробовал)

    Возможно Для этого в пхп и есть функции работающие с imap (cмотри мануал)Правда пхп должен быть с этой библиотечкой

    по моему нужен cron и сам обработчик (cron просто ссылает письмо с командой на файл обработчик)


  5. Мне необходимо пролинковать все ссылки в тексте. На PHP. Т.е. есть текст впеременной $contents
    и если в тексте встречается, например, запись http://name.ru/sdf ее нужно сделать линком на http://name.ru/sdf. Причем, если в тексте встречается уже созданная ссылка, т.е.: <a href= http://name.ru/sdf>ссылка</a> или <a href= http://name.ru/sdf target=_blank>ссылка</a>, то ее пролинковывать не надо. У меня есть вот такой код:

    $contents = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\\1://\\2\\3
    target=_blank>\\1://\\2\\3</a>",$contents);

    Но он пролинковывает все ссылки в тексте, даже те, которые заключены в теги <a></a> и получается абракадабра, т.е. он в тэги <a></a> добавляет еще такие же теги, короче мне надо сделать так, чтобы надпись (ссылка) уже заключенная в теги <a></a> не пролинковывалась. Помогите, пожалуйста.
    Ответ:

    Ответ следующий (самый простой, наверно, не самый лучший): перед тем, как подвергать строку $contents процедуре замены, можно проверить ее на теги <a> и </a> следующим образом (в данном случае eregi_replace просто удаляет вышеуказанные теги):
    $contents=eregi_replace("</a>","",$contents); //удаляет закрывающий тег
    $contents=eregi_replace("<a [^>]+>","",$contents);//удаляет открывающий тег
    Вот и все, теперь применяйте вашу функцию - повторов тегов не будет.
    !! Работает только тогда, когда ваша ссылка является адресом, как в приведенном вами примере, т.е. <a href="что_то">что_то</a>, т.е. что_то - это одно и то же, при  <a href="что_то">Лучшая страница!</a>
    работать не будет. С уважением, Елена ( timlenka@mail.ru )

    Попробуй перед своим кодом вызвать функцию:
    $contents = strip_tags ($contents);
    Она уберёт все HTML теги и затем пролинковывать все ссылки.


  6. Хочу подключить под Windows php 4.0.6. как внешний модуль к Apache (сейчас он работает как CGI-программа).

    Убираю из httpd.conf строки:
    <Directory "e:/usr/local/php">
    Options ExecCGI
    </Directory>
    ScriptAlias "/__php_dir__/" "e:/usr/local/php/"
    Action application/x-httpd-php "/__php_dir__/php.exe"

    Оставляю там:
    AddType application/x-httpd-php .php .php3 .php4
    AddType application/x-httpd-php-source .phps

    Добавляю:
    LoadModule php4_module "e:/usr/local/php/php4apache.dll"

    После перезапуска сервер выдает ошибку:
    Syntax error on line 181 of e:/usr/local/apache/conf/httpd.conf:
    Cannot load e:/usr/local/php/php4apache.dll into server:

    Файл php4apache.dll точно лежит в указанной директории, все пути правильные.В чем может быть проблема? С уважением, Юрий. http://hingis.agava.ru http://vasilieva.da.ru
    Ответ:

    1. Попробуй засунуть dll-ку в папку c:\usr\bin\apache\modules (или ваш путь к папке)
    2. Напиши
    LoadModule php4_module modules/php4apache.dll

    Не так e:/usr/local/php/php4apache.dll,
    а так e:/usr/local/php/sapi/php4apache.dll

    Закинь php4ts.dll в Windows/system32.
    Павел, Донецк, Украина. pavel@imail.dc.ukrtel.net


  7. Как создать базу данных MySQL? Я открываю MySQL, и пишу следующее:
    mysql> create database test;
    В ответ MySQL выдает:
    ERROR 1044: Access denied for user: '@unknown' to database 'test'
    Скажите, что мне надо сделать? Заранее благодарен.
    Ответ:

    mysql> grant all privileges on test.* to user identified by 'password' with grant option;
    mysql> flush privileges;

    Прежде чем работать с базой ты должен правильно к ней подключиться функцией mysql_connect предав ей логин и пароль а уже потом админить базу а так у тебя получается что юзер по дефолту - '' а хост - 'unknown' сам понимаешь так тебя никто не пустит :-)

    1. mysql --user=<username> -p
    2. а права на create есть? :)

    Надо почитать мануал по MySQL в части прав доступа

    а скерее всего ты когда запускаешь майскюэль не ставишь пользователя и его пароль, глянь на параметры запуска MySQL например, у меня пользователь root и без пароля то запуск так:
    e:\usr\local\mysql\bin\mysql.exe --user="root"

    1. К таблице test имеет доступ только администратор root.
    2. Такая база уже создана при установке MySQL. Создайте базу под другим именем.


  8. У меня стоит NT и MySQL. Как можно настроить MySQL что бы к базе можно обращаться через ODBC. Я на своем веб - сервере использую файлы с расширением .IDC, а они работают с базой через ODBC.
    Ответ:

    на http://www.mysql.com/downloads/index.html   лежат odbc драйвера под mysql

    Для этого в пакете MySql есть специальный драйвер MysqlOdbc. Поставь его и будешь ходить через ODBC Но иногда этот драйвер не лежит в основном дистрибутиве а поставляется отдельно

  9. Сделал, чтобы в конце страницы выводилось время загрузки. В начале страницы:
    $PrevDate = strtotime ("now");
    Потом идёт вывод информации. И в конце файла:
    $Date = strtotime ("now");
    Echo Date("Загрузка заняла i мин. s сек.",$Date-$PrevDate);
    Всё работает, но, когда я прошу ПХП ещё и часы показывать (добавляю H), то он показывает:
    03 ч. 00 мин. 13 сек.
    ПОЧЕМУ ТРИ ЧАСА???!!!!!!???????

    Ответ:
    Получается 00:00:13, локальное время, но так как наше (московское в
    частности) время от гринвического отличается на 3 часа, вот и получается, что когда у них
    00 у нас 03, а пхп автоматически переводит.
    А теперь зная причину, можно уже думать как ее обойти

задать вопрос


Обмен ссылками и баннерами

Предлагаю Вам стать участниками баннерообмена. Ваши ссылки и описания Ваших сайтов вы можете присылать по адресу рассылки - virtualphp@tut.by Все ссылки обязательно появятся в этой рассылке. Если есть желание разместить свой баннер 88*31 на сайте рассылки http://virtual.bresttelecom.by/php/ , укажите это дополнительно, и пришлите код своего баннера. В любом случае, Вам надо будет разместить у себя код баннера сайта рассылки, и только на главной страничке Вашего сайта.

Взять код моего баннера (на выбор) можно по адресу: http://virtual.bresttelecom.by/php/index.phtml?php/banner.html или воспользоваться этим:

<a href="http://virtual.bresttelecom.by/php/"><IMG SRC="http://virtual.bresttelecom.by/baner/8831.phtml"
alt="Виртуальный Брест" width="88" height="31" border="0"></a>

Внимание! Был проведен осмотр сайтов, учавствующих в баннерообмене. К сожалению, на очень многих просто не обнаружилось моего баннера. Пришлось нарушителей удалить из системы. Если это произошло по ошибке, просьба написать мне об этом. Желательно проверить наличие своих баннеров на моем сайте, так как удалены были и те баннеры, которые просто не отображались. Еще немного - и начну удалять описания из рассылки.

Наши друзья

Правила у меня стандартные - описания Ваших сайтов будут периодически (в зависимости от их количества) размещаться в рассылке. И конечно - будет отдельная страничка на сайте, на которой будут представлены все друзья сайта.

http://virtual.bresttelecom.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://price.bresttelecom.by - сайт прайсов фирм города Бреста. Поиск, подсчет, реклама и т.д.
http://tweak.tut.by - http://tweak.bresttelecom.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевог
о друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!
http://saleha.al.ru/anecdot/index.phtml   - самые новые и смешные анекдоты.
http://klepan.narod.ru  - Халява pliz! - реферал клуб.
http://www.ohrana.nsk.su - Название: Управления вневедомственной охраны г.Новосибирска. Описание: Услуги по охране квартири других объектов, сопровождение грузов. На сайте: интересные статьи, новости, криминальная хроника, вакансии и другая полезная информация!
http://www.programing.narod.ru - программирование на РНР
http://icebreaker.dax.ru - самый информативный сайт об ударных инструментах, здесь находится огромное количество полезной информации для ударника:фотографии,статьи,табулатуры,самоучители,ссылки и много чего ещё!
http://webd.hut.ru - AGS Design. Сайт для вебмастера. 1500+ изображений фонов, иконки и кнопки, отличная графика, скрипты, очень понятная документация по различным языкам программирования, изучение Фотошоп
от А до Я, и мн. др.
www.nokstr.dax.ru - Программы, статьи и примеры по Visual Basic, C++, Халява.
http://www.ancient.dax.ru - Ancient - Каталог Веб-Мастера. Бесплатные скрипты CGI, PHP, JAVA
WebCraft - всё для вебмастеров, увеличение вашего трафика на 200 посетителей в день.

http://softm.h1.ru/ - программы для бизнеса - это простые решения сложных задач
http://moskalyuk.com/links/index.htm . На сайте собрана коллекция ссылок, причем, как нетрудно убедиться, многие посвящены программированию и компьютерным наукам. По РНР отдельно пока ничего нет, просто в последнее время я увлекался языком Perl, кому-то может показаться интересным.
http://sos.dax.ru - Проект "SOS:Помощь пользователю". На сайте вы найдете множество статей, советов по компьютеру. Всегда свежий софт. А также вы сможете задать вопрос и получить на него моментальный ответ. Если вам нужна помощь - мы поможем вам!
http://www.uvd.tula.ru - сайт криминальной милиции УВД Тульской области. Здесь будет все, что касается милиции, права и жизни города Тулы.
http://www.pro-forex.com/ru/index.php - Большой проект финансовой тематики, полностью реализованный на PHP и MySql: Дилинговый Центр PRO-FOREX.COM
http://myvote.hut.ru - MyVote - голосование на Вашем сайте.Сервис для всех вебмастеров, которые хотят сделать свой сайт более интерактивным. Позволяет организовать опрос мненияпользователей на любом сервере.
http://kinfa.narod.ru/ "Для программистов, Web - мастеров, разработчиков и пользователей, интересующихся новыми возможностями языка HTML"
http://catsclub.boom.ru - Все о кошках в Кошкином Клубе
www.adelavida.com.ua - Юмор, Галерея совремённых художников, Советы по Виндозе, Полезные ссылки
http://www.sura.ru/maxwell Математика, Алгоритмы, Программирование. На сайте можно найти описания различных алгоритмов и методов, относящихся к различным математическим (и не только) дисциплинам.
http://rodinaaa.nm.ru - Велкам в "Уголок Родины", на персональную страницу Бориса Киреева aka Генерал Родина. Здесь Вы можете познакомиться с моим как бы литературнымтворчеством. Творчеством моих друзей.
ermakov.hut.ru - Не нажимайте на эту ссылку! Все равно на Абсолютно бесполезном сайте Вы не найдете ничего, кроме самых интересных кроссвордов, обычных и не очень, самых смешных анекдотов. Стоит ли идти на этот сайт для того, чтобы подписаться на лучшую кроссвордную рассылку Subscribe.ru?!

http://babylon1.narod.ru - это разделы посвящённые созданию и раскрутке сайта, созданию эффективного баннера, интересным эффектам на java-скриптах, php-скриптах и cgi-скриптах. А также здесь Вы найдёте программы для ускорения интернета, памяти, компьютера, системы, Windows и многое другое интересное и полезное, что Вас, надеюсь, заинтересует.
http://eugeny.com Описание: "Персональный сайт Кучерова Е., программирование (статьи, ссылки), словарь для решения кроссвордов (более 30 тысяч слов)."


Подпишитесь на рассылки!

Рассылки Subscribe.Ru
Программируем на PHP - вопросы и ответы
Новости сайта Виртуальный Брест
Оптимизация и настройка компьютера
SOS:Помощь пользователю Интернета
Вэб-строительство Профессионалам
Кроссворды от К.Ермакова
JavaScript и PHP
:-) ШуТкИ - ШутКамИ (-:
Dummpy Daily eTips
Аббревиатуры и термины в компьютерном мире
Тяжелая музыка от А до Я

Здесь будет публиковаться список рассылок, рекомендуемых к подписке. Если у Вас есть рассылка - предлагаю Вам обменяться подобной формочкой для подписчиков. Достаточно прислать мне код рассылки и ее название.


автор рассылки Андрей Кухарчик / http://virtual.bresttelecom.by/php



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное