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

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Рассылка сайта
РНР для всех!

Выпуск номер 15

Здравствуйте

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

заказать книги по РНР (только Беларусь)

Гостевой вход

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

Если провайдер предоставляет Вам хостинг, воспользуйтесь этим. Как правило, это пару мегабайт бесплатно, остальное - за деньги. Но для наших целей хватит. Давайте попробуем. Для начала проверьте, уходят ли письма из РНР, если их отправлять с гостевого входа. Как правило, администраторы оставляют эту возможность своим пользователям, но в любом случае Вам нужно проверить это. Как конкретно - полистайте старые выпуски рассылки. Или посмотрите на сайте - все есть там. Дальше - самое интересное. Помните, как мы граббили информацию с сайтов. А что если попробовать сделать точно также, но с гостевого входа? Только с той разницей, что ничего мы вырезать не будем, а просто выведем полученную информацию. Таким образом, просто подменяя ссылки мы можем многого добиться. Для примера могу привести интересную ссылку. Точнее две. Первая - обычная ( http://tweak.tut.by ), а вторая - специально сделанный скрипт, который демонстрирует замену практически любых блоков. Вот она - вторая ссылка ( http://virtual.bresttelecom.by/komputer/opti.phtml ) Как видите, подмене подверглись баннеры, и некоторые текстовые блоки. Но самое главное - ссылки тоже претерпели изменения, и теперь указывают на скрипт, а не на сам сайт. Вот как устроен скрипт...

if ($urltweak == "") { $link = "http://tweak.tut.by/"; } else { $link = $urltweak; }

Если переменная $urltweak пуста, ей присваивается адрес главной странички, если нет, то... нет. Теперь в переменной $link - нужный адрес.

$file = @fopen($link, "r");
if ($file) { $rf = fread($file, 200000); fclose($file); }

Открываем соединение и считываем 200000 байт (хватит...). Если все прошло успешно, идем дальше. Если нет - не повезло.

$rf = str_replace ("<img src=/img/site/fav.gif border=0 width=15 height=13>","", $rf);
$rf = str_replace ("<img src=/img/site/start.gif border=0 width=20 height=20>","", $rf);

Зачем нам эти картинки - просто вырежем их из кода. Тут есть нюанс. Возможно, что автор странички изменит регистр букв, и тогда прием не сработает, но по секрету скажу - он пока в отпуске :-)

$a = 0; $rf = trim (chop ($rf)); // удаляем повторяющиеся пробелы
$s = strpos ($rf, "<small><font face=\"Verdana\">Счетчики", 0); // указываем место, с которого

// будем вырезать

$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "<hr color=\"blue\"", $s);
$rf1 = $rf1.substr ($rf, $s1); $rf = $rf1;

$s = strpos ($rf, "www.linkexchange.ru", 0);
$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "</a>", $s);
$rf1 = $rf1."virtual.bresttelecom.by\"><IFRAME src=http://virtual.bresttelecom.by/baner/468-60.phtml?ii=0 width=468 height=60 scrolling=no frameborder=0></IFRAME>
".substr ($rf, $s1); $rf = $rf1;

Вырезаем то, что не нужно и вставляем собственный блок информации. С баннером в вверху странички разделались. На очереди другие...

$s = strpos ($rf, "<IFRAME src=\"http://10e2", 0);
$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "</a></IFRAME>", $s);
$rf1 = $rf1.substr ($rf, $s1); $rf = $rf1;

$s = strpos ($rf, "<IFRAME src=\"http://10e2", 0);
$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "</a></IFRAME>", $s);
$rf1 = $rf1.substr ($rf, $s1); $rf = $rf1;

$rf = str_replace ("</A>","</a>", $rf);
$s = strpos ($rf, "Мой друг", 0); $s = strpos ($rf, "<p align=\"center\">", $s);
$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "</a>", $s);
$rf1 = $rf1."<p align=\"center\"><a target=_blank href=http://virtual.bresttelecom.by/php/><img src=http://virtual.bresttelecom.by/php/php/php4.gif border=0 width=88 height=31 alt=\"PHP для всех! Программируем сами.\"></a>".substr ($rf, $s1); $rf = $rf1;


$s = strpos ($rf, "Webscript.ru", 0);
$s = strpos ($rf, "<script", $s);
$rf1 = substr ($rf, 0, $s);
$s1 = strpos ($rf, "</script>", $s);
$rf1 = $rf1.substr ($rf, $s1+9); $rf = $rf1;

Это Вам чисто для опытов. Все баннеры заменены, вызов новостей с других сайтов тоже отрезаны. Дело за ссылками. Но это просто.

$rf = str_replace ("HREF=","href=", $rf);
$rf = str_replace ("href=\"http://www.tweak.tut.by/","href=\"http://virtual.bresttelecom.by/komputer/opti.phtml?urltweak=http://www.tweak.tut.by/", $rf);
echo $rf;

В конце, как Вы поняли, мы выведем результат на экран, а то как же иначе :-)

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

$ip=getenv('REMOTE_ADDR');
if ($ip == "IP адрес" or $ip == "127.0.0.2" or $ip == "что угодно") { человек зашел по гостевому } else { как обычно }

Только подставьте нужные IP, считать которые сами знаете как. Вывести  на экран $ip...

На этом вроде все...

Андрей Кухарчик @ июнь 2001
http://virtual.bresttelecom.by
virtualbrest@tut.by 


P.S. По Фидо пришла ссылка, которую я с удовольствием переадресовываю Вам. Не знаю, будет ли она работать (когда я проверял - работала), но там лежит файл около 7,5 Мегабайт, в котором дистрибутивы PHP+Apache+MySQL. Все уже установлено и настроено, нужно только распаковать куда надо. Пробуйте!
http://virtual.bresttelecom.by/apache.phtml

Кстати, я скачал файлик, там все на русском, но если у Вас Win Me или W2K могут возникнуть проблемы, так как по умолчанию все ставится на виртуальный диск X, который монтируется в досе из autoexec.bat А указанные операционки их не используют. Правда, в первой мне удалось все запустить, но пришлось вручную запустить этот файл, так как сам по себе он не хотел идти, постоянно переименовываясь в резервную копию. Так что будьте морально готовы. И еще информация - для работы в Win95 Вам понадобится файл (какой - пока не знаю, знаю только что винда начнет ругаться на отсутствие этого файла), его нужно будет скачать из Интернета. И еще большое спасибо автору дистрибутива - дело он сделал нужное и полезное.

Если Вас интересует покупка книг по РНР, предлагаю Вам как вариант белорусский электронный магазин OZ.BY . Вы сможете перевести деньги как почтовым переводом, так и через расчетный счет из сберкассы.


Сайты в тему

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

  • http://www.php.net/ - официальный сайт РНР. Масса информации, но только для тех, кто дружит с английским.
  • http://go.to/php-encoder - защита РНР скриптов.
  • 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://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, фотографии, гостевая, тексты, дневник.


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

Открывается новый раздел, в котором будут публиковаться материалы, дополнения и обзоры, составленные по Вашим письмам...

Сегодня тут тишина.

 


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

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

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

Вопросы: 

  1. Если я открываю соединение функцией mysql_connect, то оно закрывается после отработки скрипта или нужно вызывать mysql_close? И вообще, стоит ли пользоваться mysql_pconnect или она ест много ресурсов при увеличении посетителей?
    ответить
  2. Вопрос такой: каким образом можно избавиться от повторной посылки данных скрипту? Пример: пользователь заполнил форму, щелкнул на кнопке, скрипт отработал... но если пользователь щелкнет "Refresh", то скрипт отработает повторно... Чего я уже не делал - и редирект, и через куки отслеживал... но может есть вариант через переменные окружения CGI? Ну там типа HTTP_VARIABLES_POST или еще как-то?
    ответить
  3. Расскажи, пожалуйста, про cookies. Как их послать, принимать и обрабатывать. Есть функция setcookies, но что-то она ничего не делает ... Или я что-то не то делаю. У меня Windows98+Apache+PHP4. Сначала ошибка выходила:
    "Warning: Cannot add header information - headers already sent by (output started at d:\www\setcookies.php:7) in d:\www\setcookies.php on line 14"
    Я в php.ini поставил "output_buffering = On" теперь ошибок нет, но и cookie не создается.
    Кроме того, как, если они будут создаваться, их читать? Суть: счётчик. Надо повторные посещения проверять (по ip умею - хочется точнее по cookies) всё стандартно: проверяем пользователя,
    если он не был на сайте - посылаем ему cookie с параметрами (основной - это время последнего
    обращения) если уже был, то читаем cookie и проверяем в какое время он заходил на сайт Спасибо.
    Дима.

    ответить
  4. Я пишу информацию в файл. Что произойдет если в файлу обратятся несколько человек сразу? Неужели всё перепутается? Как этого избежать
    ответить
  5. Я прочитал статью по адресу http://detail.phpclub.net/technique/01-01-16/print .Там написано: “… файле .htaccess пишутся строчки, например ErrorDocument 404 all.php ErrorDocument 403 all.php ErrorDocument 401 all.php …”. Я никак не могу понять, где взять файл .htaccess? Создавать самим или он должен находится на хостинге? Если создавать самим, то я не могу создать файл без имени, если на хостинге, где его искать? Может быть я что-то не так понял? Помогите пожалуйста.
    ответить
  6. Нужен скрипт, что бы организовать собственную рассылку.
    ответить
  7. Подскажите, пожалуйста, как сделать проверку адреса e-mail на корректность (у меня на JavaScript не получается, а как это сделать на PHP, я не знаю)
    ответить
  8. Можете ли Вы обяснить как пользоваться MySql? В интернете документации много, но вот самые первые шаги в моем случае нигде не описаны. Везде написано только с учетом того, что должен стоять на компьютере windows nt (2000) и сервером (IIS). У меня стоит apache. Что нужно для MySql?
    С уважением, Виталий

    ответить
  9. Пожалуйста, подскажите! Где можно лучше всего почитать и понять механизмы работы session в PHP4 в полном объеме. Честно говоря документацию я проработал, но работать с ними так и не научился из-за отсутствия опыта в этих делах. Хотелось бы видеть примеры использования в системах аутентификации пользователей с использованием cookies и без них, а также механизм шифрования пароля и данных при передаче от пользователя к серверу. И еще правильно ли заявление, что session является наиболее эффективным механизмом (я не имею ввиду маленькие проекты типа домашних страничек, а более серьезные разработки). Спасибо. АМ.
    ответить
  10. Просьба не посылать читать FAQ (или подскажите где взять по емейлу), как поднять Apache под Мандрейковский Linux 7.2 (возможно я неправильно выбрал инсталяцию - рабочая станция, а не сервер)
    ответить
  11. Я сделал посылку так:
    mail(trim($mails[$i]), $subject, $text, "Content-type: text/plain; charset=koi8-r\nFrom:
    czar_admin@mtu-net.ru\nReply-To: czar_admin@mtu-net.ru\n\n");
    Здесь: берется адрес отсыльщика из файла, потому стоит на всякий случай трим.
    Потом идет текст. потом контенты и фромы с реплеями. в книге написано было, что лучше контент писать в начале и в конце головы сообщения. результат: приходит письмо (текст перекодирован в кои8-р). в нем. в адресе "от кого" приходит не мой мейл, а мейл хоста. в теме пусто.
    Текст приходит в кодировке , не определяемой БАТом и Оутлуком. Приходится перекодировать в кои8-р и все читается. Но это мне не нравится. То есть контент - не работает. И контент, и фром, и реплайТо приходят в теле письма. Почему так?

    ответить
  12. Просьба не посылать читать FAQ (или подскажите где взять по емейлу),
    как поднять Apache под Мандрейковский Linux 7.2

    ответить

    Ответы на заданные вопросы:
  1. Где можно найти электронные книги по PHP???

    Ответ:

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

  2. В рассылке я читал что если php подключен как модуль к apache то он работает быстрее. Вопрос: Где можно скачать этот модуль для win32? И как его встроить в apache? Заранее благодарю

    Ответ:
    Модуль идет в релизе PHP под win32 библиотека называется php4apache.dll и лежит в папке sapi.
    Чтобы запустить PHP как мод апача пропиши строчку
    LoadModule php4_module f:/usr/local/php/sapi/php4apache.dll
    в httpd.conf, скопируй эту библиотеку в ./apache/modules и запускай сервер. подцеписаь библиоткеа или нет ты сможешь узнать из надписи в окен DOS при запуске Apache. С подцепленным PHP это выглядит след. образом :
    Apache/1.3.19 (Win32) PHP/4.0.4pl1 running...


    См. www.php.net скачивается дистрибутив в виде zip архива. Там есть инструкции по установке (файл INSTALL) - как раз в виде модуля. Павел, pavel@imail.dc.ukrtel.net

    хм...на http://www.php.net качаешь последнюю версию php, только полной комплекции (это около 4-5 мег), а не урезанную (700Кб), там есть модуль расширения. Встраиваем след. образом:
    1.в файле настройках apache
    (apache/conf/httpd.conf) добавляем строчки:
    LoadModule php4_module c:/usr/local/php4/sapi/php4apache.dll
    AddType application/x-httpd-php .php4 .php3 .php
    2.копируем файлы из дистрибутива:
    php.ini-distr переименовывай в php.ini и копируй в c:\windows\ туда же (с:\windows\) копируй файл php4ts.dll вроде бы и все... MaximatoR (maximator_@rambler.ru) http://www.fwmaster.f2s.com

    Пропиши в Апаче:
    LoadModule php4_module c:/php/sapi/php4apache.dll
    AddType application/x-httpd-php .php4
    Перезапусти Апач. Должно работать. Прверено на PHP.4.01/pl1. если чего не понятно - могу выслать вариант настройки php.ini и httpd.conf. l0g_err@xakep.ru

    Привет! Зайди на www.php.net - и качай себе, там же и документацию найдешь.


  3. Как в php подключить библиотеки для работы с изображениями и флеш?

    Ответ:
    в файле php.ini (c:\windows\) ищи строчки:
    extension_dir = ./
    её нужно заменить на тот путь, где у тебя находятся расширения, у меня в папке c:\usr\local\php4\extensions\ значит пишешь:
    extension_dir = c:\usr\local\php4\extensions\
    далее, если ты хочешь GD и SWF библиотеку, то у тебя в этой папке должны быть файлы: php_gd.dll и php_swf.dll если нет последнего, то ищи его здесь http://reality.sgi.com/grafica/flash/
    Опять же в файле php.ini ищешь строчки:
    ; Dynamic Extensions ;
    и т.д. далее перечислены модули, которые нужно загружать... убирай комментарии перед ними и все. MaximatoR ( maximator_@rambler.ru )

    В каталоге C:\windows, C:\winnt, короче, там, где у Вас сидит Win32 есть файл php.ini. Там есть куча строчек extension = .... Раскомментарьте extension=php_gd.dll, укажите правильный extensions_dir в этом же файле, чуть выше и перезапустите HTTP сервер.Павел, pavel@imail.dc.ukrtel.net


  4. У меня Apache под Win, как можно добавить FTP опции ?

    Ответ:

    Если Вы имеете в виду обеспечение возможности закачивания HTML-страничек, картинок и пр. на сервер через FTP, то сам по себе Apache таких услуг не предоставляет :-(. Ставьте автономное приложение FTP сервера (например, FTP-Serv-U) и закачивайте на здоровье. Павел, pavel@imail.dc.ukrtel.net

  5. Скажите, пожалуйста, добавляет ли www.f2s.com баннер.

    Ответ:
    Спасибо всем, кто ответил. Правильный ответ - НЕТ, но новых пользователей пока не регистрируют.

  6. почему у меня при использовании команды $counter=fgets($fp,10); - считывание идет до ближайшего перевода каретки, дальше нет. - filesize($filename) дает одно значение, а считать возможно только меньше Спасибо, Илья mis421@chat.ru

    Ответ:
    Если задать $counter = fgets($fp, 1); - будет читать вообще по одному символу. Нужную длину - и проблем не будет, надеюсь. Если же хочешь именно по 10 байт, тогда делай так:
    $fp = fopen ("/path/to/file.ext", "r");
    while (!feof ($fp)) { $buffer = fgets($fp, 10); echo $buffer; }
    fclose ($fp);
    С уважением, Аедрей eav@hotmail.ru

  7. Есть вопрос по поводу организации поиска на РНР. Значит так. Мне достался сайт на корректировку. Есть список авторов, есть их статьи, у одного одна, у другого несколько. Весь настоящий вариант исполнен в виде: поисковая форма в ней необходимо вводить точные фамилии, а по ним открывается заведомо готовый файл, представляете какой бардак. Как индексировать, как добавлять и т.д. атас. Подскажите как реализовать лучше всего, в базу не впихнуть так как статьи некоторые очень громоздкие. может лучше через обычные текст-файлы, но как осущ. поиск. Подскажите.С уважением Андрей.

    Ответ:
    Привет! Попробуй поискать на cgi.ru и т.д. готовые варианты... А если каждая статья находиться в отдельном файле, попробуй в начале добовлять что-то, типа "~~#~~ Автор ~~#~~". Потом во всех файлах каталога искать эту строчку и выводить результат на экран.

    Значит делаешь статьи в виде обыкновенных HTML-файлов и добавляешь такие META-теги
    <META author="фамилия"> а поиск делаешь так: читаешь файл, проверяешь его МЕТА-тег если фамилия совпадает то выводишь ссылку на статью.Наверное лучше будет добавить еще и
    <META title="название"><META description="описание"> так как тебе скорее всего прийдется выводить список статей искомого автора и с этимим тенами будет легче искать Этот алгоритм я прочитал на http://www.softm.vov.ru Только там они проверяют мета-теги через регулярные выражения, а вообще-то есть специальная команда get_meta_tegs(filename), которая возвращает ассоциативный массив мета-тегов

    Ну я представляю наилучший вариант так:
    в базе хранишь не сами статьи, а только пути к текстовым файлам. поиск по текстовым примерно так:
    $string='....' ; строка для поиска
    $q->query("SELECT * FROM entries");
    while(next_record()) {
    $q->f('text_file');
    $text=file($q);
    $rating=0;
    while (list ($m, $line) = each ($text)) {
    $rating=$rating+substr_count($text,$string);
    }
    вот тут у тебя хранится в $rating число встреченных $string во всем тексте, далее их можешь записывать в массив с именем файла, потом отсортировать и выдашь на экран результат поиска...
    }
    Это только набросок, на самом деле-то там такая каша получается...если что пиши, поможем. MaximatoR (maximator_@rambler.ru) http://www.fwmaster.f2s.com

    А ты попробуй впихнуть в базу не статьи, а ссылки на них. Так нельзя сделать?


  8. На одном хосте мне дали доступ к MySql то есть дали пароль и остальные параметры. Как я понимаю веб интерфейса там нет и отсюда вопрос куда мне вводить все эти примочки для того чтобы создать
    базу данных, таблицу и всякие строчки. Если можно ответьте пожалуста по подробнее!


    Ответ:
    Привет! Есть такой скриптик "MyPHPAdmin" - он все это качаственно умеет делать, жаль ссылку не нашел, но ты попробуй поискать где-нибудь на cgi.ru...

    Отпиши мне на мыло - пришлю тебе русский вариант phpMyAdmin с пояснениями по установке и настройке. l0g_err@xakep.ru

    скачай сам PhpMyAdmin и будет у тебя веб оболочка... MaximatoR (maximator_@rambler.ru)


  9. Как из изображения, загружаемого пользователем через форму, сгенерить маленькие превьюшки?
    Спасибо! С уважением, Анна

    Ответ:
    Как вариант, воспользуйся функцией GetImageSize(<путь к картинке>,<массив параметров>).
    Элемент 0 массива содержит значение ширины картинки в пикселях, Элемент 1 - высоту.
    Для создания тумба просто подели эти значения на одно и тоже число и не забудь округлить.
    :
    <?
    ...
    ...
    $pic_size = GetImageSize("pic/picture.jpg");
    ...
    ...
    $scale_factor = <Необходимое число>;
    $small_w = round($pic_size[0]/$scale_factor);
    $small_h = round($pic_size[1]/$scale_factor);
    ...
    ...
    ?>
    ...
    <img src="pic/picture.jpg" width="<?echo"
    $small_w";?> height="<?echo"$small_h";?>>, где
    ...
    ...

    Здравствуйте, Анна! В php есть библиотека работы с изображениями (см. Image functions в фирменной доке). Почитайте их, может чего и найдете... Не забудьте подключить ее в php.ini - extension=php_gd.dll, иначе будут сплошные ошибки. Павел, pavel@imail.dc.ukrtel.net

    Анна, попробую на примере это объяснить, но это достаточно длинный код, тут только обрывки...
    $im=@ImageCreateFromJPEG($file); для примера
    $sx = ImageSx ($im);
    $sy = ImageSy ($im);
    nsx=sx/5;
    nsy=sy/5; картинка в 5 раз меньше...
    $imn = ImageCreate (nsx, nsy);
    $imn = ImageCopyResized (imn, im, 0, 0, 0, 0, nsx, nsy, sx, sy)
    ImageJPEG($imn);
    Вроде бы все, это только набросок, это не код, так то еще нужно сделать множество проверок, типы файла там, размеры максимальные, загрузка файла и запись тумблашки... это же все зависит только от того для чего это делается ? Если что пиши. MaximatoR (maximator_@rambler.ru) http://www.fwmaster.f2s.com


  10. У меня PHP 4.0.3pl1, бинарники под win32 (брал на php.net), WinNT и apache. Подключил библиотеку php_gd.dll (для работы с GIF); при вызове любой функции этой библиотеки выдается сообщение
    "<functionName>: No GIF support in this PHP build", где <functionName> - имя вызываемой функции. Неужели PHP под win32 не умеет работать с GIF? Тогда зачем же включать в бинарники эту библиотеку?


    Ответ:
    Скорее всего дело в версии GD. Вот что известно мне (из описания версии 1.33): NOTE: This version produces PNG and JPEG format, not GIF format. The last version to produce GIF was version 1.19.
    Если я не прав - опровергните, возьму на вооружение. С уважением, Андрей ( http://www.eav.vov.ru )


    Так как они вырезали поддержку GIF из последних версии, зато там есть PNG, JPEG, SWF, WBMP... MaximatoR (maximator_@rambler.ru)

  11. В выпуске 7 вы сказали, что в PHP есть функция виртуал - аналог апачевских "include virtual". Если не трудно, опишите точно ее, поскольку второй совет по указанию в served-parced типов файлов PHP ни к чему не приводит (точнее приводит к полному отказу загрузки страниц - их предлагает сохранить на диск).Заранее благодарен Василий Ясный.

    Ответ:
    Люди, читайте мануалы, там все написано (правда по английиски)  Итак функция следующая
    int virtual (string filename) На практике я ее не использовал поэтому могу рассказать только то что вычитал из мануала virtual() - эквивалент <!--#include virtual...--> используется для вставки CGI-скриптов, или .shtml файлов или чего хотите пропустить через Apache Что касается CGI-скриптов то они должны правильно генерировать заголовок (header) Насколько я понял работает это все если ваш PHP работате как модуль Apache В мануале это файл function.virtual.html


    Собственно, вот перевод из php-manual: >Virtual() - фнкция сервера Apache, эквивалентная ...include virtual в >рамках модуля mod_include. Дальше не буду переводить, но смысл, скорее всего именно в твоем Apache (он вообще правильно .shtml файлы и скрипты PHP понимает?). Проверь httpd.conf - все что внутри блока Document root: Options Indexes Includes FollowSymLinks MultiViews (или в этом роде).
    И, разумеется, тип .shtml должен быть явно описан как server-parsed. Удачи, Андрей (http://www.eav.vov.ru )


    вот они include(), require(), require_once(), include_once(), readfile(), и virtual(). описание найдешь в помоши... MaixmatoR (maximator_@rambler.ru)

  12. WIN98+APACHE.1.3.6.+PERL+MYSQL+PHP4
    Не работает функция crypt()
    Warning: crypt() is not supported in this PHP build in d:\usr\local\www\shop\admin\index.php on line 36
    Как установить эту функцию?


    Ответ:
    В таком наборе софта crypt() действует только в версиях PHP до 4.0b3 включительно. Выше - только под _NIX-ами. (Это - мой небогатый опыт). Если кто-то сумел-таки прикрутить соответственную dll-шку под более свежие версии PHP - пусть поделятся. Удачи, Андрей ( eav@hotmail.ru )

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


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

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

PHP для всех! Программируем сами.            <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php1.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами.            <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php2.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами. <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php3.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами. <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php4.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->

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

  1. http://tweak.tut.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевого друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!

  2. http://www.webclub.lv - Латвийский Клуб Веб-мастеров Наш сайт предназначен для всех кто творит и хочет творить Интернет. Мы предлагаем информацию, помощь и примеры по дизайну. Довольно обширная коллекция скриптов. Статьи, учебники и многое другое.

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

http://virtual.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


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

Рассылки Subscribe.Ru
Программируем на PHP - вопросы и ответы
Новости сайта Виртуальный Брест
Оптимизация и настройка компьютера
Кроссворды еженедельно

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


Разное

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


автор рассылки Андрей Кухарчик



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное