- Информация о материале
- Категория: PHP
- Просмотров: 19354
cURL это PHP расширение библиотеки libcURL, инструмент при помощи которого Вы можете симулировать веб браузер. К примеру это может быть отправка формы для авторизации на сайте и получения результирующей страницы. В этой статье я собираюсь показать вам 10 невероятных вещей, которые Вы можете сделать с помощью PHP и CURL.
Обратите внимание, что некоторые из методов, показанные здесь, могут быть использованы для методов "черной" оптимизации а также для парсинга сайтов и кражи информации. Целью данной статьи является только ознакомление, пожалуйста, не используйте любой из фрагментов ниже в незаконных целях.
1 - Обновление своего фейсбук статуса
Хотите автоматически обновлять facebook статус, но не хотите заходить на facebook.com, вводить каждый раз логин и пароль, и, делать это со страниц своего сайта? Просто сохраните следующий код на вашем сервере, определить переменные, и вуаля!
<?PHP
/*******************************
* Facebook Status Updater
* Christian Flickinger
* http://nexdot.net/blog
* April 20, 2007
*******************************/
$status = 'Новый статус';
$first_name = 'YOUR_FIRST_NAME';
$login_email = 'YOUR_LOGIN_EMAIL';
$login_pass = 'YOUR_PASSWORD';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php');
curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_exec($ch);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php');
$page = curl_exec($ch);
curl_setopt($ch, CURLOPT_POST, 1);
preg_match('/name="post_form_id" value="(.*)" \/>'.ucfirst($first_name).'/', $page, $form_id);
curl_setopt($ch, CURLOPT_POSTFIELDS,'post_form_id='.$form_id[1].'&status='.urlencode($status).'&update=Update');
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php');
curl_exec($ch);
?>
Дальше интереснее
- Информация о материале
- Категория: PHP
- Просмотров: 9118
Продолжая тему работы сайтов на нескольких поддоменах. К примеру если у Вашего сайта информация распределена так, что часть лежит на одном субдоменее другая на другом. К примеру доска объявлений, каждый город находится на своем поддомене третьего уровня. Это все очень удобное разделение. Но есть один минус. В таких сайтах нельзя применять ajax запрос на другой домен. Если домен влияет лишь на название, и определение категории, а вся логика одна на все поддомены, то все в порядке. Но если Вы к примеру объединили две разные доски, на разных городах, то общение между ними ajax'ом может стать проблемой.
- Информация о материале
- Категория: PHP
- Просмотров: 6065
Как получить кросс субдоменные cookies. Вы используете куки на вашем сайте, но когда посетитель приходит на www.sitename.ru и sitename.ru то cookies будут разные для обоих! Это потому, что, в сущности, www это просто поддомен. Обычно это делается так
setcookie('CookieName', 'Values', time() + 3600, '/');
Но для кроссдоменных кук нужно дописать в самом конце вызова .mydomain.ru, точка впереди
setcookie('CookieName', 'Some Values', time() + 3600, '/', '.mydomain.ru');
Тогда куки будут доступны на всех поддоменах Вашего домена, в том числе и www
- Информация о материале
- Категория: PHP
- Просмотров: 14319
При работе автоматических парсеров, возникает естественная необходимость подобрать к тексту его ключевые слова. Это необходимо для поисковой оптимизации статьи.
К примеру мы спарсили объявление с доски, в нем продается Apple Iphone 4s, подержанный. Небольшой текст описания с характеристиками и цена.
Из этого текста необходимо выделить ключевые слова. Заполнять их при автоматическом парсинге будет накладно. Поэтому нужно использовать скрипты для выборки ключевых слов.
Для начала, нужно составить список всех слов употребляемых в тексте, с сортировкой по частоте их употребления. Откинув короткие слова (меньше 5-ти знаков) и различные вспомогательные части речи, типа местоимений и наречий.
- Информация о материале
- Категория: PHP
- Просмотров: 15485
Представляю Вашему вниманию класс для пакетной обработки файлов jimage. Класс позволяет делать тумбики изображений, создавать коллаж из десятка картинок, и применять различные gd эффекты к изображениям. А также комбинировать все эти действия.
Класс написан мной для конкретного проекта, и с тех пор успешно применяется во других. Исходный код на гитхабе.
Покажу, как использовать на примере создания тумбиков или если говорить научным языком маленьких копий изображений.
<?php
define('ROOT',dirname(__FILE__)); // для работы скрипта должна быть объявлена
// эта константа содержащая корень сайта
include "class.jimage.php";
$ji = new jimage();
$ji->thumb(ROOT.'/img/1.png',ROOT.'/img/mini_1.png',100);
элементарно и просто. У метода есть ряд настроек, первой идет путь до изображения. Второй путь до итогового тумбика, 3 и 4 это размеры по ширине и высоте соответственно, 5 - ый параметр это флаг, который может иметь несколько значений
USE_HOWSET или '' - и ширина и высота должны быть заданы, размер итогового тумбика задается строго, изображение обычно искажается
USE_WIDTH или 'w' - задается только ширина итогового тумбика, высота считается пропорционально по заданному изображению
USE_HEIGHT или 'h' - тоже только по высоте
USE_AUTO или 'a' - по умолчанию, задаем и высоту и ширину, если входящее изображение вертикальное то размеры тумбика расчитываются так, чтобы все изображение влезло в заданные пределы.
Поясню все варианты на примерах, возьмем за основу изображение красавицы Хайден Панеттьери

