Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Wyrażenia regularne explode i ereg_replace [php]
Kozazone
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.01.2007

Ostrzeżenie: (0%)
-----


Witam mam mały problem :
1. Zczytuje ze strony dane w postaci stringa
2. chce wyłuskać z nich liczby ( Korzystam z wyrażenia regularnego ale coś nie działa)
Proszę o pomoc bo sam już nie wiem dlaczego to nie działa, może po prostu źle rozumiem działanie funkcji ereg_replace lub explode
Chcę na razie tylko wyłuskać dane .

Oto dane z pliku tekstowego do którego zrzucam ze strony :(oczywiscie tutaj nie widać znaków nowej linii ktore są normalnie widoczne w pliku txt)
numer data losowania L_1 L_2 L_3 L_4 L_5 L_6 L_7 L_8 L_9 L_10 L_11 L_12 L_13 L_14 L_15 L_16 L_17 L_18 L_19 L_20
3768 2007-08-29 46 64 69 6 53 43 35 58 50 23 8 16 45 7 59 44 74 73 18 3
3767 2007-08-28 6 11 80 37 75 39 19 42 78 43 76 57 24 47 48 1 64 66 9 69

Jak widać jest to plik ze strony lotka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a oto mój kod:
  1. <?php
  2.  
  3. ?>Wprowadź adres strony:<br />
  4.  
  5. <form method="post" action="pierwszy.php"> 
  6. <input type="text" name="adres" style="width: 300px;" /><br />
  7. <hr /> 
  8. <br /><input name="submit" type="submit" value="wprowadź adres" />
  9. </form>
  10. <?php 
  11. $adres= $_POST['adres'];
  12.  
  13.  
  14. function wyluskaj_ze_strony($adres1)
  15. {
  16. $ch = curl_init($adres1);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18. $zm1=curl_exec($ch);
  19. global $zmieniony;
  20.  $zm2=nl2br($zm1);
  21. curl_close($ch);
  22. $wzorzec = "^(([0-9]{4})-([0-9]{2})-([0-9]{2}))$";
  23. $wpis = 'ss';
  24. $zmieniony = ereg_replace($wzorzec,$wpis,$zm1);
  25. //$zm3=explode($wzorzec,$zm1);
  26. $rozmiar = sizeof($zm3);
  27. /*for($i=0;$i<$rozmiar;$i++)
  28. {
  29. echo $zm3[$i];
  30. echo "<br /><br />";
  31. } */
  32. echo $zmieniony;
  33. $fp = fopen("dane.ait", "w");
  34. fwrite($fp,$zmieniony);
  35. fclose($fp);
  36. }
  37. if($adres){
  38. wyluskaj_ze_strony($adres);
  39.  
  40. }
  41. else
  42. {echo "wprowadź poprawny adres strony";}?>


Ten post edytował Kozazone 30.08.2007, 17:59:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
drPayton
post
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


No do explode jako separator trzeba string podać, a nie regexpa. Do tego celu użyj preg_split (z odpowiednim filtrem jeśli potrzebny, np PREG_SPLIT_DELIM_CAPTURE spowoduje, że separator pozostanie w tablicy jako element)
Go to the top of the page
+Quote Post
Kozazone
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.01.2007

Ostrzeżenie: (0%)
-----


dzieki za odpowiedź oto jak rozwiązałem mój problem co prawda odpowiedź odczytałem jak już to zrobiłem ale i tak dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) :
  1. <?php
  2.  
  3. ?>Wprowadź adres strony:<br />
  4.  
  5. <form method="post" action="pierwszy.php"> 
  6. <input type="text" name="adres" style="width: 300px;" /><br />
  7. <hr /> 
  8. <br /><input name="submit" type="submit" value="wprowadź adres" />
  9. </form>
  10. <?php 
  11. $adres= $_POST['adres'];
  12.  
  13.  
  14. function wyluskaj_ze_strony($adres1)
  15. {
  16. $ch = curl_init($adres1);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18. $zm1=curl_exec($ch);
  19. global $zmieniony;
  20.  $zm2=nl2br($zm1);
  21. curl_close($ch);
  22.  
  23.  $zm3=preg_split("/(([0-9]{1,4}).([0-9]{4})-([0-9]{2})-([0-9]{2}))/",$zm1);
  24.  
  25. $rozmiar = sizeof($zm3);
  26.  
  27. echo "rozmiar to:".$rozmiar."<br />";
  28. for($j=2;$j<$rozmiar;$j++)
  29. {$zm4=$zm3[$j];
  30. $rozbij = preg_split("/([^0-9]{1,20})/",$zm4);
  31.  
  32.  
  33. $rozm = sizeof($rozbij);
  34.  
  35.  
  36.  $rozbij3 = sort($rozbij);
  37. for($z=1;$z<$rozm;$z++)
  38. {$tabl[$j-2][$z-1]=$rozbij[$z];
  39. $tabl2[$j-2][$rozbij[$z]-1]=$rozbij[$z];
  40.  
  41. echo $tabl[$j-2][$z-1]." ";
  42. }
  43. $tablica[80];
  44.  
  45. for($zl=1;$zl<81;$zl++)
  46. {
  47. if($tabl2[$j-2][$zl-1]==$zl)
  48. {$tablica[$zl-1]=$tablica[$zl-1]+1;}
  49. }
  50.  
  51. $implozja=implode(' ',$rozbij);
  52. $fp = fopen("dane.txt", "ab");
  53. fwrite($fp,$implozja."\n");
  54. fclose($fp);
  55. echo "<br />
  56. <br />";
  57. } 
  58. for($i=0;$i<80;$i++)
  59. {$k=$i+1;
  60. echo "Tablica dla ".$k." wynosi:".$tablica[$i]."
  61. <br />";
  62. }
  63.  
  64. }
  65. if($adres){
  66. wyluskaj_ze_strony($adres);
  67.  
  68. }
  69. else
  70. {echo "wprowadź poprawny adres strony";}?>


Ten post edytował Kozazone 1.09.2007, 11:02:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.09.2025 - 01:49