Тег «PHP»

Радости и проблемы PHP 5.3

PHP 5.3 радует всеми своими последними изменениями. Правда, руки ещё не дошли до всяких замыканий и нэймспэйсов. Зато внушительный прирост производительности уже успел оценить. Вот только ветка 5.3 пока сырая и необходимо обновляться при всех новых апдейтах.

Вот, например, сегодня часа три промучался с решением проблемы, при которой во время ajax-запроса сервер не хочет отдавать значение $_SERVER['HTTP_X_REQUESTED_WITH']. При чём это было абсолютно рандомно, только для некоторых запросов, и никакие попытки дебага не помогали. Я, конечно, допускаю возможность того, что я сам где-то ошибся, но обновление с 5.3.2 до 5.3.3 сразу же решило проблему…

07.09.2010. Раздел: PHP. Ключевые слова: , .

Коллекция php-скриптов

Сегодня до двух ночи сортировал свою коллекцию никому ненужных скриптов. Есть у меня хобби — скачивать всякие php-скрипты, чтобы подтырить идей-посмеяться над индусами-позавидовать умениям (нужное подчеркнуть). Так вот насобиралась огромная куча этого хлама (особенно много с phpclasses) и я сортировал его по функционалу. В итоге получилось 30 папок (ajax, db, http, mail и др.) на 120 метров (правда, более 80 метров занимают фреймворки всякие… толстый Zend такой толстый).

А вот на домашнем локальном компе есть ещё большая сборка скриптов, которые я качал, когда ещё только начинал изучать php. Помню тогда были популярны всякие каталоги, типа woweb.ru, где можно было откопать отобранный шлак. До сих пор сохранились раритеты, писанные ещё на php3… Хотя среди них есть те, на которых я учился — надо будет написать пост про это :)

08.01.2009. Раздел: PHP. Ключевые слова: , .

Фильтрация данных в PHP

Решил повозиться с php-шными функциями фильтрации данных, которые появились только с версии 5.2.0. Мои впечатления все время двигаются по кривой от «ого и уау» до «ыыы мдзя». Все-таки разработчики пишут язык не для людей. Или я просто не этот самый людь? Может кто-нибудь мне обяснит, какой filter или может быть flag необходимо поставить для поля, чтобы использовать filter_input_array для проверки заполнено ли поле вообще. Это не предусмотрено? Но тогда получается, что толку от этих фильтров мало… Или уже поздно и я много выпил?

17.05.2008. Раздел: PHP. Ключевые слова: , .

Список стран

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

В итоге, немного повозился и сделал свою табличку, где, кроме названий на двух языках, есть обозначения доменов и статус этих стран — целиком независимые или государства с другим статусом. Итого — 253 штуки. Короче, если надо — пользуйтесь (MySQL), найдете ошибки — сообщайте.

Скачать файл countries.sql.gz (5,93 Kb)

19.03.2008. Раздел: Программирование. Ключевые слова: , , , .

MyOpenID: продолжение

Тестирование моего нового OpenID-провайдера выявило 2 глюка. Во-первых, тех строчек, что я первоначально вписал для идентификации сайта, оказалось недостаточно. Справка на MyOpenID мне это подтвердила и выдала правильный вариант :)

<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://slaver.myopenid.com/" />
<link rel="openid2.local_id" href="http://slaver.myopenid.com" />
<link rel="openid2.provider" href="http://www.myopenid.com/server" />
<meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=slaver.myopenid.com" />

А второй глюк был связан с маленькой и популярной php-библиотечкой для OpenID-авторизации — Simple OpenID PHP Class. Там есть метод поиска необходимых тегов и атрибутов в коде подтверждаемого сайта — HTML2OpenIDServer. В нем все кавычки и порядок атрибутов жестко прописаны в регулярном выражении, поэтому теги с одинарными кавычками не читались и система писала ошибку. Так, например, было с сайтами на blogger, о чем сообщил alexey. В итоге было принято решение прицепить нормальную библиотку для парсинга страниц, чтобы избежать возможных вариантов проблемы. Морозов мне подсунул старый, но работающий класс с тривиальным названием HtmlParser. Даже линк на него не могу дать — сайт мёртв. Тем не менее, все теперь работает замечательно. Будьте бдительны! :)

14.02.2008. Раздел: Интернет. Ключевые слова: , .

Обработка ЧПУ не через .htaccess

Сидел вчера весь день дома, т.к. простудился. Сидел и работал над маленькими проектиками. И вдруг решил написать класс для ЧПУ, который бы мог заменить несколько строчек в .htaccess, где можно было лишь оставить одно правило RewriteRule . /index.php [L]. Конечно, полностью универсального варианта для любых ссылок не придумаешь, но для моего вариант вполне подходит.

class _getLinks {
	function _parser(){
		$furl = parse_url($_SERVER[’REQUEST_URI’]);
		$url = explode(’/’, $furl[’path’]);
		$url = array_filter($url, "strlen");
		$url = array_filter($url, "urlencode");
		$url = array_reverse($url);
		return $url;
	}

	function _getCategory() {
		$res = $this->_parser();
		return $res[1];
	}

	function _getTitle() {
		$var = $this->_parser();
		$res = preg_split("/[.\\s]/",$var[0]);
		return $res[0];
	}
}

Можно использовать ссылки вида: http://server.com/category/subcategory/title.html и получать, соответственно, url категории и url новости, которые уже можно прогонять по базе…

P.S. Подумал немного… Абсолютно бесполезная и ненужная фигня получилася :(

18.02.2007. Раздел: PHP. Ключевые слова: .

Работаем-с

Уже несколько дней сижу на работе в офисе. Как прекрасно, что почти все тут меня устраивает. Правда, пока очень сложно разбираться с новой для меня CMS. Но дальше-то будет еще сложнее :)

А тем временем приятная новость — Google не только вернул в базу мой сайт Ultra-Music, но и посчитал, наконец, его PageRank. Теперь «четвёрочка» :)

26.01.2007. Раздел: Из жизни. Ключевые слова: , , , .

Интересная работа — курсовая работа

Вот и подвалило мне очень много работы, хоть и интересной, но не оплачиваемой. А называется это все — курсовая работа. Сегодня переосмыслил предварительный план и решил делать все «с нуля». И хоть ВУЗ мой не технический, но придется много программировать. Структура разрабатываемой системы будет уникальной. Короче, можно все это назвать системой управления контентом, хотя тут куда глубже…

Не знаю, получится ли все в срок написать и реализовать желаемое, но это будет большой шаг вперед для моего факультета, который чуть ли не считается передовиком в гуманитарных IT-техноголгиях, но отстал от мировых тенденций уже на много лет…

21.11.2006. Раздел: Из жизни. Ключевые слова: , .