Меня долго не было… т.к я был занят(
Но с этого дня я буду сново активно писать в блоге)
Блог
ilyas-ahmatov
Как узнать, доступен ли определённый веб сайт? cURL поможет ответить на данный вопрос. Данный скрипт можно использовать совместно с планировщиком для мониторинга сайта.
Замените URL в строке 3 на тот, который вам нужен. Скопируйте код на свою страницу, и станет известно, доступен ли указанный сайт.
< ?php
if (isDomainAvailible(''))
{
echo "Работает и готов отвечать на запросы!";
}
else
{
echo "Ой, сайт не доступен.";
}
//Возвращает true, если домен доступен
function isDomainAvailible($domain) {
//Проверка на правильность
if(!filter_var($domain, FILTER_VALIDATE_URL
{
return false;
}
//Инициализация curl
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
//Получаем ответ
$response = curl_exec($curlInit);
curl_close($curlInit);
if ($response) return true;
return false;
}
? >
Функция очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents().
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}С помощью PHP и cURL очень просто получить статус определённого пользователя. Данную информацию можно выводить в блоге.
function get_status($twitter_id, $hyperlinks = true) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, ";);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$src = curl_exec($c);
curl_close($c);
preg_match('/< text >(.*)< \/text >/', $src, $m);
$status = htmlentities($m[1]);
if( $hyperlinks )
$status = ereg_replace("[[:alpha:]]+://[^< >[:space:]]+
[[:alnum:]/]", '< a href=http://go.blog.ru/?;%5C%22%5C%5C0%5C%22" >\\0< /a >',$status);
return($status);
}Использовать функцию очень просто:
echo get_status('catswhocode');Если вам нужно узнать, читает ли ваши твиты определенный пользователь, то можно задействовать API Twitter. Данный скрипт выводит true, если два пользователя, указанные на строчках 18 и 19, находятся в дружеских отношениях на Twitter. В противном случае возвращается false.
function make_request($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
/* Получаем соответствие */
function get_match($regex,$content) {
preg_match($regex,$content,$matches);
return $matches[1];
}
/* Персоны для проверки */
$person1 = 'phpsnippets'; $person2 = 'catswhocode';
/* Отправляем запрос на twitter */
$url = '';
$format = 'xml'; /* Проверка */ $persons12 = make_request($url.'.'.$format.'?user_a='.$person1.'&user_b='.$person2);
$result = get_match('/< friends >(.*)< \/friends >/isU',$persons12);
echo $result;
// Возвращаем "true" или "false"Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.
function getImages($html) {
$matches = array();
$regex = '~(.*?)\.jpg~i';
preg_match_all($regex, $html, $matches);
foreach ($matches[1] as $img) {
saveImg($img);
}
}
function saveImg($name) {
$url = ''.$name.'.jpg';
$data = get_data($url);
file_put_contents('photos/'.$name.'.jpg', $data);
}
$i = 1;
$l = 101;
while ($i < $l) {
$html = get_data(''.$i.'/');
getImages($html);
$i += 1;
}Пересчет валюты достаточно простое дело, но курсы достаточно часто изменяются, поэтому приходится использовать сервисы, подобные Google, для получения текущих значений курса пересчета. Функция currency() получает 3 параметра: исходная валюта, целевая валюта и сумма.
function currency($from_Currency,$to_Currency,$amount) {
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$url = ";q=$amount$from_Currency=?$to_Currency";
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$rawdata = curl_exec($ch);
curl_close($ch);
$data = explode('"', $rawdata);
$data = explode(' ', $data['3']);
$var = $data['0'];
return round($var,2);
}Как определить размер определенного файла, расположенного на другом сервере? Поможет следующая функция. Она получает 3 параметра: URL файла, и (если требуется) имя пользователя и пароль.
function remote_filesize($url, $user = "", $pw = ""){
ob_start();
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
if(!empty($user) && !empty($pw)) {
$headers = array('Authorization: Basic ' . base64_encode("$user:$pw"));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$ok = curl_exec($ch);
curl_close($ch);
$head = ob_get_contents();
ob_end_clean();
$regex = '/Content-Length:\s([0-9].+?)\s/';
$count = preg_match($regex, $head, $matches);
return isset($matches[1]) ? $matches[1] : "unknown";
}PHP имеет библиотеку FTP library, но также можно использовать cURL для загрузки файлов на FTP сервер. Вот рабочий пример:
// Открываем файл
$file = fopen("/path/to/file", "r");
// URL содержит большую часть нужной информации
$url = ";;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Устанавливаем опции curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));
// Устанавливаем режим ASCII (то есть - файл текстовой)
curl_setopt($ch, CURLOPT_FTPASCII, 1);
$output = curl_exec($ch);
curl_close($ch);
Данный урок подготовлен для Вас командой сайта
Источник урока:
Перевел: Сергей Фастунов
Даа…мне нужно уже идти спать! Хочу поскорее завтра, чтобы закончить страницу регистрации! Кстати насчёт социальной сети) Скорее всего я закончу его только через месяца 2! Надеюсь это будет не так! Хочется надеяться…
Мой лучший друг считает, что будет круто если я сделаю фон у сайта тёмно-зелёным! Незнаю как Вы, но лично я считаю, что это убожество! Не так ли??
Сегодня я приступил к созданию социально сети! Настроение конечно не айс и поэтому многое я сегодня не сделаю! Но расчитываю завтра закончить страницу регистрации, так что ждите!
Читате мой блог… Ильяс.