Elsper » софт

Итак все знают как поставить одну ссылку, и как поставить сквозняк.

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

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

Предположим этот файл назовется kei.txt

Можно конечно сделать просто вывод рандомной ссылки на странице

<?

$f_ar2 = file(’kei.txt’);  // Связываемся с файлом.

$skokaslov = count($f_ar2); // Узнаем сколько в нем строк

$i = rand(0,$skokaslov); // Делаем рандомное число

echo $f_ar2[$i]; // Делаем вывод строки

?>

Или же можно одной строкой. Смысл один и тот же.

<? $f_ar2 = file(’kei.txt’); echo $f_ar2[rand(0,count($f_ar2))]; ?>

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

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

<?

$adres = $_SERVER['REQUEST_URI'].”\n”; //Считываем урл. Я сразу же приписываю знак переноса строки. чтобы потом с ним не возиться.

$f_ar2 = file(’kei.txt’); // Уже знакомый файл ключей
if ( file_exists(’site.txt’)){
$f_ar1 = file(’site.txt’);}  // Та самая база урлов. Встроенна проверка на наличие. Если файла нет, то к нему не будет обращения и не будет ошибки, одна ко же в дальнейшем код скрипта сам его сформирует.

$skokaslov = count($f_ar2);//Так же получаем количество ключей. Это нам пригодится на случай если ключей окажется меньше чем страниц.

$str = -1; // Этакий “ключ” обозначающий что строка в базе урлов не найдена.

for ($i = 0; $i < count($f_ar1); $i++)  // Пускаемся в поиски

if ($adres == $f_ar1[$i]) {  // сравниваем соотвествтует ли текущий урл, урлу в базе
$str = $i;  // Если соответствует то переключаем ключ
echo  $f_ar2[$i%$skokaslov]; // Выводим строчку из списка ссылок. Знак процента обозначает остаток от деления.
break; //Прерываем цикл.
}

if ($str == -1){ // Если ключ так и не переключен, значит в базе урл не найден, а следовательно надо его добавить.
$fp = fopen(’site.txt’, ‘a’); // Открываем файл на дозапись. Или же создаем если его не было до этого.

fwrite($fp, $adres); // Дозаписываем.

fclose($fp); // Закрываем файл.
echo  $f_ar2[$i%$skokaslov]; // Радуемся жизни. Ведь параметр $i на выходе из цикла как раз соответствует номеру последней строки.
}

?>

Разумеется вокруг строчки echo  $f_ar2[$i%$skokaslov]; можно что нибудь еще дописать на вывод. Ну это думаю понятно.

Замечания, Пожелания?
Если вам понравилось буду рад ссылке :)

Из минусов, думаю при больших объемах пробежка по списку урлов может нагружать ресурсы… Желающие вполне могут улучшить скрипт, да и вообще взять идею на вооружение. :)

UPD.

В каментах MrMozg подсказал функцию, с которой поиск по архиву можно реализовать намного проще.

Ну я и реализовал :)

<?
$adres = $_SERVER['REQUEST_URI'].”\n”;
$f_ar2 = file(’kei.txt’);
if ( file_exists(’site.txt’)){
$f_ar1 = file(’site.txt’);}

$skokaslov = count($f_ar2);

$key = array_search($adres,$f_ar1); // та самая функция.
if ($key > -1) { // если значение есть в массиве то она выдаст его, это будет число больше чем -1, следовательно условие выполнится. А если значение не будет найдено, то уже пофиг, что выдаст функция, она все равно пойдет в else. :)
echo  $f_ar2[$key%$skokaslov];

}
else
{
$fp = fopen(’site.txt’, ‘a’);
fwrite($fp, $adres);
fclose($fp);
echo  $f_ar2[count($f_ar1)%$skokaslov];
}

?>


Автор: Elsper.ru


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

Поэтому оставлю его здесь.

procedure GetAllFiles( Path: string; Lb: TListBox );
var
sRec: TSearchRec;
isFound: boolean;
begin
isFound := FindFirst( Path + ‘\*.*’, faAnyFile, sRec ) = 0;
while isFound do
begin
if ( sRec.Name <> ‘.’ ) and ( sRec.Name <> ‘..’ ) then
begin
if ( sRec.Attr and faDirectory ) = faDirectory then
GetAllFiles( Path + ‘\’ + sRec.Name, Lb );
Lb.Items.Add( Path + ‘\’ + sRec.Name );
end;
Application.ProcessMessages;
isFound := FindNext( sRec ) = 0;
end;
FindClose( sRec );
end;

И вызов что-нибудь типа:  GetAllFiles( ‘C:\’, listbox1 );

p.s. я его честно где-то стащил. :)


Автор: Elsper.ru


В комментах к прошлой записи HenzO написал

Мне бы хотя бы один скрипт, который на главной каждого сайта ставит ссылку, а если нужно чтоб сразу все им же и убрать можно было)

Сказано, сделано.

Если я конечно правильно понял. :)

Самое просто что пришло на ум это:

Читать полностью »


Автор: Elsper.ru


Итак нафиг нужно программирование?

“Для удовольствия”, “Для самореализации” слышу я голоса в своей голове. Ну сам с собой спорить я  не буду, поэтому устраиваю диктатуру и говорю:

Для автоматизации

(да, вот так зеленым голосом и говорю)

Все мы (ну почти все) знаем где можно достать денежку. Не в смысле с полки, а в смысле с инета.
Это и сапа/лиекс, и контекст, и смс-ки, и прочие более узкотематичные вещи.

И что же останавливает нас на пути к мировому господству? Читать полностью »


Автор: Elsper.ru


Во второй раз делюсь самописным софтом.
Ссылка на прошлый раз когда я давал софт

Не секрет, что я возлагаю на контекст большие надежды.

Так вот пописываю тексту.. Продвигаю странички.. Смотрю цену слов.. И вот на последнем пункте и остановимся.

когда я работал с ричкликом я подобную прогу написал сразу. Потому что там без такой работать нелепо. Но чего то я только сейчас догнал сделать прогу и под сам бегун. (прога от ричклика не подойдет, потому что там другая база)

Итак ближе к проге:

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

Далее список ключей в один столбик экселя, список цен в другой. Делаем сортировку по убыванию по цене и понимаем в каком направлении работать. :)
(Цену надо делить на 2, потому что комиссия бегуна 50%)

Ну как обычно в таких случаях автор ( Я ) никакой ответственности не несет. Пользуетесь прогой на свой страх и риск.
Она может подвисать, может зависать. Может не реагировать на мышку. Основная причина это тормоза на сайте бегуна. И я хз как сделать чтобы при задержке ответа от бегуна сама прога при этом не тупила.

За красивостями я тоже не гнался, почти ничего не делал чтобы привести к “товарному виду”

Пока я писал этот текст прога успешно справилась с обработкой файла из 227 строк. По результатам обработки я нашел один кей на 105р (запросов в яшке 17000) и один на 46 (запросов в яшке 140000).

То есть я на своем опыте убедился, что предлагаю рабочий и полезный инструмент. :)

Буду рад вашим коментам, пожеланиям (может даже улучшу что-то), и конечно ссылочкам :)

Забрать

UPD: Правда рекламодатель мог выбрать размещение только в рамблере. Имейте в виду.

UPD2: Нашел целую область с ключами от 150 до 250 (при чем и второе и третье место тоже от ста). Запросов по яшке чуть больше 80 тысяч. Надеюсь они делятся не только с рамблером но и с обычными сайтами :)


Автор: Elsper.ru


Страница 2 / 3« 1 2 3 »

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

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