![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam pytanie z dłuuugiego ciągu tekstowego: zmienna $txt chce znalezc pierwszy ciąg który wystąpi w takim formaci w tekscie: "from $cyfrancyfracyfracyfracyfra" czyli np. "from $2345" znajduje ciąg from $tylkocyfryod2domax5cyfr ze zmiennej txt co robie nie tak? preg_match_all("/^from $[0-9]{2,5}$/", "$txt", $out, PREG_PATTERN_ORDER); czy ten dolar za from przeszkadza? niestey w tym ciagu wystepuje on jako znak waluty. prosze o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 10 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
przed dolarem \
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki
ale dalej cos jest nie tak ![]() echo $out; daje wynik "Array" |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
bo rezultatem jest tablica, daj print_r($out) zamiast echo.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
dalej nic z tego
wynik: Array ( [0] => Array ( ) ) --------------- preg_match_all("/^from \$[0-9]{2,5}$/", $txt, $out, PREG_PATTERN_ORDER); print_r($out); zebysmy sie dobrze zrozumieli potrzebuje po prostu wyciagnac cene do jakiejs zmiennej int (liczba min dwucyfrowa) w ciagu $txt szuka ciągu "from \$jakasliczba" np. ...from $2345... i wyciaga 2345 do jakiejs zmiennej jesli jakasliczka jest jedno cyfrowa szuka dalej takiego samego ciagu gdzie bedzie liczba dwucyfrowa [0-9]{2,5} Ten post edytował changer 28.02.2010, 13:01:45 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
dalej ten sam bład
![]() jak mozesz zerknij na moj post o 1 wyzej poprawilem bo sam sie zamotalem ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chcesz dostać tylko tablicę zawierającą dane razem z "from $" - usuń nawiasy z wzorca. Ten post edytował sniffer32 28.02.2010, 14:21:16 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
DZIĘKI WIELKIE, DZIAŁA
![]() ![]() mam wynik: Array ( [0] => Array ( [0] => from $730 [1] => from $730 [2] => from $4797 [3] => from $645 [4] => from $645 [5] => from $682 [6] => from $695 [7] => from $731 [8] => from $755 [9] => from $791 [10].... jak mozesz podpowiedz mi jeszcze jak teraz zapisac 3 ceny czyli from $12 [1] from $1234 [4] from $1234 [5] do zmiennych INT odpowiednio bez from $ $cena1 $cena2 $cena3 Ten post edytował changer 28.02.2010, 14:39:21 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 2 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Parse error: syntax error, unexpected '[' in /home/.....
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 2 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
po co tworzyć nowe zmienne ? nie lepiej zachować je w jednej tablicy ? ($out[1]).
konwersja na typ INT:
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
ahhh, "zmeczenie materialu" chyba juz mam
![]() ---------------------------------------------------------------------- preg_match_all('/from \$([0-9]{2,5})/', $strona2, $out, PREG_PATTERN_ORDER); print_r($out[1]); // wynik Array ( [0] => 730 [1] => 730 [2] => 4797 [3] => 645 [4] => 645 [5] => 682 [6] => 695 [7] => 731 [8] => 755 [9] => 791 [10] => 838 [11] => 839 [12] => 909 [13] => 1110 [14] => 2596 [15] => 4629 [16] => 4868 ) $cena1 = (int) substr($out[1], 6); $cena2 = (int) substr($out[2], 6); $cena3 = (int) substr($out[3], 6); $cena4 = (int) substr($out[4], 6); $cena5 = (int) substr($out[5], 6); echo "$cena1"; echo "$cena2"; echo "$cena3"; echo "$cena4"; echo "$cena5"; //wynik 00000 czemu? |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat // wynik Array ( [0] => 730 [1] => 730 [2] => 4797 [3] => 645 [4] => 645 [5] => 682 [6] => 695 [7] => 731 [8] => 755 [9] => 791 [10] => 838 [11] => 839 [12] => 909 [13] => 1110 [14] => 2596 [15] => 4629 [16] => 4868 ) $cena1 = (int) substr($out[1], 6); dostajesz 0 i prawidłowo ![]() Cytat $cena1 = (int) substr($out[1], 6); $cena2 = (int) substr($out[2], 6); $cena3 = (int) substr($out[3], 6); Tablica $out ma tylko 2 elementy, odwołuj się $out[1][klucz] i przeczytaj mojego poprzedniego posta. Ten post edytował sniffer32 28.02.2010, 15:10:20 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 2 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
mam teraz
preg_match_all('/from \$([0-9]{2,5})/', $strona2, $out, PREG_PATTERN_ORDER); print_r($out[1]); foreach ($out[1] as &$cena) { $cena = (int) $cena; } //blad Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /home..... czy mogbys mi dokladniej podpowiedziec jak nie stosujac nowych zmiennych wyswietlic np echem "piątą cenę" |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@TNT
nie no, nie ma sprawy ![]() @changer jeżeli tak bardzo upierasz się przy możliwości odwoływania się w stylu $cena1, $cena2.. to proponuje bardziej elastyczny sposób, niż wpisywanie ręcznie wszystkich zmiennych.
ile cen by nie znalazło, przypisze je automatycznie poczynając od $cena1 i skonwertuje na liczbę całkowitą. Ten post edytował sniffer32 28.02.2010, 15:28:47 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
znaczy sie jesli mozna sie obejsc bez zmiennych typu $cena1 $cena2 to ok
![]() tylko w jaki sposob je wyswietlic np echem np piątą wartost z array stosujac $out[1]klucz ? tzn jak dokladnie |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 12:46 |