Итак все знают как поставить одну ссылку, и как поставить сквозняк.
Но как сделать так чтобы ссылка на каждой странице была разная и при этом не ставить каждую вручную думаю знают не все.
Первым делом нам нужен собственно сам список ссылок. Правда если все ссылки будут вести на одну страницу, то достаточно обзавестись списком ключей, а формирование ссылки приписать в самом пшп коде.
Предположим этот файл назовется 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];
}
?>
Январь финстрип
01.02.2010
Вообще чтобы показать динамику стоит сказать что в начале декабря мой доход дневной был около нуля.
Сейчас около 600 в день чистая прибыль. До ежемесяных 50000 еще не дошел. Но по-тихоньку поднимаюсь после падения
Сапа: 11200. за январь дневной доход вырос на сотню. Сейчас дневной тусуется в районе 420.
Лиекс: традиционно тысяча.
Другие ссылки: 2000
Тизернет: 3600
Бодиклик: 4200
сейчас суммарный дневной по тизерам тусуется возле отметки 400.
Всякая мелочь 1000
Итог дохода: 22000
Расход: ссылки 4100. Сейчас дневной расход около 240. Большая часть расхода нацелена на новые сайты.
Домены 2700
Хостинг 1000
Итог расхода: 7800
Купил нетбук :) Acer Aspire One AO751h-52Bgk
27.01.2010
Acer Aspire One AO751h-52Bgk
Atom Z520 (1.33GHz) 1024MB, 160GB, 11.6″WXGA, BT, 3G, Cam,XPH, Black
Я раньше особо не думал в сторону нетбуков. Но собрался в феврале в дальнюю поездку, вероятно на месяц, а то и два, а как без компа то? Но на новый нормальный ноутбук мне было жаль тратить деньги, да и у нетбуков преимущество в размерах.
Собственно размер меня и смущал. Но опасения оказались напрасны. На моей диагонали 11.6 разрешение 1366 на 768 и лично мне удобно. Хотя поначалу глаза напрягались.
Вообще ноут будто специально для меня. Смотрел по прайсам, наткнулся на эту позицию. Встроенный модем 3G отлично сочетался с возможностью 3G инета там куда я поеду, ну и батарея на более чем 6 часов тоже клево.
К тому же не слишком маленький и при том компактный размер, а также предустановленна не какая то виста или семерка, а любимая хрюшка.
Цена 16555, у меня на руках 17000, плюс мышка и получается впритык.
Стал искать его в прайсах других фирм, нет нигде. Поехал в магазин, пошел к стеллажам с нетбуками, сразу же наткнулся на него. Последний.
Сначала конечно не привычен маленький размер (корпус по ширине ровно как две коробки от CD по большей стороне) но в итоге привык к нему очень быстро.
Настроил впервые беспроводную сеть. По блютузу между ним и старым ноутом (который в поездки брать очень проблемно, так как у него не работает экран).
Инет настроил, сейчас скачиваю на него все обновления винды. Перенес все настройки фаерфокса, установил вебмани. Красота в общем ![]()
Стереокартинки. Гиперкубы. Стерео-Гиперкубы.
15.01.2010
Всем здрасте.
Я в очередной раз решил немного отвлечься от деньгоделания, и попрограммировать просто так
Вынес результат в отдельную статью.
Стереокартинки. Гиперкубы. Стерео-Гиперкубы.
Стерео тессеракт размещенный на википедии по сравнению с моими просто фигня.
Неравные длины граней, и более сложный способ просмотра.
Пошарил по рунету нигде больше и нет стерео пар гиперкубов, не считая уже упомянутой картинки на вике, многократно утянутой.
P.S Если вам понравится, поставьте на меня ссылку
Ну пажалуйста..
Почему то никогда не любил работать с файловой системой, поэтому код представленный ниже я предпочел бы иметь в готовом виде, а не писать заново при необходимости.
Поэтому оставлю его здесь.
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. я его честно где-то стащил. ![]()
