Показаны сообщения с ярлыком php. Показать все сообщения
Показаны сообщения с ярлыком php. Показать все сообщения

четверг, 24 января 2013 г.

Настройка отправки почты с сайта

Для того что бы с сервера приходили письма не от имени www-data, а например от no-replay@домен.ру, нужно следующее:

в файле
 /etc/php5/apache2/php.ini

находим секцию
sendmail_path = '/usr/sbin/sendmail -t 
и меняем ее на
sendmail_path = '/usr/sbin/sendmail -t -i -fno-reply@my.domain.com -Fno-reply'

Если хотите отправлять почту с использованием exim4, то меняем строку:


sendmail_path = /usr/sbin/exim4 -t -i -fno-reply@my.domain.com -Fno-reply

Как выглядел исходник письмо

ДО изменений:

Delivered-To: alex.kostrukov@gmail.com
Received: by 10.14.95.7 with SMTP id o7csp83458eef;
Thu, 24 Jan 2013 04:07:53 -0800 (PST)
X-Received: by 10.152.144.38 with SMTP id sj6mr1578233lab.48.1359029273462;
Thu, 24 Jan 2013 04:07:53 -0800 (PST)
Return-Path: <www-data@my.domen.com>
Received: from my.domen.com ([144.76.4.246])
by mx.google.com with ESMTPS id l8si26588559eem.225.2013.01.24.04.07.53
(version=TLSv1 cipher=RC4-SHA bits=128/128);
Thu, 24 Jan 2013 04:07:53 -0800 (PST)
Received-SPF: neutral (google.com: 144.76.4.246 is neither permitted nor denied by best guess record for domain of www-data@my.domen.com) client-ip=144.76.4.246;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 144.76.4.246 is neither permitted nor denied by best guess record for domain of www-data@my.domen.com) smtp.mail=www-data@my.domen.com
Received: from www-data by my.domen.com with local (Exim 4.72)
(envelope-from <www-data@my.domen.com>)
id 1TyLav-0004zQ-Ks
for alex.kostrukov@gmail.com; Thu, 24 Jan 2013 16:07:49 +0400
Date: Thu, 24 Jan 2013 16:07:49 +0400
Message-Id: <E1TyLav-0004zQ-Ks@my.domen.com>
To: alex.kostrukov@gmail.com
Subject: тема письма
X-PHP-Originating-Script: 33:mail.php
From: ot.kogo@mail.ru
тело письма

ПОСЛЕ изменений

Delivered-To: alex.kostrukov@gmail.com
Received: by 10.14.95.7 with SMTP id o7csp84047eef;
Thu, 24 Jan 2013 04:20:54 -0800 (PST)
X-Received: by 10.14.184.134 with SMTP id s6mr5724235eem.43.1359030053936;
Thu, 24 Jan 2013 04:20:53 -0800 (PST)
Return-Path: <no-reply@my.domen.com>
Received: from my.domen.com ([144.76.4.246])
by mx.google.com with ESMTPS id n5si41266875eeo.165.2013.01.24.04.20.53
(version=TLSv1 cipher=RC4-SHA bits=128/128);
Thu, 24 Jan 2013 04:20:53 -0800 (PST)
Received-SPF: neutral (google.com: 144.76.4.246 is neither permitted nor denied by best guess record for domain of no-reply@my.domen.com) client-ip=144.76.4.246;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 144.76.4.246 is neither permitted nor denied by best guess record for domain of no-reply@my.domen.com) smtp.mail=no-reply@my.domen.com
Received: from www-data by my.domen.com with local (Exim 4.72)
(envelope-from <no-reply@my.domen.com>)
id 1TyLnZ-00050o-43
for alex.kostrukov@gmail.com; Thu, 24 Jan 2013 16:20:53 +0400
Date: Thu, 24 Jan 2013 16:20:53 +0400
Message-Id: <E1TyLnZ-00050o-43@my.domen.com>
To: alex.kostrukov@gmail.com
Subject: тема письма
X-PHP-Originating-Script: 33:mail.php
From: ot.kogo@mail.ru
тело письма




пятница, 2 ноября 2012 г.

OAuth vk.com API и использование методов


Описание создания авторизации Oauth vk.com api

Файл index.php

<? require_once("config.php");
 if(isset($_SESSION['access_token'])) {
    $uid = $_SESSION['user_id'];
    // получим профиль пользователя
    $resp = file_get_contents('https://api.vkontakte.ru/method/getProfiles?uids='.$uid.'&fields=uid,first_name,last_name,nickname,photo_big,photo_rec,sex&access_token='.$_SESSION['access_token']);
    $data = json_decode($resp, true);
print_r($data);
} else {
    require_once("redirect.php");
}?>

Файл config.php
<?
// id приложения
define("CLIENT_ID", "ID_ПРИЛОЖЕНИЯ");
// защищенный ключ
define("SECRET", "СЕКРЕТНЫЙ_КЛЮЧ");
// куда перенаправим пользователя после авторизации
define("OAUTH_CALLBACK", "callback.php");
// настройки доступа
define("SCOPE", "groups,friends");
// путь к папке со скриптами
define("PATH", "http://ДОМЕН/ПУТЬ/ДО/СКРИТПОВ/");
define("GID", "ID_ПРИЛОЖЕНИЯ");
// включим сессию
session_start();
?> 
Файл login.php
<?require_once("config.php");
$link = 'http://api.vk.com/oauth/authorize?client_id='.CLIENT_ID.'&redirect_uri='.PATH.OAUTH_CALLBACK.'&display=popup&scope='.SCOPE.'&response_type=code';
?>
<button onclick="location.href='<? echo $link ?>';" style="padding:10px; font-size:14pt;">Войти ВКонтакте</button>
<br />
Файл redirect.php
<?
require_once("config.php");
//перенаправляем на авторизацию
//header('Location: http://api.vk.com/oauth/authorize?clien ... type=code');
header('Location: '.PATH.'login.php');
?> 
Файл callback.php
<?
require_once("config.php");
// получили параметр code
if($_REQUEST['code']) {
    // получаем access_token
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.3521/886; U; en) Presto/2.4.15");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, "https://oauth.vk.com/access_token?client_id=".CLIENT_ID."&code=".$_REQUEST['code']."&client_secret=".SECRET."&redirect_uri=".PATH."callback.php");
    $answer = json_decode(curl_exec($ch), true);
    if (curl_errno($ch) != 0)
        die('curl error:' . curl_error($ch));
    $text_answer = print_r($answer, true);
    /*if (isset($answer['error_description']))
        echo '<p style="color:red;display:inline;">' . $answer['error'] . ': ' . $answer['error_description'] . '</p><br>';
    else
        echo '<p style="color:green;display:inline;">token: ' . $answer['access_token'] . '</p><br>';
    echo "Debug:<br><textarea cols=100 rows=10>" . $text_answer . "</textarea>";
*/
    if($answer['access_token']){
        // запишем данные в сессию
        $_SESSION['access_token'] = $answer['access_token'];
        $_SESSION['user_id'] = $answer['user_id'];
        // переадресуем пользователя на нужную страницу
        header('Location: '.PATH.'index.php');
        exit();
    }
}
?> 

четверг, 5 апреля 2012 г.

Скрипт обновления форм статистики

Задача:  Мониторить появление новых или обновленных форм статистики, и если таковые находились, сообщать об этом пользователям.

Решение:

Небольшой скрипт на php, который парсит страницу с обновлениями, сравнивает формы с имеющимися, и с учетом потребности пользователей, рассылает сообщения о появлении обновленной формы, и ссылку на установку этой формы.

//Источник
> $html3 = file_get_contents('http://www.kalugastat.ru/statrep/DocLib2/Forms/Main.aspx');
//Регулярный выражение, которые вытаскивают со страницы, название формы, ссылку на скачивание, и дату публикации.
preg_match_all('/(?<NOBR>)[\d]{2}[\.][\d]{2}[\.][\d]{4}[\s]*[\d]*[\:][\d]*(?=<\/NOBR>)/', $html3, $date);
preg_match_all('/(?<=vb2\">)[^<]*(?=<\/TD><TD)/', $html3, $name);
preg_match_all('/(?<=\sUrl=\"\/statrep\/DocLib2\/)[\w,\d,\-,\_]*(?=.rar\"\s)/', $html3, $outlink);
//Объединение всех полученных данных в один массив
$url4[0] = $outlink[0]; //files
$url4[1] = $date[0]; //dates
$url4[2] = $name[0]; //names

//Массив пользователей, и форм пользователей.
$massform=Array("0"=> array("0" => "user1@domain.ru", "1" => array( "0" => "5-З")),
                "1"=> array("0" => " user2@domain.ru ", "1" =>  array( "0"=> "1-ТС (вывоз)", "1"=> "цены производителей")),
                "2"=> array("0" => " user3@domain.ru ", "1" => array( "0"=> "1-Инвест", "1"=> "П-2","2"=>"инвестиц", "3"=>"Форма 11", "4"=> "ИАП")),
                "3"=> array("0" => " user4@domain.ru ", "1" => array( "0"=> "1-РП", "1"=>"3-информ", "2"=>"П-3","3"=>"П-6")),
                "4"=> array("0" => " user5@domain.ru ", "1" => array( "0"=> "1-ТЭП","1"=>"автотранспорт", "2"=>"11-ТЭР","3"=>"4-ТЭР", "4"=> "24-Энергетика")),
                "5"=> array("0" => " user6@domain.ru ", "1" => array( "0"=> "2-ТП", "1"=>"4-ОС","2"=> "7-Травматизм")),
                "6"=> array("0" => " user7@domain.ru ", "1"=>array("0"=>"1-цены приобретения", "1"=>"65-автотранспорт","2"=>"Баланс производственной мощнос$
                            "4"=>"П-4", "5"=>"1-натура", "6"=>"1-предприятие","7"=>"1-Т (условия труда)", "8"=>"1-ДАП","9"=>"57-Т","10"=>"П1"))
                );
//Проход по массиву полученных данных
for($ik=0; $ik<22; $ik++)
{
$urlreport = "http://www.kalugastat.ru/statrep/DocLib2/".$url4[0][$ik].".rar";
$path = "/var/www/statupd/".$url4[0][$ik].".xml";
//Проверка, если форма уже существует, то пропускать, если нет, то идем дальше
if(!file_exists($path)) {
//Проход по массиву пользователей
for($j=0; $j<count($massform); $j++)
  {
$str = implode(",",$massform[$j][1]);
//Если в пользовательских формах есть совпадение с формой, найденной на сайте, то скачиваем форму, распаковываем, копируем в нужное место.
if(strpos($str,substr($url4[2][$ik],0,10)))
{
exec("echo 'Новая форма ".$url4[2][$ik]." от ".$url4[1][$ik]." для ".$massform[$j][0]."' | sendxmpp -s 'Statistacs update' alexey@ermolino");
exec("wget -N -O /var/www/statupd/".$url4[0][$ik].".rar $urlreport  > /dev/null 2>&1");
exec("unrar x /var/www/statupd/".$url4[0][$ik].".rar /var/www/statupd  > /dev/null 2>&1");
exec("rm /var/www/statupd/".$url4[0][$ik].".rar");
exec("cp /var/www/statupd/".$url4[0][$ik].".xml /home/router/share/files/statupd/".$url4[0][$ik].".xml");
//Отсылаем сообщение пользователю, о том что нашлась обновленная форма, и даем ему ссылку на установку этой формы.
exec("echo 'Обновите форму статистики ".$url4[2][$ik]." от ".$url4[1][$ik].". Установить - http://192.168.1.2/statbat.php?f=".$url4[0][$ik].".xml' $
        }
  }
}
}?> 
Скрипт установки формы - это простой скрипт, который формирует bat файл, запуская который пользователь устанавливает себе новую форму.


<?
//Устанавливаем header, для того, чтобы файл сохранялся, а не выводился на экран
header("Content-Disposition: attachment; filename=statbat.cmd");
$f = $_GET['f'];
?>
copy "\\192.168.1.2\!share\files\statupd\<?=$f?>" "%PROGRAMFILES%\NIPIstatinform\Формы статотчетности\Data\<?=$f?>";
?>

вторник, 13 сентября 2011 г.

php Отправка почты с сайта с вложениями

Задача
Интернет магазин. покупатель выбирает товар, выбирает способ доставки и оплаты.
Если способ доставки выбран "Почтой России" - отправлять менеджерам сайта сообщение с  заполненным почтовым бланком ф.116.
Если выбран способ оплаты "Наложенный платеж" - отправлять заполненный почтовый бланк ф.112.

Решение

Для начала нужно создать эти бланки. Код бланков описывать не буду. (скачать их можно тут html файлы, в формате php для принятия post'данных).
112.php и 116.php - каждый бланк будет принимает GET данные.

Обращаться к ним следующим образом:
http://****/112.php?fio1=".$_POST['firstname']."&fio2=".$_POST['lastname']."&fio3=".$_POST['thirdname']."&adr1=".$_POST['area'].",".$_POST['city']."&adr2=".$_POST['address'].",&pst=".$_POST['postindex'])
Бланки готовы, и ждут обращения с GET 'данными.
Переходим к функции отправки почты.
Создаем файл mail.php в который передаются данные формы. (В форме пользователь заполняет свои данные, ФИО, почтовый адрес, телефон.. описывать форму не буду.)

Для начала нужно сформировать запрос обращения к бланкам:

$file = str_replace(" ", "%20", "http://****/112.php?fio1=".$_POST['firstname']."&fio2=".$_POST['lastname']."&fio3=".$_POST['thirdname']."&adr1=".$_POST['area'].",".$_POST['city']."&adr2=".$_POST['address'].",&pst=".$_POST['postindex']);  
$file2 =str_replace(" ", "%20", "http://****/116.php?fio1=".$_POST['firstname']."&fio2=".$_POST['lastname']."&fio3=".$_POST['thirdname']."&adr1=".$_POST['area'].",".$_POST['city']."&adr2=".$_POST['address'].",&pst=".$_POST['postindex']);   
Пробелы обязательно заменить на %20

Далее проверим, выбрана ли доставка почтой, и выбран ли способ оплаты - наложенным платежом. и создаем массив файлов $files.
if($_POST['pays'] == 3)
   { $files = array('112.html' => file_get_contents($file), '116.html' => file_get_contents($file2));}
elseif($_POST['pays'] == 2)
   { $files = array('116.html' => file_get_contents($file2));}
else $files = "";
112.html и 116.html  - это имена создаваемых файлов, для последующего вложения к письму.

Непосредственно сама функция отправки

среда, 26 мая 2010 г.

Статистика интернет трафика за месяц iptables

Данный скрипт отображает статистику использования интернет трафика за мясяц, по дням и по пользователям.
Скрипт сбора информации с iptables описан здесь
Выглядет это так:


Код скрипта:

четверг, 20 мая 2010 г.

Статистика iptables (Продолжение)

Для мониторинга трафика каждые 15 минут, выводится общий накопленный трафик за день, и разница, на сколько увиличелся объем скаченного трафика за каждые 15 минут.
 Код файла статистики предыдущего сообщения, в котором выводится накопленный трафик за весь день.  (форму для выбора дня/месяца/года я не стал копировать, её можно взять в предыдущем сообщении)

Выглядет это так:


вторник, 18 мая 2010 г.

Раздать интернет в локальную сеть + статистика интернета

Имеем:
Роутер -> Ubuntu server -> свич -> локльная сеть

Интернет настроен в роутере(ip адресс роутера - 192.168.2.1), сетевые настрйоки следующие:
auto lo eth1 eth0 eth0:1
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
addres 192.168.0.1
netmask 255.255.255.0

allow-hotplug eth0:1
iface eth0:1 inet static
addres 192.168.1.2
netmask 255.255.255.0

iface eth1 inet static
addres 192.168.2.3
netmask 255.255.255.0
Перезагружаю сеть
/etc/init.d/networking restart
Интернет есть, можно раздавать
Настройка NAT
Раздавать инетрент буду только определенным ip адресам (аналогично и по mac адресам)
создаю скрипт internet

четверг, 4 февраля 2010 г.

Просмотр почты Яндекс.Мейл

Скрипт для захода на Yandex@mail и просмотра новых сообщений.
Функция установки кукисов
function CreateCurl($siteUrl, $cookieFile, $postData=array()) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $siteUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
if (count($postData)) {
$dataToSend = array();
foreach ($postData as $key=>$value) {
$dataToSend[] = $key.'='.$value;
}
curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $dataToSend));
}
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
return $ch;
}

$cookieFile = tempnam('', ''); 

Курс валют: Сегодня, Завтра

По работе необходимо следить за курсов валют usd, eur,
написал небольшой скрипт, который получает курсвалют с яндекса(на нем раньше обновления появляются, чем на sbrf.ru)

$file = implode("",file("yandex.ru"));
preg_match_all('/(?<=>)[0-9]{2}[\,][0-9]{4}(?=<\/strong><\/td>)/', $file, $out);

for($j=0; $j<4; $j++)
{
$out1[] = str_replace(",",".",$out[0][$j]);
}

$date2 = "0".date("d")+1 ."/".date("m")."/".date("Y");

$ee=round($out1[3]-$out1[2],4);
$dd=round($out1[1]-$out1[0],4);

if($dd>0) {$d = "+"; $color = "blue";} else {$d = " "; $color="red";}
if($ee>0) {$e = "+"; $color2 = "blue";} else {$e = " "; $color2="red";}

if($out1[2]!="" || $out1[3]!="")
{
echo "<u>Сегодня: <b>".date("d/m/Y")."</u></b><br>   USD = <font size='+2'>".$out1[0]."</font><br>   EUR = <font size='+2'>".$out1[2]."</font>\n<br><br>";
echo "<u>Завтра: <b>".$date2."</b></u><br>   USD = <font size='+2'>".$out1[1]."</font>   <font color='$color'>$d".$dd."</font><br>  ";
if($ee != -$out1[2]) echo " EUR = <font size='+2'>".$out1[3]."</font>   <font color='$color'>$d".$ee."<br>  ";
else echo " EUR = Неизвестно\n<br>";
}
else
{
echo "<u>Сегодня: <b>".date("d/m/Y")."</u></b><br>   USD = <font size='+2'>".$out1[0]."</font><br>   EUR = <font size='+2'>".$out1[1]."</font>\n<br><br>";
echo "<u>Завтра: <b>$date2</b></u><br>  ";
echo "USD = Неизвестно
   EUR = Неизвестно";
}
?>

воскресенье, 15 ноября 2009 г.

Автоматизация скачивания торрентов

Очень мне хотелось, чтобы новые серии любимых сериалов закачивались автоматически, а мне оставалось только их просмотреть =)

Ниже преведен пример реализации этой задачи, его можно модернизировать использую curl для авторизации на торренте либо использовать куки, у меня пока не получилось. Поэтому использую поиск по рсс ленте торрента, скачиваю торренты, и редактирую их, вставляю свой uid в торрент файл.

Для того чтобы авторизованно захадить и скачивать торрент файлы с трекеров, можно воспользоватся кукисами, тогда строка wget будет иметь вид
wget -nc --append-output=download_torrents.txt --load-cookies=cookies.txt --content-disposition http://host?id=654321&key=123456

получить погоду с nepogoda.ru

Гисметио замучал: перехожу на nepogoda.ru
вывод в коньках можно взять с прошлой статьи, и подправить если нужно
В результате должно получится так:









Получаем погоду для выбранного города
#!/usr/bin/php
Проходим циклом по всей ленте и разбиваем получаемые данные по массивам
$i=0;

foreach ($rss->channel->item as $item) {
$masstitle[] = $item->title;
$massdesk[] = $item->description;

$citydate[] = explode(":", $masstitle[$i][0]);
$new[] = array_reverse(explode(", ", $massdesk[$i][0]));

$tmp_citydate[] = explode(",", $citydate[$i][1]);
$tmp_citydate2[] = explode(" ", $tmp_citydate[$i][1]);
$tmp_citydate2[$i][0] = $tmp_citydate[$i][0];

$tmp_month[] = explode(".", $tmp_citydate2[$i][1]);
$i++;
}
Для приятного отображения месяцев создаем массив месяцев

пятница, 14 августа 2009 г.

ТВ программа в Меню и notify_send


Программа с Яндекса, отображает несколько программ в ближайший час
Файл tv.php
#!/usr/bin/php
 ?php
$file = implode("",file("http://tv.yandex.ru"));

preg_match_all('/(? = span class="location">Телеканал ).*(?= \/span>)/',$file, $matches3);
preg_match_all('/(? =id=\d\d\d\d\d\d\d\d">)[0-9][:][0-9][0-9]|[0-9][0-9][:][0-9][0-9](?= \/a>)/',$file, $matches1);
preg_match_all('/(? = \/span> span class="summary">).*(?= \/span> span class="location">)/', $file, $matches2);

for($i=0; $i count($matches1[0]); $i++)
{
if($matches1[0][$i]  = 9) {$tim = "0".$matches1[0][$i];}
else $tim = $matches1[0][$i];
$text = $text.$tim." - ".$matches3[0][$i]." - ".strip_tags($matches2[0][$i])."\n";
}

//echo $text;
$fil = fopen("tv.txt","w+");
$fw=fputs($fil,$text);
fclose($fil);
?>
Файл tv.sh - который положим в меню
#!/bin/bash
if ping -c 1 62.148.128.1 | grep '64 bytes'> /dev/null
then
php tv.php
fi
cat tv.txt | grep `date +%H:` |cut -d = -f 1 >>tv_sort.txt
notify-send "Сейчас по ТВ" "`cat tv_sort.txt`" -t 16000 -i /путь/до/файла/иконки
rm tv_sort.txt &

ТВ программа для кабельного, с сайта www.nsk.tvoe.tv, с возможностью установки нужных каналов:

воскресенье, 24 мая 2009 г.

Получить погоду с gismeteo.ru

1 Вариант - получать погоду стандартными методами conky rss
${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_title 0} - ${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_desc 01}
${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_title 1} - ${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_desc 1}
${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_title 2} - ${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_desc 2}
${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_title 3} - ${rss http://informer.gismeteo.ru/rss/99837.xml 45 item_desc 3}

2 Вариант - парсить xml, и выводить нужные данные строкой


В результате должно получится так:



вторник, 3 марта 2009 г.

Получаем телепрограмму

Скрипт скачки телепрограммы tv.sh
#!/bin/bash
if [ -f "/home/simpson/scripts/tv/index.html"]
then
rm ~/scripts/tv/index.html
# rm ~/scripts/tv/tv.html - если вывод в файрфокс
fi
wget -E -P ~/scripts/tv http://tv.yandex.ru

php ~/scripts/tv/tv.php
for chanal in Первый Россия Центр НТВ Культура Спорт ТНТ Домашний РЕН СТС ТВ3 ДТВ Звезда
do
echo $chanal
cat ~/scripts/tv/tv.txt | grep $chanal | grep `date +%H`| cut -d = -f 1
#Для удобства, можно в файрфокс вывести
#echo "<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>"
#echo "
" $chanal "
"
#cat /home/simpson/scripts/tv/tv.txt | grep $chanal | cut -d = -f 1
#echo "
"

#done > ~/scripts/tv/tv.html
#firefox ~/scripts/tv/tv.html

done

пятница, 10 октября 2008 г.

Топ сайтов в поисковике

Этот скрипт собирает данные о месте заданных сайтов в гугле.

Создаю массив запросов и массив сайтов, которые будем выделять из ответа гугла

$str_zapros_mas = array("","");
$sait_mas = array("Массив сайтов ");
Устанавливаем глубину поиска в результатах ответа гугла
$max_str=5;
Посылаем гуглу все запросы из массива, при этом каждый запрос кодируем в урл
for($i_zap = 0; $i_zap
Открываю страницы ответов на запросы, тут ньюанс, для первой странице гугла один вид строки запроса, а для пследующих - другой, учитываю это:

Установка LAMP

Конфигурация:
  • Apache 2 - Web сервер
  • MySQL 5 - Сервер баз данных
  • PHP4/5 - PHP CGI
  • phpMyAdmin - Web-управление для MySQL
Установка Apache + PHP
aptitude install apache2 php5 libapache2-mod-php5
Конфигурационный файл apache хранится в /etc/apache2/apache2.conf, а корневая директория web-сервера по умолчанию /var/www.



Установка MySQL
aptitude install mysql-server mysql-client php5-mysql