Архив рубрики «php»

Генератор очереди для FileZilla

Привет всем! Все долбитесь с заливкой 100500 тыщ файлов по фтп? Вот ловите на халяву скрипт генерации заданий для файлзиллы.
Я искал по всему интернету, но так и не нашел. Нашел программу но не уверен в ее надежности, может там автор встроил злобную функцию сбора паролей от фтп. Мой скрипт открыт! Думаю дорвейщикам очень пригодится  =)

Генератор очереди для FileZilla

Инструкция по применению

  • Заполняем все поля
  • Жмакаем кнопку Go
  • Сохраняем файл проекта
  • Скармливаем его FileZilla
  • Запускаем задание
  • Сидим пьем пиво, и радуемся пока заливается дор!
  • Благодорим автора денежкой (R234504676985)

Качай на халяву!!! =)

Генератор очереди для FileZilla
12.9 KiB
1016 Downloads
Детали...

На эту страницу пришли с кейвордами:

Рассылка

Как-то мне пришлось сделать рассылку всем кто учился в Павлодарском государственном университете. Мне нужно было это для того чтобы выпускники поздравили с 50-летним юбилеем ПГУ

Что же я сделал для этого?

Мне понадобилось собрать список емайлов всех кто учился в ПГУ. Как же это сделать? Первое что пришло в голову это распарсить социальную сеть «Мой Мир».

Привожу код парсера, который у меня вышел

<?php
error_reporting(0);
set_time_limit(0);

$page = (int)file_get_contents('page');
$mails = array();
foreach  (file('mails') as $g) {
    $mails[] = trim($g);
}
for ($i = $page;  $i <= 844; $i++) {
    file_put_contents('page', $i);
    print 'page ' . $i . "\n";
    flush();
    $c =  file_get_contents('http://my.mail.ru/my/classmates?type_id=4&institute_id=263054&page='  . $i);
    preg_match_all('#http://www\.mail\.ru/agent\?message&to=([a-z0-9_\-\.]+@[a-z]+.ru)#si',  $c, $matches, PREG_SET_ORDER);
    foreach ($matches as $n => $m) {
        if (in_array($m[1], $mails)) continue;
        print '  ' .  $m[1] . "\n";
        flush();
        $mails[] = $m[1];
        file_put_contents('mails', $m[1] . "\n", FILE_APPEND);
    }
}

?>

После парсинга количество емайлов отличалось от реального на 300. Сначала подумал что это моя ошибка. Оказалось это сам майл.ру глючный. Эти емайлы не попали в мой список потому, что в конце некоторых страниц отсутствовал один.(например http://my.mail.ru/my/classmates?type_id=4&institute_id=263054&page=3)

Ну я не расстроился 16 тыс емайлов вполне хватило)
Приступим к рассылке писем:

<?php
error_reporting(0);
set_time_limit(0);

$page = (int)file_get_contents('page');
$mails = array();
foreach (file('mails') as $g) {
    $mails[] = trim($g);
}
foreach($mails AS $m) {
    emailSend($m, 'ПГУ им.С.Торайгырова 50 лет!', 'Событие: ПГУ им.С.Торайгырова 50 лет!
Поздравьте свой университет с юбилеем!
ПГУ будет рад получить от Вас поздравления!
http://psu.kz/index.php?option=com_compliment&act=view

Не забудьте передать ссылку своим друзьям!!! ОБЯЗАТЕЛЬНО
');
    sleep(1);
}

function emailSend($address, $subj, $body)
{
    $address = strtolower($address);
    $from = '[email protected]';
    $from_name = 'ПГУ им.С.Торайгырова';

    $body = "$body\n\n--\nПожалуйста не отвечайте на это письмо. Оно было сгенерировано исключительно с целью проинформировать Вас.";
    // =?кодировка?способ кодирования?закодированный текст?=
    $from_name = base64_encode($from_name);
    $subj = base64_encode($subj);
    $subj = "=?UTF-8?B?$subj?=";
    $body = base64_encode($body);

    $headers = "From: =?UTF-8?B?$from_name?= <$from>\r\n"
     . "Return-path: <$from>\r\n"
     . "Content-Type: text/plain; charset=UTF-8\r\n"
     . "Content-Transfer-Encoding: base64";

    mail($address, $subj, $body, $headers);
}

?>

Я на всякий случай поставил задержку в 1 сек между рассылками писем. На рассылку ушло где-то полдня. В течении рассылки поздравило около 20 человек!
Делайте выводы.

EmEditor + CodeBeautifier

Думаю каждый сталкивался с тем, что при прочтении чужого кода не возможно разобраться в нем.
Для начала нам нужен CB. Нам нужна только консольная утилита — файл phpCB.exe.
Далее нам нужно скопировать phpCB.exe в папку c:\windows\ или другую папку видную через переменную PATH.
Открыть макрос CodeBeautifier.jsee в EmEditor и код отформатирован по стандартам PEAR.
Теперь чтобы отформатировать, достаточно нажать F4.

Определение продажности ссылок

В последнее время вебмастеры пользуются биржами ссылок(например: SAPE).
Думаете, поисковикам так сложно отследить продажные сайты?
Вынужден Вас огорчить.
Прочитать остальную часть записи »

Генератор паролей

Часто бывает: зарегистрировался где-нибудь, а там просят: «введите пароль». В спешке приходится вводить что-нибудь типа qwerty или 12345. Последствия могут быть фатальными для вашего аккаунта: при попытке взлома такие пароли проверяются в первую очередь. Чтобы этого не происходило, надо создавать сложный пароль, желательно состоящий из букв разного регистра.
Прочитать остальную часть записи »

Локализуем проекты

Для локализации своих проектов я взял класс pomo из вордпресса.
Также будет необходим Poedit.

В исходном тексте скрипта все фразы написаны на английском языке, но обрамлены в специальную функцию:

_e('Hello world ');

Выбор локализации указывается так:

define('LANG', 'ru_RU');

Всегда можно изменить:

$locale = 'en_US';

Из файлов записанных по стандарту gettext берутся фразы на языке локализации и ставятся на место оригинальных. Если какая-то фраза не переведена, то на ее место ставится оригинальная.
Плюс такого подхода заключается в том, что оригинальные фразы являются идентификаторами подстановки. Программисту не надо контролировать правильность подстановки нужно идентификатора, а переводчику становится более наглядно, что, где и, самое главное, как переводить нужную фразу.
Что же делает Poedit?
Она рекурсивно обходит каталог скрипта, собирает все фразы, которые обрамлены в теги gettext и записывает в специальный .po-файл. Далее этот файл открывается в удобном виде для перевода. После сохранения перевода Poedit создает .mo-файл.
.po-файл (от portable object) — текстовый, который непосредственно и переводят.
.mo-файл (от machine object) — бинарный файл, который использует скрипт/программа для подстановки перевода.
Итак начнем установку Poedit.
При первом запуске он что-то спросит — заполняй, как посчитаешь нужным, потом если что подправишь. Чтобы было проще работать, можно поставить русский язык в настройках программы(File —> Preferences —> Change UI Language —> Russian).
Далее переходим в меню Файл->Создать каталог и вводим информацию о проекте:
Информация о проекте - Локализация проектов
Самые важные строки: Кодировка и Кодировка исходного кода. Рекомендую выставлять оба этих параметра как utf-8. Формы множественного числа вставить вот это:

nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11) ? 0 : ((n%10>=2 &amp;&amp; n%10<=4 &amp;&amp; (n%100<10 || n%100>=20)) ? 1 : 2);

На следующей вкладке Пути необходимо прописать путь к папке в которой располагаются файлы для перевода:
Пути - Локализация проектов
Вкладка Ключевые слова. Здесь необходимо прописать названия функций «__», «_e» и тд (без кавычек и без круглых скобок):
Ключевые слова - Локализация проектов
Жмакаем OK. В открывшемся окне выбираешь ту же папку, куда забросил все .php файлы и сохраняем под именем ru_RU.po.
После сохранения выскакивает окошечко Сводка об обновлении. Здесь ты можешь видеть все строки, которые нашла программа и которые можно перевести. Опять жмакаем ОК и в следующем окне приступаем к переводу найденных фраз.

Напутственный совет
Функции форм множественного числа указываются _n:1,2.

Исходный код
l10n

На эту страницу пришли с кейвордами:

Создаем архивы на лету

Создаем архивы на летуПредставляю класс для создания архивов на лету class.createZip
Прочитать остальную часть записи »

Защита e-mail от спамботов

Защита e-mail от спамботовВ последнее время очень много спама приходит на почту если email опубликован в открытом виде. Решил написать небольшую функцию для сокрытия от спамботов.

function generatePasswordLite()
{
    $d = Array("ba", "be", "bo", "di", "du", "do", "de", "ku",
         "ka", "ke", "si", "su", "re", "ru", "ro", "ra",
          "la", "le", "li", "lo", "ve", "zde", "ka");
    $str = "";
    for ($i = 0;$i < mt_rand(3, 4);$i++) $str .= $d[mt_rand(0, count($d)-1)];
    return $str;
}

function crypt_email($email)
{
    $arr_name = generatePasswordLite();
    $var_name = generatePasswordLite();
    while ($arr_name == $var_name) {
         $var_name = generatePasswordLite();
    }
    $plus = rand(1, 15);
    $index = chr(ord('i') + rand(0, 15));
    $str = 'document.write(\'' . $email . '\');';
    $out = '';
    for ($i = 0; $i < strlen($str); $i++) {
        if ($out != '')
            $out .= ',';
        $out .= (ord($str[$i]) + $plus);
    }
    return ('<script type="text/javascript">
<!--
var ' . $var_name . '=""; var ' . $arr_name . '=new Array(' . $out . ');for (' . $index . '=0;' . $index . '<' . $arr_name . '.length;' . $index . '++){ ' . $var_name . '=' . $var_name . '+String.fromCharCode(' . $arr_name . '[' . $index . ']-' . $plus . ');} eval(' . $var_name . ');
//-->
</script>');
}
QR-ссылка
QR Code for php - LEXASOFT
Показуха

TwitterCounter for @LEXASOFT

Рейтинг блогов

Яндекс.Метрика