Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie danych ze strony
Forum PHP.pl > Forum > Przedszkole
adrpak
Witam
Chcialem wyciagnac ze zrodla tej strony http://lista-proxy.net/proxy-lista,http,elite liste serwerow proxy.

Mam taki skrypt:
  1. <pre>
  2. <?php
  3. $url="http://lista-proxy.net/proxy-lista,http,elite";
  4. $tekst = file_get_contents($url);
  5. preg_match_all('[<td class="right">(.+?)<\/td>]', $tekst, $wynik);
  6. preg_match_all('[<td>(.+?)<\/td>]', $tekst, $wynikk);
  7. $stats['ip'] = $wynik[1];
  8. $stats['port'] = $wynikk[1];
  9. print_r($stats);
  10. ?>
  11. </pre>


Ogolnie to dziala i wyswietla:

Cytat
Array
(
[ip] => Array
(
[0] => 195.116.53.12
[1] => 195.116.53.12
[2] => 128.232.103.203
[3] => 130.192.157.131
[4] => 83.228.94.3
[5] => 128.4.36.11
[6] => 155.246.12.164
[7] => 128.59.20.228
[8] => 137.165.1.111
[9] => 129.10.120.193
[10] => 174.142.104.57
[11] => 152.3.138.5
[12] => 72.36.112.71
[13] => 142.150.238.12
[14] => 72.36.112.72
[15] => 129.186.205.77
[16] => 35.9.27.27
[17] => 216.48.80.12
[18] => 201.225.226.68
[19] => 204.56.0.137
)

[port] => Array
(
[0] => 3124
[1] => 3128
[2] => 3124
[3] => 3128
[4] => 8118
[5] => 3128
[6] => 3128
[7] => 3128
[8] => 3128
[9] => 3128
[10] => 3128
[11] => 3128
[12] => 3128
[13] => 3128
[14] => 3128
[15] => 3128
[16] => 3128
[17] => 3124
[18] => 8080
[19] => 3128
)

)



Lecz chciałbym aby mi sie wyswietlilo to w taki formacie:
[ip]:[port]
[ip]:[port]
[ip]:[port]
[ip]:[port]
np.
Cytat
195.116.53.12:3124
195.116.53.12:3128
130.192.157.131:3128
85.18.254.13:3128
128.4.36.11:3128
155.246.12.164:3128

jedno pod drugim poniewaz pozniej bede chcial to zapisac do pliku.

Prosil bym jakies sugestie i podpowiedzi jak to zrobic. Z gory dzieki i pozdrawiam
nospor
Masz tablice. Przelec ją sobie przy pomocy FOREACH i wyswietl jak chcesz.
adrpak
takie cos napisalem
  1. <pre>
  2. <?php
  3. $url="http://lista-proxy.net/proxy-lista,http,elite";
  4. $tekst = file_get_contents($url);
  5. preg_match_all('[<td class="right">(.+?)<\/td>]', $tekst, $wynik);
  6. preg_match_all('[<td>(.+?)<\/td>]', $tekst, $wynikk);
  7. $stats['ip'] = $wynik[1];
  8. $stats['port'] = $wynikk[1];
  9. foreach($stats['ip'] as $linia[1])
  10. foreach($stats['port'] as $liniaa[1])
  11.  
  12. print_r( "$linia[1]:$liniaa[1]\n") ;
  13.  
  14. ?>
  15. </pre>


i wyswietla w taki spospob jak chcialem lecz kazde ip miesza sie z kadym portem:
Cytat
195.116.53.12:3124
195.116.53.12:3128
195.116.53.12:3124
195.116.53.12:3128
195.116.53.12:8118
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3124
195.116.53.12:8080
195.116.53.12:3128
195.116.53.12:3124
195.116.53.12:3128
195.116.53.12:3124
195.116.53.12:3128
195.116.53.12:8118
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3128
195.116.53.12:3124
195.116.53.12:8080
195.116.53.12:3128
128.232.103.203:3124
128.232.103.203:3128
128.232.103.203:3124
128.232.103.203:3128
128.232.103.203:8118
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3128
128.232.103.203:3124
128.232.103.203:8080
128.232.103.203:3128
130.192.157.131:3124
130.192.157.131:3128
130.192.157.131:3124
130.192.157.131:3128
130.192.157.131:8118
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3128
130.192.157.131:3124
130.192.157.131:8080
130.192.157.131:3128
itd...


jak zrobic by pierwszy port ustawial sie z pierwszym adresem ip?questionmark.gif.
ps. jestem poczatkujacy w php jakos sobie radze lecz tym razem poprosilbym konkretne rozwiazanie jesli to mozliwe.
z gory dzieki i pozdrawiam
daros17
Nie wiem czy dobrze zrozumiałem, chcesz aby było po kolei? Jeśli tak to użyj sortowania
adrpak
Cytat
Array
(
[ip] => Array
(
[0] => 195.116.53.12
[1] => 195.116.53.12
[2] => 128.232.103.203
[3] => 130.192.157.131
[4] => 83.228.94.3
[5] => 128.4.36.11
[6] => 155.246.12.164
[7] => 128.59.20.228
[8] => 137.165.1.111
[9] => 129.10.120.193
[10] => 174.142.104.57
[11] => 152.3.138.5
[12] => 72.36.112.71
[13] => 142.150.238.12
[14] => 72.36.112.72
[15] => 129.186.205.77
[16] => 35.9.27.27
[17] => 216.48.80.12
[18] => 201.225.226.68
[19] => 204.56.0.137
)

[port] => Array
(
[0] => 3124
[1] => 3128
[2] => 3124
[3] => 3128
[4] => 8118
[5] => 3128
[6] => 3128
[7] => 3128
[8] => 3128
[9] => 3128
[10] => 3128
[11] => 3128
[12] => 3128
[13] => 3128
[14] => 3128
[15] => 3128
[16] => 3128
[17] => 3124
[18] => 8080
[19] => 3128
)

)

tak mi wyswitlalo zanim uzylem funkcji FOREACH
a chce uzyskac taki efekt
[0] => 195.116.53.12 : [0] => 3124
[1] => 195.116.53.12 : [1] => 3128

oczywiscie bez tych numerkow( [0],[1])

195.116.53.12:3124
195.116.53.12:3128
...




Pomoze mi ktos questionmark.gif
phpion
  1. $tab = // ta Twoja tablica
  2.  
  3. foreach ($tab['ip'] as $key => $value) {
  4. echo $value.':'.$tab['port'][$key].'<br>';
  5. }
adrpak
Dziekuje smile.gif

Oto caly skrypt:
  1. <pre>
  2. <?php
  3. $url="http://lista-proxy.net/proxy-lista,http,elite";
  4. $tekst = file_get_contents($url);
  5. preg_match_all('[<td class="right">(.+?)<\/td>]', $tekst, $wynik);
  6. preg_match_all('[<td>(.+?)<\/td>]', $tekst, $wynikk);
  7. $stats['ip'] = $wynik[1];
  8. $stats['port'] = $wynikk[1];
  9.  
  10.  
  11.  
  12. foreach ($stats['ip'] as $key => $value) {
  13. echo $value.':'.$stats['port'][$key].'<br>';
  14. $dane = $value.':'.$stats['port'][$key];
  15. $file = "baza.txt";
  16. $fp = fopen($file, "a");
  17. flock($fp, 2);
  18. fwrite($fp, $dane);
  19. flock($fp, 3);
  20. fclose($fp);
  21. }
  22.  
  23. ?>
  24. </pre>


Lecz mam problem bo dodalem zapis do plik i zapisuje ale w takiej postaci:
Cytat
195.116.53.12:3124195.116.53.12:3128128.232.103.203:3124130.192.157.131:312883.2
28.94.3:8118128.4.36.11:3128155.246.12.164:3128128.59.20.228:3128137.165.1.111:31
28129.10.120.193:3128174.142.104.57:3128152.3.138.5:312872.36.112.71:3128142.150.
238.12:312872.36.112.72:3128129.186.205.77:312835.9.27.27:3128...itp

a chcialbym abo zapisalo sie jeden pod drugim tak:
Cytat
195.116.53.12:3124
195.116.53.12:3128
128.232.103.203:3124
130.192.157.131:3128
83.228.94.3:8118
128.4.36.11:3128
...ipt...




Jak zrobic by sie zapisywalo jedno pod drugim?? Mecze sie i nie umiem se z tym poradzic by sie zapisywalo po mojej mysli. Z gory dzieki za pomoc

Juz nie trzeba sam doszedlem dodajac "\n\r" tutaj w tej lini:
  1. $dane = $value.':'.$stats['port'][$key]."\n\r";
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.