5Июн/100
Запаковываем проект в один JAR для запуска на Hadoop
Сегодня потребовалось запаковать проект на Java в один JAR файл. Нужно мне это для того, чтобы не мучиться с подключением сторонних jar и их дистрибьюции на кластер Hadoop Map Reduce. Да и к тому же, параметр -libjars из документации у меня почему то не работал.
4Сен/096
Декодируем gzip страницу на PHP
Недавно при разработке одного сайта, столкнулся с проблемой декодирования на PHP полученной через curl страницы, сжатой в gzip.
Допустим у нас есть код, который делает запрос через php-CURL с возвращением заголовков:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); //curl_setopt ($ch, CURLOPT_VERBOSE, 2); // Отображать детальную информацию о соединении curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0'); //Прописываем User Agent, чтобы приняли за своего curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращать результат curl_setopt ($ch, CURLOPT_HEADER, 1); // Наши заголовочки curl_setopt ($ch, CURLINFO_HEADER_OUT, 1); // Где то наткнулся на этот параметр, решил оставить curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($ch); |
В итоге получаем в $result нашу страницу с заголовками сервера. Проверим, закодированна ли она и дешифруем её, если нужно:
if (strstr($result,"Content-Encoding: gzip")) { $result = preg_replace("/(.*)Content\-Encoding: gzip\s+/isU","",$result); $result = gzinflate(substr($result, 13)); } |
Вот и всё. Если Вам нужно просто gzip контент расшифровать, то можно в substr заменить 13 на 10. (+3 из-за \n после заголовков).