php
9 заметок
терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

ПОХАПЭ

16 лет назад в категории php

Смотрю движки основных форумов (потом расскажу, зачем).

Смерть, пиздец, жопа, убивать, убивать, убивать.

PHP-программисты бывают двух видов:

1. Те, кто не умеют программировать вообще. Специально для таких же был придуман BASIC. «Сделай инструмент для идиота, и только идиот захочет им пользоваться».

2. Те, кто умеют программировать на других языках. И только на них. Если утрировать, то когда ты узнаешь в PHP-коде привычный ассемблерный синтаксис, волосы в анусе становятся дыбом и седеют.

3. Болк.

Первые и вторые — дураки, просто вторые более изобретательные.

Ну, чтобы не быть голословным: при изобилии говна в таблицах — форум vBulletin создает всего-то чуть более сотни разных табличек, настройки форума они хранят в виде бинарной маски в цыфирке.

Причем в int(10), ага.

В чем профит-то? Место не экономится. Скорость выборки роли не играет. Работать с маской все равно придется, как со строкой, а не на побитовом уровне, decbin возвращает число в двоичной системе без ведущих нулей, и так далее.

(Мне тут уже подсказали, что это я на самом деле не умею работать с бинарными масками в PHP).

0

Гениальные идеи

20 лет назад в категориях программирование php

Вот, бывает, придумаю гениальную идею и спрашиваю у хакира Болка — хорошая ли идея, будет ли работать?

Оказывается, что идея хорошая и более того — хакир Болк уже эту идею пару раз использовал.

Сразу возникают противоречивые чувства:

1. Досада. Почему про такие вещи нельзя прочитать почти нигде? Нет, я серьезно: куда ни глянь — всюду обсуждения уровня «как передеть переменную выше. например, то где она должна определится на 20 строке, а то где она включается в код на 30 строке, как ее можно передать выше?». На самом деле понятно, почему: 90% людей — идиоты. Всегда и везде. Оставшиеся 10% заняты тем, что молча работают. Если они начнут что-то объяснять людям, то в 90% случаев это будет метание бисера перед свиньями. КПД = 10% — это как-то грустно.

2. Радость. Как хорошо быть умным, придумывать умные вещи и узнавать, что они работают.

Вот, такие дела.

В конце не будет никакой морали.

0

Skinnable-cacheable

20 лет назад в категориях вебдев php

Придумал неболшую идею. Наверняка не я первый.


Идея заключается в том, что страницы кэшируется. Но при этом хочется сделать их Skinnable. То есть чтобы можно было «шкурки» менять. Как кэшировать в таком случае — не совсем понятно.

Простой и забавный (полу)выход. Везде в документах пишем и документы, естественно, кэшируем полностью. И выдаем кэш. А вот css.php — нет, не кешируем и выдаем в нем нужную css-ку в зависимости от содержимого cookies-ов.

0

ЧПУ и PHP (revisited)

21 год назад в категориях вебдев php

ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 5 сентября 2000 года заметку «ЧПУ и PHP». За эти три года термин довольно неплохо раскрутился.

За эти годы очень многие ссылались на эту заметку, поэтому я взял на себя труд переписать ее, добавив еще несколько способов сделать ЧПУ и убрав всякий мусор. Итак...

В принципе, ничего нового и оригинального в идее понятного УРЛа нет. Про это писал и Лебедев, и другие товарищи. Вообще, мне всегда нравились УРЛы такого, например, вида: php.resourceindex.com/Complete_Scripts/Guestbooks/

Итак, как это сделать в домашних условиях?

Способ раз

Вообще, самая первая мысль — это создавать для каждой заметки поддиректорию с соответствующим именем и помещать в нее index.html, то есть сделать так, чтобы по адресу spectator.ru/technology/php/user_friendly_urls лежал бы реальный файл. Разумеется, так дело не пойдет.

Способ два

Думаем дальше. Раз страница не существует, то она выдает 404. Так что вторая идея — прописать в фале .htaccess страницу, которая будет выдаваться при ошибке 404, а уже эта страница будет смотреть на текущий УРЛ и выдавать нужный документ

То есть, в .htaccess пишем:


------------------------------------
ErrorDocument 404 /index.php3
ErrorDocument 401 /index.php3
------------------------------------

Пользователь набирает spectator.ru/technology/php/user_friendly_urls, такая страница не найдена, и загружается файл index.php3. Дальше — все просто. Переменная $REQUEST_URI дает нам адрес вызываемой страницы (в данном случае это будет /technology/php/user_friendly_urls), вывести на экран соответствующий документ — дело техники.

Этого мало. В некоторых браузерах и с поисковиками такой фокус не пройдет: страница 404 будет выдавать соответствующий код, и страницы индексироваться не будут. Поэтому надо, чтобы страница, которая грузится в случае ошибки 404, изменяла бы код ошибки и сигналила, мол, все ОК, есть такая страница:

Итого: прописываем в .htaccess страницу, которая, собственно, за все отвечает (у меня это index.php3). В этой странице пишем php-скрипт, который работает с $REQUEST_URI, шлет заголовок «http/1.0 200 Ok» и отображает то, что надо.

Плюсы: Очень простой способ. Работает почти везде.
Минусы: При таком способе нельзя постить содержимое формы на несуществующие псевдоурлы. И если в Апаче ведется лог 404-ых ошибок, то он будет забит.

Способ три

Для этих (и не только) целей есть специальный модуль в Апаче, который называется mod_rewrite. Он позволяет «переписывывать урлы», то есть, преобразовывать их «на лету» по правилам, которые вы ему опишите.

Это очень мощный модуль, и если вы в нем разберетесь, то сможете творить чудеса. Сам я до сих пор довольно мало с ним работал, поэтому читайте документацию, благо, что ее полно.

Module mod_rewrite URL Rewriting Engine.
A Users Guide to URL Rewriting with the Apache Webserver.
Модуль Apache mod_rewrite.
Mod_rewrite для чайников.

Плюсы: Очень мощный способ.
Минусы: Может не хватить мозгов. На хостинге может быть не установлен этот модуль.

Способ четыре

Основан на директиве FilesMatch, которая в Апаче является core feature. Все просто. Пишем опять же в .htaccess

Action throw /index.php


ForceType throw


ForceType application/x-httpd-php

После этого все УРЛы, которые подпадают под условие «^([^.]+)$», (то есть все урлы, в которых не содержится точка) будут передаваться на index.php. Вы можете написать свое условие, разумеется.

Подробности: тут, тут или тут.

Плюсы: Простой и удобный способ.
Минусы: Говорят, что для того, чтобы ForceType работал, php должен быть подключен к апачу в виде модуля. Если php вызывается, как обыкновенный CGI — ForceType работать не будет.

0
Мой инструмент по развитию силы воли и прививанию полезных привычек.

Автоопределение кодировки

Задача: текст может быть или в Koi или в Win. Нужно, чтобы он автоматическии переводился в Win, если нужно.
Есть множесто решений, данное претендует на определенную элегантность и, разумеется, на предельную краткость. Текст, естественно, должен быть длиннее 3 букв. if (substr_count($res, «П»)>substr_count($res, «o»)) $res=convert_cyr_string ($res, k, w); Принцип действия, думаю, понятен?.. (еще 61 слово)

Простое кэширование страниц

Простое кэширование страниц. Для чайников. На PHP. Кэширование — замечательная вещь. Часто (теперь — почти всегда) страницы на сайтах генерятся динамически. Это теперь модно. Однако же — в реальности — почти всегда страница собирается заново гораздо чаще, чем она изменяется. Грубо говоря, мы опубликовали новый документ, и при каждом обращении к нему он заново считывается, скажем, из базы данных, заново прогоняется через шаблон и прочее и прочее. (еще 516 слов)

Templates

Вот еще один правильный взгляд на шаблоны (курсив мой): "I’m basically advocating a «template engine» that uses PHP code as it’s native scripting language. I know, this has been done before. (еще 170 слов)

MySql vs Files

Ну, если про хранение текстовой информации еще можно поспорить — и совершенно справедливо — то некоторые вещи меня удивляют. Использовать MySql для хранения картинок... и выдавать их так... $data = @mysql_result($result, 0, «imageinfouser»);
header(«Content-type: $type»);
echo $data; Мне даже сказать по этому поводу нечего..

Функция

Функция переводит относительные урлы в абсолютные. Использование: $text=R_absurl ($text, $host);
где $host — адрес вашего сайта. (еще 112 слова)