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

Все о PHP и даже больше

  Все выпуски  

Все о PHP и даже больше


Информационный Канал Subscribe.Ru

Все о PHP и даже больше...

.:: Путь от начинающего до эксперта ::.

# 10
6/2003

7 апреля 2003г.

Проект сайта GreatWeb.RU

Ведущий рассылки: Бабушкин Евгений

    В этом выпуске:

  • Наши проекты
  • Как удалить строку из файла
  • Это программа отсылает сообщение на Асю
  • Узнаем размер файла на каком-то веб-сервере?
  •   Ссылки Вебмастеру:

  • Лучший хостинг
  • Раскрутка
  • Советы Web-мастеру
  • Книги по программировании
  • WEB-браузеры
  • Фоны
  • Скрипты
  • HARDWARE
  • Партнерская программа
  • DwebHost.RU

  • Привет программер!

    :.:: Наши проекты:

     

    GreatWeb.RU - Портал продвинутых юзеров. Только здесь, все о веб-дизайне, раскрутке, выбору хостинга и не только...
    Читайте здесь последние новости Инетрнет!

    Форум продвинутых юзеров. Отличный форум! Задавайте абсолютно любые вопросы, вам обязательно ответят и помогут решить Ваши проблемы.

    Участвуйте в опросе на нашем форуме: "Лучший сайт Рунета" в разделе "Оценка сайтов", докажите, что Ваш сайт - лучший!
    Если Вы еще не зарегистрировались, то Вам сюда.

    .:: Как удалить строку из файла



    Я очень часто встречаю вопрос типа "Как удалить определенную строку из файла?". Народ совсем не хочет шевелиться, ведь так легко зайти на любой крупный форум по PHP, и в сроке поиска написать что-то типа "Удаление строк из файла". Пятерка результатов гарантирована. Итак, в первой части статьи мы как раз рассмотрим способ удаления определенной строки из текстового файла.


    Для начала было бы совсем не плохо создать текстовый файл. Назовём его file.txt, который будет состоять из строк, которые мы будем удалять:

    строка один
    строка два
    строка три
    строка четыре
    строка пять

    Затем создаём что-нибудь типа file.php, занимающий около 11 строк!

    main.htm

    <?
    if ($id != "")
    {
    $id--;
    $file=file("file.txt");
    $fp=fopen("file.txt","w");
    for($i=0;$i<sizeof($file);$i++)
    {
    if($i==$id)
    {
    unset($file[$i]);
    }
    }
    fputs($fp,implode("",$file));
    fclose($fp);
    }
    ?>



    Сначала определимся, что для удаления определенной строки нам нужен её номер. Его мы будем передавать с идентификатором id: file.php?id=2 (удалим строку под номером ТРИ, так как исчисления элементов в массиве ведётся с нуля, но позже мы это сгладим).

    - функция file() считывает весь файл в массив (каждая строка - это его элемент);
    - $id-вычитает один из нашего идентификатора, так что 2 становится 2, а 3 - 3;
    - unset($file[$i]) удаляет или обнуляет элемент массива (но только из памяти, т. е. виртуально:);
    - implode() объединяет массив в одну строку. Это очень важно, так как если бы это опустили, наш файл бы похудел до бесполезной записи Array...


    Большое спасибо Woweb.ru (Mike Khoroshun)



    .:: Это программа отсылает сообщение на Асю.

     


    Можно легко переделать в программу отправки сообщений на пейджер (например через page.gate.ru), SMS и другое. При умении анализировать ответ сервера, можно выредать анекдоты c anecdot.ru или курс доллара с rbc.ru. Здесь лишь минимум для задачи:

    • Сформировать запрос из разных полей
    • Открыть сокет
    • Записать запрос

    <?

    flush();

    // поля надо заполнить
    $from='Dmitry Borodin';
    $fromemail='ваше_мыло@php.spb.ru';
    $subject='сабж';
    $to='00000000'; // <-- номер. (Уверен, что кто-нить не догадается :-)
    $body='само сообщение';

    $submit='Send Message'; // don't edit
    $ref="http://wwp.icq.com/$to"; // don't edit


    // формирование заголовка
    $PostData=
    "from=".urlencode($from)."&".
    "fromemail=".urlencode($fromemail)."&".
    "subject=".urlencode($subject)."&".
    "body=".urlencode($body)."&".
    "to=".urlencode($to)."&".
    "submit=".urlencode($submit);

    $len=strlen($PostData);

    $nn="\r\n";
    $zapros=
    "POST /scripts/WWPMsg.dll HTTP/1.0".$nn.
    "Referer: $ref".$nn.
    "Content-Type: application/x-www-form-urlencoded".$nn.
    "Content-Length: $len".$nn.
    "Host: wwp.icq.com".$nn.
    "Accept: */*".$nn.
    "Accept-Encoding: gzip, deflate".$nn.
    "Connection: Keep-Alive".$nn.
    "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)".$nn.
    "".$nn.
    "$PostData";

    echo $zapros."\n\n-------------\n\n\n";
    flush();

    // открываем сокет и шлем заголовок
    $fp = fsockopen("wwp.icq.com", 80, &$errno, &$errstr, 30);
    if(!$fp) { print "$errstr ($errno)<br>\n"; exit; }


    // для наглядности выводим заголовок ответа и страницу на экран
    fputs($fp,$zapros);
    print fgets($fp,20048);
    fclose($fp);

    ?>



    Большое спасибо PHP.spb.RU



    .:: Узнаем размер файла на каком-то веб-сервере?

     


    Первый способ: скачать и посмотреть. Второй способ описан здесь.

    Вступление. Чтобы это сделать, надо открыть сокет (установить соединение с удаленным веб-сервером). Сокет - это файл, в который можно писать и читать. Далее в сокет (как в файл) надо написать заголовок (HEAD filename ...). После считать из сокета то, что нам напишут. Для начала выведите это на экран, чтобы было понятно, что именно вам возвращают. В ответе сервера, что мы считаем, будет много полезной информации - тип и ОС сервера, дата модификации и размер файла, другая информации. Все, что надо - выдрать из текста нужное число и вывести его на экран.


    <?

    $fname='/path-to-file/big-big-big.mpg';
    $fhost='www.super-mega.ru';

    $x=0;
    $fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("облом");

    fputs($fp,"HEAD $fname HTTP/1.0\nHOST: $fhost\n\n");
    while(!feof($fp)) $x.=fgets($fp,128);
    fclose($fp);
    if (ereg("Content-Length: ([0-9]+)",$x,$size)) echo "Размер файла $size[1] байт";
    else echo "Определить невозможно";


    ?>

    Большое спасибо PHP.spb.RU


    © 2002-2003 Copyright by GreatWeb Design
    Копирование материалов рассылки возможно только в случае явного указания на сайт "GreatWeb.RU" как на источник информации.



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

    В избранное