Заливка файлов на радикал PHP

10 Comments

Если нет желания забивать сервер картинками, то данный скриптец поможет. Он грузит картинку с веба (урл) на радикал, возвращает адрес картинки на радикале.

$postdata = "upload=yes&F=&URLF=".$imagelink."&O=yes&M=640&JQ=85&J=yes&IM=7&VM=180&R=0&VE=yes&V=Увеличить&X=&FS=";
$page = FetchUrl("http://www.radikal.ru/action.aspx", $postdata, NULL, NULL, NULL);
preg_match("!id=\"input_link_1\" value=\"(.*?)\"!si", $page, $imageUrl);
$imageUrl = $imageUrl[1];

FetchUrl моя универсальная функция для курла, я ее под все подряд юзаю, поэтому там много левого кода. При желании можно поудалять половину.

function FetchUrl($url, $postvars, $timeout, $ref, $blank){
 sleep($timeout);                         
 echo @date("r")." fetching $url\r\n";              
 $ch = curl_init();   
 if(isset($postvars)){
 echo @date("r")." $postvars\r\n";                    
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
 }
//        curl_setopt($ch, CURLOPT_PROXY, $proxy);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       
//        curl_setopt($ch, CURLOPT_HEADER, true);           
 curl_setopt($ch, CURLOPT_TIMEOUT,15);               
 curl_setopt($ch, CURLOPT_ENCODING, 'gzip');         
 curl_setopt($ch, CURLOPT_COOKIEJAR, "c1.txt");    
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6 FirePHP/0.3");     
 curl_setopt($ch, CURLOPT_COOKIEFILE, "c1.txt");     
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
 curl_setopt($ch, CURLOPT_URL, trim($url));
 curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
 curl_setopt($ch, CURLOPT_REFERER, $ref);                                                                  
 $result = curl_exec($ch);     
 if($blank == "1"){    
     $result = preg_replace("/\n/", "", $result);
     $result = preg_replace("/\r/", "", $result);
 }
 curl_close($ch);                                                                                        
 return $result;                                                                                              
 }

Многопоточность в php

14 Comments

Оффициальной нет, сразу скажу. Есть только многочисленные костылики. Примеры, в основном, будут полезны в сео софте.

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

Полезные регулярки.

6 Comments

Несколько полезных примеров регулярок, которые можно скопипастить по мере нужды. Также небольшая памятка по составлению и функциям.

Примеры шаблонов

Выражение Совпадает
foo Слово foo
^foo Начинается с foo
foo$ Кончается с foo
^foo$ Точное совпадение с foo
[abc] a, b или c
[a-z] Любая строчная буква
[^A-Z] Любой  символ не в верхнем регистре
(gif|jpg) Совпадает либо gif либо jpeg
[a-z]+ Одна  или более строчных букв
[0-9.-] Любое число, точка или минус
^[a-zA-Z0-9_]{1,}$ Любое слово, в котором как минимум одна буква, число или _
([wx])([yz]) wy, wz или xy, xz
[^A-Za-z0-9] Любой символ (не буква и не цифра)
([A-Z]{3}|[0-9]{4}) Совпадает три буквы или четыре цифры

More

Скрипты для морфологического анализа текста.

No Comments

Под систему – проект от яндекса, бесплатный – Mystem.
PHP – phpmorphy, про него также тут, на phpclub и у деды Гринвуда

Количество подписчиков фидбернера числом.

1 Comment

<?php
$feed = 'https://feedburner.google.com/
api/awareness/1.0/GetFeedData?uri=ИмяФида';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $feed);
$feed = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($feed);
$fb = $xml->feed->entry['circulation'];
echo $fb;
?>

результат в сайдбаре

32700:parse error. not well formed

No Comments

На заметку.
Иногда выскакивает при постинге через XML-RPC.
Причина в неверно оформленном отправляемом запросе. У меня выдавалась еще и потому, что кодировка отличная от UTF-8 была

Регулярка для многострочного HTML кода

No Comments

Например, если

<TAG1>

<TAG2>

<TAG3>

$pageHTML = preg_replace("/\n/", "", $pageHTML);
$pageHTML = preg_replace("/\r/", "", $pageHTML);

Отобразить PSD файл при помощи PHP

3 Comments

Есть оказывается, специальный класс для этого. Совместим с PHP4/5. Скачать тут

Используется так

<?php
// Send header to client browser
header("Content-type: image/jpeg");
// Includes the requested class
include_once('classPhpPsdReader.php');
// Finally display the PSD on the screen
imagejpeg(imagecreatefrompsd('yourPsdFile.psd'));
?>
 More

Твиттер-плагины и хаки для вордпресса

8 Comments

Как вывести последний твит, сделать на лету короткий урл и многое другое в этом посте.
С этим мотоциклом что-то совсем подзабил на все дела в вебе, в том числе и на блог.
Про то, как вывести последний твит и как добавить ссылку tweet this уже писал.
Сейчас все вместе, в упорядоченном виде.
More

БД быстрее файлов?

10 Comments

Вроде везде говорится, что да.  При стандартном открытии файлов в пхп возможно и быстрее, но ведь можно считывать содержимое файла через системный вызов при помощи cat.

Сделал два файла, один подключался к базе, считывал заголовок этого блога, выводил его. Второй считывал файл в переменную и далее грепом выбирал заголовок. Результаты не в пользу бд: разброс значений от 0,047 мс до 0,128мс. Файлы стабильно показывали 0,05мс.
Интересовала скорость простого запроса, без сложных условий выборки, хотя и по файлам через системный вызов можно grep’ом отфильтровать как надо.
More

Older Entries