За последние 24 часа нас посетили 22580 программистов и 1192 робота. Сейчас ищут 774 программиста ...

Перцы, подскажите неопытному !

Тема в разделе "PHP для новичков", создана пользователем xvoid, 14 авг 2006.

  1. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    залил проверочный скрипт:
    <?
    $online = fopen ("online.dat","r");
    echo "$online<br>";
    $base = fopen("base.dat","r") or die("Ошибка чтения");
    echo "$base";
    ?>
    Работает, выводит
    Resource id #2
    Resource id #3
    а как заставить работать счетчик ?
     
  2. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3. $total_data="base.dat";
    4. $online_data="online.dat";
    5. $time=time();
    6. $now=(int)(time()/86400);
    7. $past_time=time()-600;
    8.  
    9. $readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
    10. $online_data_array=file($online_data);
    11. fclose($readdata);
    12.  
    13. if(getenv('HTTP_X_FORWARDED_FOR'))
    14.         $user=getenv('HTTP_X_FORWARDED_FOR');
    15. else
    16.         $user=getenv('REMOTE_ADDR');
    17.  
    18. $d=count($online_data_array);
    19. for($i=0;$i<$d;$i++)
    20.         {
    21.         list($live_user,$last_time)=explode("::","$online_data_array[$i]");
    22.         if($live_user!=""&&$last_time!=""):
    23.         if($last_time<$past_time):
    24.                 $live_user="";
    25.                 $last_time="";
    26.         endif;
    27.         if($live_user!=""&&$last_time!="")
    28.                 {
    29.                 if($user==$live_user)
    30.                         {
    31.                         $online_array[]="$user::$time\r\n";
    32.                         }
    33.                 else
    34.                         $online_array[]="$live_user::$last_time";
    35.                 }
    36.         endif;
    37.         }
    38.  
    39.         if(isset($online_array)):
    40.         foreach($online_array as $i=>$str)
    41.                 {
    42.                 if($str=="$user::$time\r\n")
    43.                         {
    44.                         $ok=$i;
    45.                         break;
    46.                         }
    47.                 }
    48.         foreach($online_array as $j=>$str)
    49.                 {
    50.                 if($ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;}
    51.                 }
    52.        endif;
    53.  
    54. $writedata=fopen($online_data,"w") or die("Не могу открыть файл $online_data");
    55. flock($writedata,2);
    56. if($online_array=="") $online_array[]="$user::$time\r\n";
    57. foreach($online_array as $str)
    58.         fputs($writedata,"$str");
    59. flock($writedata,3);
    60. fclose($writedata);
    61.  
    62. $readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
    63. $online_data_array=file($online_data);
    64. fclose($readdata);
    65. $online=count($online_data_array);
    66.  
    67. $f=fopen($total_data,"a");
    68. $call="$user|$now\n";
    69. $call_size=strlen($call);
    70. flock($f,2);
    71. fputs($f, $call,$call_size);
    72. flock($f,3);
    73. fclose($f);
    74.  
    75. $tarray=file($total_data);
    76. $total_hits=count($tarray);
    77.  
    78. $today_hits_array=array();
    79. for($i=0;$i<count($tarray);$i++)
    80.         {
    81.         list($ip,$t)=explode("|",$tarray[$i]);
    82.         if($now==$t) { array_push($today_hits_array,$ip); }
    83.         }
    84. $today_hits=count($today_hits_array);
    85.  
    86. $total_hosts_array=array();
    87. for($i=0;$i<count($tarray);$i++)
    88.         {
    89.         list($ip,$t)=explode("|",$tarray[$i]);
    90.         array_push($total_hosts_array,$ip);
    91.         }
    92. $total_hosts=count(array_unique($total_hosts_array));
    93.  
    94. $today_hosts_array=array();
    95. for($i=0;$i<count($tarray);$i++)
    96.         {
    97.         list($ip,$t)=explode("|",$tarray[$i]);
    98.         if($now==$t) { array_push($today_hosts_array,$ip); }
    99.         }
    100. $today_hosts=count(array_unique($today_hosts_array));
    101.  
    102. echo "document.write('<table width=100% bgcolor=#888888 cellspacing=1 cellpadding=1
    103.  
    104. style=\"font-family:Verdana;font-size:10px;\">');";
    105. echo "document.write('<tr><td bgcolor=white>Хитов всего: $total_hits</td></tr>');";
    106. echo "document.write('<tr><td bgcolor=white>Хитов сегодня: $today_hits</td></tr>');";
    107. echo "document.write('<tr><td bgcolor=white>Хостов всего: $total_hosts</td></tr>');";
    108. echo "document.write('<tr><td bgcolor=white>Хостов сегодня: $today_hosts</td></tr>');";
    109. echo "document.write('<tr><td bgcolor=white>Сейчас на сайте: $online</td></tr>');";
    110. echo "document.write('</table>');";
    111. ?>
     
  3. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Сделал бесполезное дело - заменил переменную на имя самого файло, все работает только на локальном хосте, у них опять непашет :( такое очучение что трабл с правами на чтение, у них линух стоит, ща хтакцес слабаю, если непоможет, то вся надежда только на вас
     
  4. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    такой вопрос, игра светит в сеть порт 8080, по нему передает параметры сервера, сатистику ии все такое.. как мне выводить на экран то что она передает, если я знаю порт, но незнаю переменных которые она передает, тоесть я незнаю че мне писать $_GET['че тут вставить, если это делаеться так']; ??
     
  5. cia

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

    С нами с:
    18 авг 2006
    Сообщения:
    17
    Симпатии:
    0
    $_GET[0], $_GET[1] ...
     
  6. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    тоесть сканировать получаеться, а как делать это терациями автоматически ? можно подставить $_GET[$i]; где $i - массив значений, который меняеться инкриментом.. но это тока в том случае есть переменная- число, а если это слово, то логический массив строить ?
    Почему то мне кажеться что если я напишу $_GET[$i]; то он будет не и подставлять а слушать её, или все зависит от апострофов ?
     
  7. Mavir

    Mavir Guest

    PHP:
    1. <?
    2. foreach ($_GET as $k=>$v){
    3.   print $k.' => '.$v."\n";
    4. }
    5. ?>
     
  8. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    фигассе )) и будет работать, здорово, ща попробую !
     
  9. Mavir

    Mavir Guest

    А так значения не узнать, потому что таких ключей может и не быть
     
  10. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    как раз так узнаешь, даже в ассоциативном массиве присутствуют "номерные" ключи. другое дело что теоретически могут случиться дырки
     
  11. Mavir

    Mavir Guest

    Подскажи как это сделать. Так код не работает
    PHP:
    1. <?
    2. $a['a']=5;
    3. $a['b']=6;
    4.  
    5. print $a[0];
    6. ?>
     
  12. D.Lans

    D.Lans Активный пользователь

    С нами с:
    31 июл 2006
    Сообщения:
    345
    Симпатии:
    0
    Mavir наверно svk имел в виду "номерые" ключи - не так буквально :)
    В смысле при переборе ассоциативного массива элементы всегда перебираются в том порядке, что был задан при их определении.

    А такой код, ессно не работает.
     
  13. D.Lans

    D.Lans Активный пользователь

    С нами с:
    31 июл 2006
    Сообщения:
    345
    Симпатии:
    0
    PHP:
    1.  
    2. $index["static"] = array("{test}" => "Тест", "{hello}" => "Привет");
    3.  
    4. for (reset($index); list($arr_key,$arr_value) = each ($index['static']; ) {
    5.         echo $arr_key.' => '.$arr_value.'<br>';
    6. }
    7.  
    8.  
    Выводит:
    {test} => Тест
    {hello} => Привет!
     
  14. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Ребят, как с гисметео погоду черпануть, наковырял .xml, там между тегами как раз то что мне надо :) , как брать текст между определенными тегами ? если есть метод проще черпать погоду, то плз поделитесь опытом (погода нужна не банером, а текст надо, ну температура, давление) :)
     
  15. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Код (Text):
    1.   <?xml version="1.0" encoding="windows-1251" ?>
    2. - <rss xmlns:gismeteo="http://www.gismeteo.ru" version="2.0">
    3. - <channel>
    4.   <title>GISMETEO.RU: Погода от ФОБОС и Мэп Мейкер</title>
    5.   <link>http://www.gismeteo.ru</link>
    6.   <description>Прогноз погоды по 2200+ городам России и Мира</description>
    7.   <ttl>60</ttl>
    8. - <image>
    9.   <title>GISMETEO.RU: Погода от ФОБОС и Мэп Мейкер</title>
    10.   <width>142</width>
    11.   <height>18</height>
    12.   <link>http://www.gismeteo.ru</link>
    13.   <url>http://img.gismeteo.ru/images/gismeteo2.gif</url>
    14.   </image>
    15. - <item>
    16.   <title>Самара: Ночь 28 авг, Пн</title>
    17.   <link>http://www.gismeteo.ru/towns/28900.htm?1000000</link>
    18.   <description>облачно, без осадков, температура +13..+15 С, давление 752..754 мм рт.ст., ветер Западный, 1 м/с</description>
    19.   <category>Погода</category>
    20.   <enclosure url="http://img.gismeteo.ru/images/mooncl.gif" />
    21.   <source>http://informer.gismeteo.ru/rss/28900.xml</source>
    22.   </item>
    23. - <item>
    24.   <title>Самара: Утро 28 авг, Пн</title>
    25.   <link>http://www.gismeteo.ru/towns/28900.htm?1003137</link>
    26.   <description>облачно, без осадков, температура +23..+25 С, давление 752..754 мм рт.ст., ветер Западный, 1 м/с</description>
    27.   <category>Погода</category>
    28.   <enclosure url="http://img.gismeteo.ru/images/suncl.gif" />
    29.   <source>http://informer.gismeteo.ru/rss/28900.xml</source>
    30.   </item>
    31. - <item>
    32.   <title>Самара: День 28 авг, Пн</title>
    33.   <link>http://www.gismeteo.ru/towns/28900.htm?1086104</link>
    34.   <description>облачно, без осадков, температура +26..+28 С, давление 751..753 мм рт.ст., ветер Западный, 1 м/с</description>
    35.   <category>Погода</category>
    36.   <enclosure url="http://img.gismeteo.ru/images/suncl.gif" />
    37.   <source>http://informer.gismeteo.ru/rss/28900.xml</source>
    38.   </item>
    39. - <item>
    40.   <title>Самара: Вечер 28 авг, Пн</title>
    41.   <link>http://www.gismeteo.ru/towns/28900.htm?1020258</link>
    42.   <description>пасмурно, без осадков, температура +17..+19 С, давление 751..753 мм рт.ст., ветер Юго-Восточный, 1 м/с</description>
    43.   <category>Погода</category>
    44.   <enclosure url="http://img.gismeteo.ru/images/moond.gif" />
    45.   <source>http://informer.gismeteo.ru/rss/28900.xml</source>
    46.   </item>
    47.   </channel>
    48.   </rss>
    Если неошибаюсь это новостная лента, помоему в пыхе есть средства работы с энтой дамой :) верно иду ??
    Даже если верно, перцы помогайте, у меня криворукого пока ещё плохо получаеться :)
     
  16. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    ух блин, ненахожу чета, нету ниче специального, чем можно текст между тегами захватить в массив или чето в этом роде ?
     
  17. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    PHP:
    1. <?php
    2. function xml_get($string, $doc)
    3. {
    4. $pos1 = strpos($doc, '<'.$string.'>', 0);
    5. $pos2 = strpos($doc, '</'.$string.'>', $pos1);
    6.  
    7. if ($pos2 == $pos1) return '';
    8.  
    9. $ret = substr($doc, $pos1+strlen($string)+2, $pos2-$pos1-strlen($string)-2);
    10.  
    11. return $ret;
    12. }
    13. ?>
    это 90% нужного тебе скрипта
     
  18. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    :) спасиба те, страна незабудет своих героев !
     
  19. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Ребят, у мну фтп давно работает в локалке, реально поиск чтоли сделать по имени файла, или хотяб по отрывку имени ?
    Как это работать должно (я ещё принципа поиска незнаю даже), будте добры, накидайте какой нть убогий поиск, чтобы я в суть проник.
    И если труда не составит, покажите какие особенности меня ожидают при поиске по фтп ! :)
    Заранее спасиба !
     
  20. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    ты слепой? на этом форуме в треше лежит БЕСПЛАТНАЯ версия моего поисковика по ФТП ресурсам
     
  21. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Горячий финский парень :) пасиба что подсказал, ужо лезу
     
  22. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Недавно слышал такую восторженную фразу:
    "Там движок, пипец, там страничка полностью автоматически генерируеться, там html вообще нету"
    Че это значит автоматически генерируеться, по каким параметрам, и где такое используют (понятно что html там есть, но он наверна клочками весит на переменных) ?
    Такое гиморое вообще стоит свечь ? Какие приемущества в каких ситуациях можно ожидать от такой структуры ? :?:
     
  23. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Перцы, делитесь секретами мантры, корче вот че задумал:
    у меня на страничке iframe есть, там src равно переменной, скажем $a, которая приравниваеться к пути до документа <?php a$="./index.htm"; ?>
    Дык вот :) слева меню, задача - при нажатии кнопки менять значение переменной. Делать громадную булевскую систему иф елс некрасиво !
    Можно конечно сделать чтобы при нажатии кнопки этому же скрипту переменная а отпровлялась методом пост, но я уверен что есть вариант проще, без использования суперглобальной переменной, внутри дока.
    Есть че нть типа set $a="./index.htm" ; ?? Как заставить кнопку выполнять такую простую задачу ?
     
  24. xvoid

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

    С нами с:
    10 авг 2006
    Сообщения:
    152
    Симпатии:
    0
    Короче говоря даже не суть делать эту конструкцию, а суть как при нажатии кнопки задавать значение переменной внутри скрипта (если это возможно)
     
  25. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet