PHP сообщество

любители кода :)

Текущий класс в статическом методе

Bloged in Без рубрики от admin Четверг Август 21, 2008 at about 5:56 пп

Здравствуйте, уважаемые участники!

Речь идёт о наследовании статических методов в PHP. В связи с этим у меня возник следующий вопрос.

Каким образом в статическом методе можно получить имя класса не того, где метод объявлен, а того, из которого он вызван? Имеется в виду, что в родительском классе объявлен статический метод, а в дочернем он вызван.

crossposted '[info]'ru_oop

Показать файлы в каталоге

Bloged in Без рубрики от admin Пятница Август 15, 2008 at about 8:53 дп

Показываю клиенту файлы в каталоге через
$d = @dir($baseddr);
if ($d !== false)
{ while($entry=$d->read())
ну и так далее.

Но хочется показывать не только имена файлов, но и их размер и дату заливки.
Логично делать это через filesize() и filectime().
Однако при количестве файлов больше 3000 начинаются жесткие тормоза.
Что можно сделать? Совать все это в табличку БД не хочется, чтобы не генерить сущности.

OS FreeBSD, Apache 2, PHP 4.4.

Проблемы с сохранением файла

Bloged in Без рубрики от admin Четверг Август 14, 2008 at about 11:18 пп

В общем, проблема вкртаце такая. Есть сайт с которого качаются видеофайлы. Физически видеофайлы качаются с другого сайта. Есть скрипт download.php, который делает следующий финт для закачки файла со второго сервера:

header(”Location:http://<второй_сайт>.ru/clips/”.$vdata[0]);

Это все работает, но проблема в том, что, например для MP4 при клике в FireFox этот файл начинает открываться в виде текста, прямо в браузере. А при использовании «сохранить как» сохраняется как download.php

При попытке использовать header(”Content-type: application/pdf”);
header(”Content-Disposition: attachment; filename=hzz.mp4″); и разных вариаций ничего не меняется. Я так понимаю, эти инструкции работаю только при закачке локального файла?

Есть ли выход из этой ситуации?

Upd: Проблема решилась прописыванием нужных расширений в файле mime.types на втором сервере. Первый сервер оказался не причем.

Багтрекеры

Bloged in Без рубрики от admin Четверг Август 14, 2008 at about 3:52 пп

А кто какой багтрекер использует и может быть посоветует?

Из тех, что щупал:
- Bugzilla, тяжелая и неудобная до невозможности;
- Mantis, уродливый до невозможности;
- FogBugz, удобный, но платный и довольно дорогой (199$ за девелоперский акк);
- Trac, легкий, опенсорсный, имеет интеграцию с svn, не всегда удобный, но терпимо.

Скрипт файл-менеджера

Bloged in Без рубрики от admin Четверг Август 14, 2008 at about 11:35 дп

Требуется скрипт файл-менеджера на php.
Через который можно управлять файлами, загруженными через ftp, + создавать им алиасы - ссылки для загрузки по http, смотреть статистику по скачанному добру : )

 

PR страницы

Bloged in Без рубрики от admin Четверг Август 14, 2008 at about 10:35 дп

Здравствуйте!
Сразу прошу прощения за возможно ламерский вопрос. Я еще новичок в веб-программировании.
Передо мной стоит такая задача: есть несколько ссылок на разные страницы, нужно вывести примерно такую табличку:

№ | URL | тиц сайта | PR страницы

С тиц я разобрался. Остается PageRank. Вопрос состоит в следующем: как средствами php5 узнать PR страницы по ее URL.
Знаю, что есть много ресурсов, где можно ввести URL руками и получить PR, но это, опять же, нужно делать вручную. Мне же нужно автоматизировать этот процесс.

И снова о кодировках и mod_rewrite()

Bloged in Без рубрики от admin Среда Август 13, 2008 at about 10:48 пп

Добился я значит ЧПУ. Возникла теперь такая проблемка. В скрипте из базы выбираются сообщения, тема и обратный адрес отправителя. Скрипт генерит из них ссылки видa

[Error: Irreparable invalid markup ('<a […] name'].".html'>') in entry. Owner must fix manually. Raw contents below.]

Добился я значит ЧПУ. Возникла теперь такая проблемка. В скрипте из базы выбираются сообщения, тема и обратный адрес отправителя. Скрипт генерит из них ссылки видa
<code>
<a href='messages/".$message['name'].".html'>".$message['name']."</a>
</code>
modrewrite перебивает ссылку так:
<code>
RewriteRule ^messages/([A-z0–9]+)/([0-9]+)\.html$ newmessage.php?id=$2&name=$1
</code>
В viewmessage.php по $_GET['name'] происходит выборка всех сообщений пользователя с указанным именем. Все работает прекрасно, если в имени пользователя нет кириллицы. Все написано под UTF-8, мускулу тоже задана дефолтная кодировка UTF-8, и при соединении с базой "SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'" посылается.
Как я понимаю, нужно написать функцию - перекодировщик из транслита в кириллицу и наоборот, и ей обрабатывать запросы к базе, как при добавлении, так и при выборке. Или есть менее проктологический вариант решения? Подскажите тогда.
UPD. Спасибо, решилось добавлением А-я в реврайтовое правило. Но испытания по букве "ш" и "И" провалились.

Видео с легендарной PHPConf 2008

Bloged in Без рубрики от admin Среда Август 13, 2008 at about 4:38 пп


слайды можно посмотреть на http://phpconf.ru
Отзывы о конференции можно-почитать - добавить тут