Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak zamienic znak z tablicy na liczbe?, problem z petla
webspy
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Mam tablice w postaci:
  1. $strony = $ile[0][$s];

i chciałbym zrobic petle:
  1. for( $x = 0, $x <= $strony; $x++ ){
  2.  
  3. echo "$x";
  4.  
  5. }


TYlko ze zmienna $strona ma chyba inny typ i nie chce dzialac. moge prosic o pomoc??
zmienna $strona to np "4" z tablicy

Ten post edytował webspy 16.01.2010, 01:23:58
Go to the top of the page
+Quote Post
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Hej,

Wpierw przeprowadź prostą diagnostykę i sprawdź, czy aby na pewno zmienna $strony nic nie zwraca, możesz to zrobić prostym kodem:

  1. echo '<pre>';
  2. var_export($strony);
  3. echo '</pre>';


Tak swoją drogą lepiej poruszać się po tablicach konstrukcją foreach, ale oczywiście nie wiem co chcesz uzyskać, więc tymczasowo zastosuj się do wskazówki powyżej.

Pozdrawiam.
Go to the top of the page
+Quote Post
Mustava
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 2.03.2009

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


Może:
  1. $y=$strony*1;


Ten post edytował Mustava 16.01.2010, 01:39:24
Go to the top of the page
+Quote Post
webspy
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


po sprawdzeniu dostełem coś takiego
'4'

Chciałbym poprostu aby pętla powtarzała się tyle ile wczytam z tablicy czyli np 4

  1. (
  2. [0] => Array
  3. (
  4. [0] => 2
  5. [1] => 3
  6. [2] => 4
  7. [3] => 4
  8. [4] => 2
  9. [5] => 3
  10. [6] => 4
  11. [7] => 4
  12. )
  13.  
  14. [1] => Array
  15. (
  16. [0] => 2
  17. [1] => 3
  18. [2] => 4
  19. [3] => 4
  20. [4] => 2
  21. [5] => 3
  22. [6] => 4
  23. [7] => 4
  24. )
  25.  
  26. )

I chce otrzymać ostatnią liczbę tablicy czyli to 4 i zrobić pętle powtarzającą się "4" razy

Go to the top of the page
+Quote Post
strife
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


  1. $ile = 4; // ile razy ma się powtarzać ta pętla
  2.  
  3. for ($i = 0; $i < $ile $i++) {
  4. foreach ($tablica as $v) { // jednak tutaj wartosc jest kolejną tablica
  5. foreach ($v as $klucz => $wartosc) {
  6. echo $klucz . ' => ' . $wartosc . "<br />"; // hm ..
  7. }
  8. echo "<hr />";
  9. }
  10. }


Piszę z palca nie wiem czy będzie działać, oczywiście zmienna $tablica to Twoja $strony. Może napisz dokładnie co chcesz uzyskać krok po kroku bo trochę strzelam w ciemno, czemu to ma służyć?

Acha, ostatni element tablicy możesz uzyskać poprzez array_pop.

Pozdrawiam
Go to the top of the page
+Quote Post
webspy
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Tylko właśnie nie wiem ile razy ma się powtarzać ta pętla bo to $ile właśnie mam wziąć z tablicy,
Wczytuję z tablicy ostatnią wartość czyli np będzie to 2 i właśnie 2 razy pętla się powtórzy.

Problem polega na tym że to co wczytam z tablicy to znak 4 a ja chciałbym żeby mi to odczytywało jako liczba 4 bo jeśli zrobię warunek $x <= $strona to zmienną $strona rozpoznaje jako 0 bo to chyba dla php znak a nie liczba 2.

Mam coś takiego:
  1. preg_match_all( '#<span>([0-9])</span>#s', $strona, $ile);
z tego mam tablicę, wczytuję sobie wartość z tablicy
  1. $strony = $ile[0][2];
i teraz chciałbym zrobić pętle która się powtórzy właśnie tyle razy ile wczytałem z tablicy
  1. for( $x = 0, $x <= $strony; $x++ )
no i wszystko by grało tylko że ta wartość $strona rozpoznawana jest jako 0, może trzeba ją jakość konwertować na liczbę a nie znak. jak wezmę echo "$strona"; to wyświetla 4 ale jak już dam do pętli to jest 0.
Go to the top of the page
+Quote Post
bastard13
post
Post #7





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


masz:
  1. for( $x = 0, $x <= $strony; $x++ )

a powinno być:
  1. for( $x = 0; $x <= $strony; $x++ )

tzn. masz przecinek, a powinien być średnik.
A tak na marginesie to zawsze możesz rzutować zmienną na inny typ lub użyć funkcji intval().
  1. $liczba=intval($strona);
  2. //lub
  3. $liczba=(integer)$strona;
Go to the top of the page
+Quote Post
webspy
post
Post #8





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Nie działa ta konwersja na liczbe, nie wiem co może być grane.
Może podam cały kod:
  1. <?
  2. $curl = curl_init();
  3. //Inicujemy curl
  4.  
  5. curl_setopt($curl, CURLOPT_URL, 'http://allegro.pl/show_user_auctions.php?uid=9915110');
  6. //pobieramy dane z "http://www.lfsworld.net/?win=stats&racer=rafal612b2"
  7.  
  8. curl_setopt($curl, CURLOPT_REFERER, "http://www.google.pl/");
  9. //ustawiamy refferer na www.google.pl (niektóre strony mają zabezpieczenia
  10.  
  11. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  12. //podążamy za ewentualnym przekierowaniem
  13.  
  14. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  15. //wyniku nie wyświetlamy a zapisujemy do zmiennej co ułatwia prace nad nim
  16.  
  17. curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
  18. //ustawiamy useragent (niektóre strony mają zabezpieczenia)
  19.  
  20. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  21. //Maxymalny czas połączenia ze stroną
  22.  
  23. curl_setopt($curl, CURLOPT_HEADER, 0);
  24. //nie chcemy dołączać nagłówka
  25.  
  26. $strona = curl_exec($curl);
  27. //uruchamiamy skonfigurowanego curla
  28.  
  29. curl_close($curl);
  30. //zamykamy
  31. preg_match_all( '#<span>([0-9])</span>#s', $strona, $ile);
  32.  
  33. $elementy=count($ile[0]);
  34. $s = $elementy-1;
  35. $strony = $ile[0][$s];
  36. echo "$strony";
  37. ##
  38. $liczba=intval($strony);
  39. //lub
  40. $liczba=(integer)$strony;
  41.  
  42. for( $x = 0; $x <= $liczba; $x++ ){
  43.  
  44. echo "$x"; //tu powinno pokazac 01234 a wyswietla tylko 0
  45.  
  46. }
  47.  
  48.  
  49. ?>
Go to the top of the page
+Quote Post
bastard13
post
Post #9





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


wrzuć sobie:
  1. echo $ile[0][$s].'<br />';

i napisz co ci wyrzuca.
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: 26.09.2025 - 16:15