Октябрь 2010, 09 @ 09:23
PHP
var_dump((bool) print_r(${strrev('SLABOLG')} = 1, $GLOBALS[1]{1} == (unset) b"1") == "00");
У Болка. Это как бы сложный пример логики PHP.
В примере можно прочитать три вещи.
Первое, если вы его не осилили, то не прочтёте нихуя. Нихуя тоже результат, хотя противоположный реальному (true же не нихуя).
Если осилили, то откроется вполне очевидное: 1) PHP мягок и этим хорош; 2) кто-то слишком много выёбывается. Странно, что Болк не написал своё любимое "у нас в Яндексе".
Август 2008, 21 @ 06:14
Мастерю
PHP
ZendFramework
2 комментария
ZendFramework - говно.
P.S. Zend_Service_Audioscrobbler тоже говно на кучу строк.
Мой шикарнейший вариант, короткий, как писька у японца:
<?
class Service_LastFM {
////////////////////////////////////////////////////////////////////////////////
function __call($method, $params){
list($type, $that) = explode('_', strtolower($method), 2);
$url .= 'http://ws.audioscrobbler.com/1.0/';
$url .= $type.'/'.urlencode($params[0]).'/';
$url .= (is_string($params[1]) ? urlencode($params[1]).'/' : '');
$url .= $that.'.xml';
$url .= (is_array($query = end($params)) ? '?'.http_build_query($query) : '');
$status = reset(get_headers($url));
$status = trim(strstr($status, ' '));
unset($this->error);
if ($status == '200 OK')
return simplexml_load_file($url);
$this->error = $status;
}
////////////////////////////////////////////////////////////////////////////////
}
?>
Пользовать так:
<?
$lastfm = new Service_LastFM;
print_r($lastfm->user_profile('RJ'));
print_r($lastfm->user_artistTags('RJ', array('artist' => 'Metallica')));
print_r($lastfm->track_artistTags('Metallica', 'Enter Sandman'));
print_r($lastfm->album_info('Metallica', 'Ride the Lightning'));
?>
И всяко разно.
В случае успеха класс вернёт SimpleXML обьект. В противном случае в переменной $lastfm->error будет хидер с ощибкой (400 Malformed API Call (пример этой ошибки), 404 Not Found и т.д.).