За последние 24 часа нас посетили 19460 программистов и 1609 роботов. Сейчас ищут 814 программистов ...

Различные трюки на php

Тема в разделе "Прочее", создана пользователем goshalev, 4 окт 2010.

  1. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    не тяни кота за яйца!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дык, покажу, и тема сдохнет. хочу еще пофлудить.
     
  3. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Сендмеил я проверял-действительно на многих хостингах не совсем адекватно работает отсылка комманд по портам.Насчёт вывода самого себя,не знаю алгоритмически-не значит ли это прописать нечто в самой проге
    <?php
    header("content-type:text/plain"); //Так
    passthru("cat php.php"); //Или так
    ?>

    Вот решение пресловутых задач,которые были.

    3)Есть координаты кочек и человек,который прыгает по кочкам.Болото начинается в у=0,кончается в у=n,соотвественно координаты кочек даны,линия болота параллельна оси икс.Найти минимальную длину прыжка человека,с точностью до 0,001,с которой этот человек может перепрыгнуть на другую сторону болота.Тут просто как считать,дабы прогу долго набирать.

    Решение такое.Нужна функция которая бы проверяла подходит ли данная длина прыжка или нет.Для всех кочек меньше от 0 до длины прыжка рисуются окружности,которые при пересечении с другими кочками также рисуются окружности радиуса проверяемой длины прыжка.Если круг пересекает край болота-эта длина подходит.Назовём эту функцию checkjump()
    Делается делением пополам.Спачала берется 0 и длина между краями берегов.0 не подходит ,длина подходит-делится пополам,далее половина длины если подходит,то берем ниже,если не подходит-выше и так далее пока не получится ответ с заданной точностью.

    4)Доказать что нельзя обойти конём все поле если это поле 4 на 4(не побывав дважды на одном естествено).Это с олимпиады по математике,но тупым перебором(всего 16 полей)решается естественно проще.Соотвественно прогу тоже долго набирать-интересуют рассуждения.Хотят тут очевидный перебор,достаточно простой.

    Тут реально простой беребор,всего 16 полей да и вообще школьники на олимпиаде решали таую задачу без компа.

    5)Правильный 12-гранник.Его грани-правильные пятиугольники.1 гангстер и 2 милиционера ходят по очереди на одну клетку,причём за ход может сходить только 1 милиционер.За какое максимальное число ходов гангстер может быть точно пойман(задача чисто математическая,то есть на компе ничего набирать не надо.Решил мой отец,я долго плыл,пока он не объяснил).Они все видят друг друга,координаты изначально даны.

    Смысл в том что если милиционеры разойдутся на противоположные стороны 12 гранника-будут контроллировать вообще все поля,Из этого легко получается ответ.
     
  4. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    goshalev, ставь пробел после знаков препинания, перед знаком пробел не нужен. Молния тебя не ударит, если ты напишешь хоть раз правильно, а не как кусок, вот так:
    или так:
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. <?php
    2.     $a='$';
    3.     $eval='printf ("<?php
    4.     %sa=\'%s\';
    5.     %seval=%s;
    6.     eval(%seval);
    7. ?>",
    8.     $a,
    9.     $a,
    10.     $a,
    11.     var_export($eval, true),
    12.     $a);';
    13. eval($eval);
    14. ?>
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    злая функция конечно рулит...
     
  7. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    4)Доказать что нельзя обойти конём все поле если это поле 4 на 4(не побывав дважды на одном естествено).Это с олимпиады по математике,но тупым перебором(всего 16 полей)решается естественно проще.Соотвественно прогу тоже долго набирать-интересуют рассуждения.Хотят тут очевидный перебор,достаточно простой.

    Написал решение.По ходу так...,действительно не обойти

    <?php
    $pole[]=array();
    $m[]=array();

    $p1[0]=2;$p1[1]=7;$p1[2]=10;
    $p2[0]=3;$p2[1]=8;$p2[2]=9;$p2[3]=11;
    $p3[0]=3;$p3[1]=5;$p3[2]=10;$p3[3]=12;
    $p4[0]=2;$p4[1]=6;$p4[2]=11;
    $p5[0]=3;$p5[1]=3;$p5[2]=11;$p5[3]=14;
    $p6[0]=4;$p3[1]=4;$p6[2]=12;$p6[3]=13; $p6[4]=15;
    $p7[0]=4;$p7[1]=1;$p7[2]=9;$p7[3]=14; $p7[4]=16;
    $p8[0]=3;$p8[1]=2;$p8[2]=10;$p8[3]=15;
    $p9[0]=3;$p9[1]=2;$p9[2]=7;$p9[3]=15;
    $p10[0]=4;$p10[1]=1;$p10[2]=3;$p10[3]=8; $p10[4]=16;
    $p11[0]=4;$p11[1]=2;$p11[2]=4;$p11[3]=5;$p11[4]=13;
    $p12[0]=4;$p12[1]=3;$p12[2]=6;$p12[3]=14;
    $p13[0]=2;$p13[1]=6;$p13[2]=11;
    $p14[0]=3;$p14[1]=5;$p14[2]=7;$p14[3]=12;
    $p15[0]=3;$p15[1]=6;$p15[2]=8;$p15[3]=9;
    $p16[0]=2;$p16[1]=7;$p16[2]=10;

    for($i=1;$i<17;$i++){
    $pole[$i]=0;
    };

    $m[0]=1;
    $m[1]="p1";
    $pole[1]=1;
    while(true){
    $a=$$m[$m[0]];
    $gsol=false;
    $cmov=false;
    for($i=1;$i<=$a[0];$i++){
    if($pole[$a[$i]]==0){
    $m[0]++;
    $m[$m[0]]="p".$a[$i];
    $pole[$a[$i]]=1;
    $gsol=true;
    };
    if($gsol)break;
    };

    if(!$gsol){
    for($i=$m[0];$i>1;$i--){
    $thisp=substr($m[$i],1);
    $pole[$thisp]=0;
    $m[0]--;
    $a=$$m[$m[0]];
    for($j=1;$j<=$a[0];$j++){
    if(($a[$j]>$thisp)&&($pole[$a[$j]]==0)){
    $cmov=true;
    $pole[$a[$j]]=1;
    $m[]="p".$a[$j];
    $m[0]++;
    };
    if($cmov)break;
    };

    if($cmov)break;
    };
    if(!$cmov){
    $thisp=substr($m[1],1);
    $pole[$thisp]=0;
    if($thisp<16){
    $thisp++;
    $m[1]="p".$thisp;
    };

    };
    };
    if((!$cmov)||($m[0]>15))break;
    };

    if($m[0]>15)print_r($m);

    ?>
     
  8. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    не гони. Тут задача для 3го класса. решается рекурсией
     
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    goshalev
    Я, конечно, понимаю, что ты псих.
    Но использовать теги php психам не возбраняется.
     
  10. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Все мы знаем замечательный сервис WebMoney,который позволяет каждому программисту получать
    очень даже реальные деньги за свои труды перед народом.Этот сервис всем хорош и удобен,за исключением
    комиссии в 0,8% за перевод и 0,2% за снятие денег.Они также проверяют сайт и не всем дают возможность
    перевода денег за использование каких либо ресурсов сайта.Если ваш сайт даже очень хороший ,то их администрация может
    вовсе не оценить ваши труды,а чтобы она оценила труды-необходима публика,которая будет пользоваться данным ресурсом.
    Глас народа-глас божий.Вечная латынь,но эта публика должна оплачивать некоторые труды администратора сайта,
    а за этим стоит ребята из WebMoney.Ничего страшного,на каждую вашу хитрость мы ответим своей непредсказуемой глупостью!
    Вебмани-это все таки не деньги по емейлу,как выразился человек в фильме-Хоттабыч.Хотя я смотрел-у них можно платеж на
    емейл отправить =)).Это все шутки,но в целях безопасности своих пользователей их программа-Web Money Keeper
    ведет логи перевода денег в разных форматах.Нас истересует импорт этих логов в формат txt.Это делается легко,
    а в этом файле сначала идет дата перевода,потом кошелек1,кошелек2,операция и сумма перевода.В общем моя
    php программа выбирает все платежи на служебный кошелек и пополняет баланс соответствующих пользователей.
    Просим человека перевести деньги на кошелек,он переводит,админ сайта подгружает лог и собственно народ
    и администрация сайта смогла побороть часть несправедливости в этом мире!

    <?php

    header("Cache-control:no-cache");
    require("initsql.php");
    $startdir="../../../../../../../../../../../../../../../../site/http/";
    copy($_FILES['paydata']["tmp_name"],$startdir."temp/pay.dat");
    $f=fopen($startdir."temp/pay.dat","a+");
    $str=fgets($f,3000);

    while(!feof($f)){
    $str=fgets($f,3000);

    $year=substr($str,1,4);
    $mon=substr($str,6,2);
    $day=substr($str,9,2);

    $h=substr($str,12,2);
    $m=substr($str,15,2);
    $s=substr($str,18,2);
    $time0=mktime($h,$m,$s,$mon,$day,$year);
    if($str[22]!=';'){

    for($i=22;$i<100;$i++){
    if($str[$i]==".")break;
    };

    $sum=trim(substr($str,22,$i-22));

    for($i=22,$k=0;$i<1000;$i++){
    if($str[$i]==';')$k++;
    if($k>3)break;
    };

    $wm=trim(substr($str,$i+2,13));

    if((!empty($wm))&&(!empty($sum))){
    if(mysql_num_rows(mysql_query("select lasttime from paylist where ((wm='$wm')and(sum='$sum')and(lasttime='$time0'))"))<1){
    mysql_query("insert into paylist (wm,sum,lasttime) values('$wm','$sum','$time0')");
    };
    };
    };
    };

    $wms=mysql_query("select distinct wm from paylist where isread='n'");
    $num=mysql_num_rows($wms);

    for($i=0;$i<$num;$i++){
    $thiswm=mysql_result($wms,$i,0);
    $login=mysql_query("select user from balance where wm='$thiswm'");
    if(mysql_num_rows($login)>0){
    $login=mysql_result($login,0,0);
    include("getbalance.php"); //Переменная $thisb содержит информацию баланса
    $sum=mysql_result(mysql_query("select sum(sum) from paylist where ((wm='$thiswm')and(isread='n'))"),0,0);
    if($thisb<5)$thisb+=-5;
    if($sum>=1200)$sum+=300;
    $thisb=$thisb+$sum;
    if($thisb<0)$thisb=0;
    mysql_query("update cbalance set balance='$thisb' where wm='$thiswm'");
    $a=mysql_result(mysql_query("select count(*) from balance where wm='$thiswm'"),0,0);
    if($a>0)mysql_query("update paylist set isread='y' where wm='$thiswm'");


    fclose($f);
    unlink($startdir."temp/pay.dat");
    header("Location:../loadpay.php");
    ?>

    З.Ы.:Невропатолог сказал что у меня всё заипись-отправил к мозговеду,сказал рассказть про безумные сны которые про конец,и еще про куски начала...
     
  11. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Пойди туда не зная куда найди то не зная что-получи пол царства и принцессу с большим бюстом!

    <?php
    $razdel="!@#$%^&*()[];%:?_-<>.,{}";
    $param1=isset($_POST['param1']);
    $param2=isset($_POST['param2']);
    $page=abs((int)$_POST['page']);
    if((empty($page))||($page==0))$page=1;
    $sfield=strtoupper(($_POST['searchfield']));
    for($i=0;$i<strlen($razdel);$i++){
    $sfield=str_replace($razdel[$i],' ',$sfield);
    };
    $sfield=htmlspecialchars($sfield);
    $notemt=false;
    for($i=0;$i<strlen($sfield);$i++){
    if($sfield[$i]!=' ')$notemt=true;
    if($notemt)break;
    };

    if($notemt){
    $where='';
    $sarr=explode(" ",$sfield);
    foreach($sarr as $key=>$value){
    if(!empty($value)){
    if(!empty($where))$where=$where."and(upper(title) like '%".$value."%')";
    if(empty($where))$where=$where."(upper(title) like '%".$value."%')";
    };
    };
    }else{
    $where="(1='1')";
    };

    if($param1){
    $where=$where."and(param1='".$param1."')";
    };

    if($param2){
    $where=$where."and(param2='".$param1."')";
    };

    $where="($where)";
    $from=($page-1)*20;
    $lim="Limit $from,20";

    $titles=mysql_query("select distinct title from items where ".$where." order by param1,param2,title ".$lim);
    $ntitles=mysql_query("select count(distinct title) from items where ".$where);
    $ntitles=mysql_result($ntitles,0,0);

    include("viewitems.php");
    echo("Страницы:");
    $pages=ceil($ntitles/20);
    if($pages==0)echo("Не найдено ни одного совпадения.");

    for($i=1;$i<=$pages;$i++){
    $advstyle='';
    if($i==$page){
    $advstyle="style=\"background-color:ffffc0;\"";
    };
    echo("<a class='typicallink' $advstyle href=\"javascript:document.getElementById('searchpage').value='".$i."';document.getElementById('searchform').submit();\">".$i."</a>");
    if($i<$pages)echo(",");
    if($i==$pages)echo(".");
    };

    ?>
     
  12. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    goshalev
    чё ты гонишь, всё равно твою хрень никто не читает...
     
  13. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Не правда, я первые 3 прочёл :D
     
  14. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    какой то не понятный чел, в теги заключи свои творения хоть...
     
  15. goshale

    goshale Guest

    Да чё вы сразу банить,я только код выложил-вы уже сразу!Пипеец полный,Видимо для некоторых ущей <?php ... ?> это совсем китайская грамота вот и обижаются.Ну какого реально так делать?Вообще антифашисты нормальные ребята,то что я пишу про славян-это обычные сказки для детей и ни коем образом не имеют цель какой то рассовой и так далее
     
  16. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    goshale
    он про теги [php ][/php ]
    и в списке забаненых нету goshalev
     
  17. goshale

    goshale Guest

  18. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    goshale попробуй заключить код в теги
     
  19. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    пипец игра, на простом и трудном уровне всегда бери по 3 и выйграешь.
     
  20. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Первый ход - взять 3 спички, в дальнейших ходах просто дополнять взятое компьютером до 4-х.
    Т.е. комп взял 3 - взять 1. Комп взял 2 - взять 2. Комп взял 1 - взять 3. Победа в кармане.
     
  21. goshale

    goshale Guest

    Собственно название домена говорит само за себя.С другой стороны некоторые программисты (я про таких писал в записках goshala) создали сайт о чудском озере,да и понавешали туда тёжелых веб технологий,от которых сайт висел и трещал по швам.Надо сказать что Чудским озером интересуется комитет культуры,который по плану Даллеса должен раскручиваться на бабло(теоретически,если не стадать х*нёй а заниматься программированием).Рад что есть люди которые видят элементарные математические законы,без которых программы,Интернет и не только работать нормально не могут.

    Вот еще задачка(просая и сложная).По сторонам кубика(их 12) ползёт (а)2 паука и 1 муха,скорости равны,б)3 паука и 1 муха,скорость мухи в 3 раза больше скорости паука).Как должны вести себя пауки чтобы поймать муху.Первая(а) по идее совсем простая
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    (c)vesna.yandex.ru?
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  24. goshale

    goshale Guest

    Я нсейчас на гуманитарном жёстко стебусь над журналистами что мол мне как журналюге скоро работать негде будет потому что все новости печатают на mail.ru ,а газеты даже в электронном никто не читает.Еще на гуманитарном так дают списывать,это вообще жесть,зато никто мозги не е*ёт,собственно поэтому туда и перещёл.
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    goshale
    Да. стоило догадаться =) А чем по жизни заниматься планируете?