Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Praser, chyba to tak się nazywa:)
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Deen
Witam, ponownie szanownych użytkowników forum.
Tym razem nie proszę o wskazówkę drobną, proszę o pomoc przy czymś bardziej skomplikowanym.
Potrzebuję skrypt którego działanie opisuję poniżej.
Mam stronę internetową przypuśćmy liczby.php
Jej treść to: 776663 / 776662
Oczywiście treść jest przykładowa, potrzebuję skryptu który:
wczyta plik licz.php znajdzie liczbę 24 na zasadzie: znajdź pierwszy ciąg liczb i przypisz go do zmiennej $i gdy napotkasz spacje przerwij, znajdź następny ciąg znaków i przypisz go do drugiej zmiennej.
Dobrze by było gdyby skrypt na końcu wypisał te zmienne poprzez echo.

Wskazówki dodatkowe: ten ciąg cyfr ma zawsze jednakową długość, załóżmy, że jest to 8.
Najprościej można opisać skrypt: znajdź 8 cyfr zapisz do zmiennej, znajdź drugie 8 cyfr zapisz do zmiennej. Wypisz obie zmienne.

Pozdrawiam
pablo89pl
Parser jeżeli już

Poszukaj sobie na temat:
preg_match
explode
substr

jest dużo możliwości

np.
  1. $tresc= "77666311 77666266";
  2.  
  3. preg_match("#\d{8}#", $tresc, $znalezione);
  4. print_r($znalezione);
i zobacz co wyrzuca Ci, i sobie z tego wyciągnij
Deen
a jak zrobić żeby dla $tresc przypisało źródło wybranej strony dajmy na to źródło http://wortal.php.pl/index.php oczywiscie chodzi o kod html...
pablo89pl
jka chcesz pobrac treść zewnętrznej strony to CURL bądź:

$tresc = file_get_contents("http://wortal.php.pl/index.php") ;
Deen
Dzięki bardzo:)
Zrobiłem to w troche inny sposób:) Przerobienie gotowca
  1. <?php
  2. #usage:
  3. $r = new HTTPRequest('strona z kodem w ktorej znajduja sie dwie liczby po 150 cyfr);
  4. echo $r->DownloadToString();
  5.  
  6. class HTTPRequest
  7. {
  8. var $_fp; // HTTP socket
  9. var $_url; // full URL
  10. var $_host; // HTTP host
  11. var $_protocol; // protocol (HTTP/HTTPS)
  12. var $_uri; // request URI
  13. var $_port; // port
  14.  
  15. // scan url
  16. function _scan_url()
  17. {
  18. $req = $this->_url;
  19.  
  20. $pos = strpos($req, '://');
  21. $this->_protocol = strtolower(substr($req, 0, $pos));
  22.  
  23. $req = substr($req, $pos+3);
  24. $pos = strpos($req, '/');
  25. if($pos === false)
  26. $pos = strlen($req);
  27. $host = substr($req, 0, $pos);
  28.  
  29. if(strpos($host, ':') !== false)
  30. {
  31. list($this->_host, $this->_port) = explode(':', $host);
  32. }
  33. else
  34. {
  35. $this->_host = $host;
  36. $this->_port = ($this->_protocol == 'https') ? 443 : 80;
  37. }
  38.  
  39. $this->_uri = substr($req, $pos);
  40. if($this->_uri == '')
  41. $this->_uri = '/';
  42. }
  43.  
  44. // constructor
  45. function HTTPRequest($url)
  46. {
  47. $this->_url = $url;
  48. $this->_scan_url();
  49. }
  50.  
  51. // download URL to string
  52. function DownloadToString()
  53. {
  54. $crlf = "\r\n";
  55.  
  56. // generate request
  57. $req = 'GET ' . $this->_uri . ' HTTP/1.0' . $crlf
  58. . 'Host: ' . $this->_host . $crlf
  59. . $crlf;
  60.  
  61. // fetch
  62. $this->_fp = fsockopen(($this->_protocol == 'https' ? 'ssl://' : '') . $this->_host, $this->_port);
  63. fwrite($this->_fp, $req);
  64. while(is_resource($this->_fp) && $this->_fp && !feof($this->_fp))
  65. $response .= fread($this->_fp, 1024);
  66. fclose($this->_fp);
  67.  
  68. // split header and body
  69. $pos = strpos($response, $crlf . $crlf);
  70. if($pos === false)
  71. return($response);
  72. $header = substr($response, 0, $pos);
  73. $body = substr($response, $pos + 2 * strlen($crlf));
  74.  
  75.  
  76. // redirection?
  77. if(isset($headers['location']))
  78. {
  79. $http = new HTTPRequest($headers['location']);
  80. return($http->DownloadToString($http));
  81. }
  82. else
  83. {
  84. //return($body);
  85. $pizza = $body;;
  86. preg_match("#\d{150}#", $body, $znalezione);
  87. $liczba1 = $znalezione[0];
  88.  
  89. $pieces = explode(" + ", $pizza);
  90. $liczba25 = $pieces[1]; // piece1
  91. preg_match("#\d{150}#", $liczba25, $znalezione1);
  92. $liczba2 = $znalezione1[0];
  93.  
  94. echo "$liczba1<br />$liczba2";
  95. }
  96. }
  97. }
  98.  
  99. ?>

Nie wiem czy dobrze ale wypisuje mi te dwie liczby winksmiley.jpg
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-2024 Invision Power Services, Inc.