За последние 24 часа нас посетили 18716 программистов и 1702 робота. Сейчас ищут 933 программиста ...

Проблемма с масовостью!!!

Тема в разделе "PHP для новичков", создана пользователем WHITE_DRAGON, 21 июн 2009.

  1. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Есть код сделанный мною:
    PHP:
    1.  
    2. <?
    3. $imgcombats = "http://img.combats.com/i/";
    4. $encicl = "http://capitalcity.combats.com/encicl/";
    5. $citys = Array (1 => "Capital city", 10 => "New Capital city", 6 => "Emeralds city", 2 => "Angels city", 3 => "Demons city", 4 => "Devils city", 5 => "Suncity", 7 => "Sandcity", 8 => "Mooncity", 11 => "Abandoned Plain", 12 => "Dreams city", 13 => "Low city", 14 => "Old city", 9 => "East city", 0 => "Kitezhgrad" );
    6. $mas = array("capitalcity", "newcapital", "emeraldscity", "angelscity", "demonscity", "devilscity", "suncity", "sandcity", "mooncity", "dungeon", "dreamscity", "lowcity", "oldcity", "eastcity", "kitezhgrad" );
    7.  
    8. $db=mysql_connect("хост","логин","пароль");
    9.  
    10.  
    11.       if($db == false)
    12.       {
    13.          echo "<b> не могу соединиться с базой!</b>";
    14.          exit;
    15.       }
    16.        mysql_select_db("база данных");
    17.  
    18.       $_result = mysql_query("select * from sostav");
    19.       $row_s=mysql_num_rows($_result);
    20.      
    21. for($j=0;$j<$row_s;$j++)
    22.                 {
    23.              $row = mysql_fetch_array($_result);
    24. for ($i=0; $i<count($mas); $i++)
    25. {
    26. @ $file = fopen("http://".$mas[$i+0].".combats.com/inf.pl?login=".urlencode($row["nik"])."&short=1", "r");
    27. if($file==true)
    28.  {
    29.    break;
    30.  }
    31. }
    32.  while($row = fgets($file, 3000)) {
    33.  $arr = split("=", $row);
    34.  $data[$arr[0]] = $arr[1];
    35.  if(strpos($row, "reputations")!==false) {
    36.      $arr = explode("=", $row, 2);
    37.      $arr1 = split(",", $arr[1]);
    38.      $data[$arr[0]] = array();
    39.          for($i=0; $i<count($arr1); $i++) {
    40.          $arr2 = split(":", $arr1[$i]);
    41.          $data[$arr[0]][$arr2[0]] = $arr2[1];
    42.      }
    43.      }
    44.  }
    45. echo '' .((is_int(strpos($data['align'], $data['align'])))?'<a href="'.$encicl.'alignment.html" target=_blank><img border=0 src="'.$imgcombats.'align'.$data['align'].'.gif" alt="align'.$data['align'].'.gif" /></a>':'');
    46. echo '' .((is_int(strpos($data['klan'],$data['klan'])))?'<a href="'.$encicl.'klan/'.$data['klan'].'.html" target=_blank><img border=0 src="'.$imgcombats.'klan/'.$data['klan'].'.gif" alt="'.$data['klan'].'" /></a>':'');
    47. echo '<b>'.$data['login'].'</b> [ '.$data['level'].'] <a href="'.$data['gamecity_url'].'/inf.pl?'.$data['id'].'" target=_blank>';
    48. foreach ($citys as $key => $value)
    49. echo '' .((is_int(strpos($data['birthplace'], $value)))?'<img border=0 src='.$imgcombats.'inf'.$key.'.gif alt="Инф. о '.$data['login'].'" /></a>':'');
    50. echo '' .((is_int(strpos($data['klan'],$data['klan'])))?' - ':'');
    51. echo '' .((is_int(strpos($data['bossklan'],"1")))?'<b>Глава клана</b></br>':''.$data['rank'].'</br>');
    52. foreach ($citys as $key => $value)
    53. echo '' .((is_int(strpos($data['gamecity'], $value)))?'<img src='.$imgcombats.'misc/forum/fo'.$key.'.gif width=17 height=15 border=0 alt="'.$data['gamecity'].'" /> <b>'.$value.'</b> - ':'');
    54. echo '' .((is_int(strpos($data['login_online'],'1')))?'<font color=green><b>OnLine</b></font> - ':'<font color=red><b>OffLine</b></font>');
    55. echo $data['room_name'];
    56. echo '' .((is_int(strpos($data['battle_id'], $data['battle_id'])))?' - Персонаж сейчас в <a href="'.$data['gamecity_url'].'/logs.pl?log='.$data['battle_id'].'" target=_blank><img border=0 src='.$imgcombats.'fighttype2.gif alt=fighttype2.gif /> <b>поединке</b></a>':'');
    57. echo '' .((is_int(strpos($data['reputations']['title'], $data['reputations']['title'])))?'</br>':'');
    58. echo '' .((is_int(strpos($data['reputations']['title'], $data['reputations']['title'])))?'<img src="'.$imgcombats.''.$data['reputations']['img'].'" alt="'.$data['reputations']['dsc'].': '.$data['reputations']['title'].'" width=35 height=24 border=0 />':'');
    59. echo '<br /><hr />';
    60. fclose($file);
    61. }
    62. ?>
    работает как надо когда $row["nik"] имеет одно значение, но как только много то происходит наложение информации друг на друга... как от этого избавиться???
     
  2. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    чтото непонятное. что значит "когда $row["nik"] имеет одно значение" ? И в каком формате должно быть много значений? Он должен быть массивом? И наложение какой информации друг на друга?

    PHP:
    1. <?
    2. ((is_int(strpos($data['reputations']['title'], $data['reputations']['title'])))
    3. ((is_int(strpos($data['align'], $data['align'])))
    4. ((is_int(strpos($data['klan'],$data['klan'])))
    Что это такое? Зачем столько скобок? Что здесь происходит?

    PHP:
    1. <?
    2. ((is_int(strpos($data['bossklan'],"1")))?
    3. ((is_int(strpos($data['login_online'],'1')))?
    4. // Я так понимаю, этим ты хотел сказать просто
    5. if ($data['bossklan'])
    6. if ($data['login_online'])
    7.  
    В общем, объясни, что здесь зашифровано
     
  3. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    TheShock
    я просто php не давно начал изучать и по этому многое не знаю...
    в $row["nik"] подставляются различные ники... которые берутся из базы данных... так вот если подставить взамен $row["nik"] мой ник WHITE_DRAGON то всё работает, или какой-нибудь другой, или даже из БД, но только один... если начать подгрузку множества ников то происходит наложение информации что мне естественно не нужно...
    вот пример с одним ником без БД...:
    PHP:
    1.  
    2. <?
    3. $imgcombats = "http://img.combats.com/i/";
    4. $encicl = "http://capitalcity.combats.com/encicl/";
    5. $citys = Array (1 => "Capital city", 10 => "New Capital city", 6 => "Emeralds city", 2 => "Angels city", 3 => "Demons city", 4 => "Devils city", 5 => "Suncity", 7 => "Sandcity", 8 => "Mooncity", 11 => "Abandoned Plain", 12 => "Dreams city", 13 => "Low city", 14 => "Old city", 9 => "East city", 0 => "Kitezhgrad" );
    6. $mas = array("capitalcity", "newcapital", "emeraldscity", "angelscity", "demonscity", "devilscity", "suncity", "sandcity", "mooncity", "dungeon", "dreamscity", "lowcity", "oldcity", "eastcity", "kitezhgrad" );
    7.  
    8. for ($i=0; $i<count($mas); $i++)
    9. {
    10. @ $file = fopen("http://".$mas[$i+0].".combats.com/inf.pl?login=".urlencode('WHITE_DRAGON')."&short=1", "r");
    11. if($file==true)
    12.  {
    13.    break;
    14.  }
    15. }
    16.  while($row = fgets($file, 3000)) {
    17.  $arr = split("=", $row);
    18.  $data[$arr[0]] = $arr[1];
    19.  if(strpos($row, "reputations")!==false) {
    20.      $arr = explode("=", $row, 2);
    21.      $arr1 = split(",", $arr[1]);
    22.      $data[$arr[0]] = array();
    23.          for($i=0; $i<count($arr1); $i++) {
    24.          $arr2 = split(":", $arr1[$i]);
    25.          $data[$arr[0]][$arr2[0]] = $arr2[1];
    26.      }
    27.      }
    28.  }
    29. echo '' .((is_int(strpos($data['align'], $data['align'])))?'<a href="'.$encicl.'alignment.html" target=_blank><img border=0 src="'.$imgcombats.'align'.$data['align'].'.gif" alt="align'.$data['align'].'.gif" /></a>':'');
    30. echo '' .((is_int(strpos($data['klan'],$data['klan'])))?'<a href="'.$encicl.'klan/'.$data['klan'].'.html" target=_blank><img border=0 src="'.$imgcombats.'klan/'.$data['klan'].'.gif" alt="'.$data['klan'].'" /></a>':'');
    31. echo '<b>'.$data['login'].'</b> [ '.$data['level'].'] <a href="'.$data['gamecity_url'].'/inf.pl?'.$data['id'].'" target=_blank>';
    32. foreach ($citys as $key => $value)
    33. echo '' .((is_int(strpos($data['birthplace'], $value)))?'<img border=0 src='.$imgcombats.'inf'.$key.'.gif alt="Инф. о '.$data['login'].'" /></a>':'');
    34. echo '' .((is_int(strpos($data['klan'],$data['klan'])))?' - ':'');
    35. echo '' .((is_int(strpos($data['bossklan'],"1")))?'<b>Глава клана</b></br>':''.$data['rank'].'</br>');
    36. foreach ($citys as $key => $value)
    37. echo '' .((is_int(strpos($data['gamecity'], $value)))?'<img src='.$imgcombats.'misc/forum/fo'.$key.'.gif width=17 height=15 border=0 alt="'.$data['gamecity'].'" /> <b>'.$value.'</b> - ':'');
    38. echo '' .((is_int(strpos($data['login_online'],'1')))?'<font color=green><b>OnLine</b></font> - ':'<font color=red><b>OffLine</b></font>');
    39. echo $data['room_name'];
    40. echo '' .((is_int(strpos($data['battle_id'], $data['battle_id'])))?' - Персонаж сейчас в <a href="'.$data['gamecity_url'].'/logs.pl?log='.$data['battle_id'].'" target=_blank><img border=0 src='.$imgcombats.'fighttype2.gif alt=fighttype2.gif /> <b>поединке</b></a>':'');
    41. echo '' .((is_int(strpos($data['reputations']['title'], $data['reputations']['title'])))?'</br>':'');
    42. echo '' .((is_int(strpos($data['reputations']['title'], $data['reputations']['title'])))?'<img src="'.$imgcombats.''.$data['reputations']['img'].'" alt="'.$data['reputations']['dsc'].': '.$data['reputations']['title'].'" width=35 height=24 border=0 />':'');
    43. echo '<br /><hr />';
    44. fclose($file);
    45. ?>
    я просто не знаю как это реализовать вообщем смысол таков: если есть ((is_int(strpos($data['reputations']['title'], $data['reputations']['title']))) то выводится следующее действие... верное... если нет то второе не верное... и так далее...
    может ли делать так if ($data['bossklan']) я не знаю... коряво у меня, но работает...
     
  4. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
  5. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Не могу понять. Вот смотри. У тебя есть ссылка:
    Код (Text):
    1. url/inf.pl?login=WHITE_DRAGON&short=1
    А ты хочешь реализовать много ников в ней одной, или наоборот - много ссылков с разными никами?

    PHP:
    1. <?php
    2. // Это:
    3. echo '' .((is_int(strpos($data['align'], $data['align'])))?'<a href="'.$encicl.'alignment.html" target=_blank><img border=0 src="'.$imgcombats.'align'.$data['align'].'.gif" alt="align'.$data['align'].'.gif" /></a>':'');
    4. // Можно заменить на:
    5. echo $data['align'] ? '<a href="'.$encicl.'alignment.html" target=_blank><img border=0 src="'.$imgcombats.'align'.$data['align'].'.gif" alt="align'.$data['align'].'.gif" /></a>' : '';
    6.  
     
  6. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Дай угадаю... Ты хочешь сделать на API сайта бойцовского клуба таблицу юзеров и у тебя получается вывести только одного юзера, но не всех?
     
  7. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    PHP:
    1. <?
    2. // В данном случае ты если находишь хотя бы один ник - останавливаешь выполнение скрипта.
    3. // на самом же деле все, что находится после while($row = fgets($file, 3000)) {
    4. // и перед fclose($file); } включительно надо поместить !вместо! брейка и выполнять в цикле
    5. for ($i=0; $i<count($mas); $i++) {
    6.     $file = fopen("http://".$mas[$i+0].".combats.com/inf.pl?login=".urlencode($row["nik"])."&short=1", "r");
    7.     if($file) {
    8.         // СЮДА
    9.         break;
    10.     }
    11. }
     
  8. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    TheShock
    Да вы правы!!! У меня много ников и ссылок и всё это для бойцовского клуба...
    Так вот одного... вывести могу... http://www.clan-harmony.com/test.php, а несколько нет... http://www.clan-harmony.com/structure/structure.php
    Ваш пример не работает... всё равно накладывается информайия из ников стоящих выше на ники расположенные ниже...
     
  9. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
  10. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    код в личку.
     
  11. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    TheShock
    Скинул, но ответа так и не дождался!!!

    П.С.: Помогите кто может... ну очень необходимо...
     
  12. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    я был занят. убери "break;" и должно заработать. у меня на локалхосте с зашлушкой заработало.
     
  13. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Но работает, конечно, отвратительно. Надо сделать кеширование хотя бы раз в минуту, иначе сервер твой будут ложить на очень долго
     
  14. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    а это как... и логает это вы имели ввиду кучу копий на каждый ник??? по крайней мере у меня так получилось... показывает правильно, но делает кучу ненужных копий...
     
  15. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск