Post
#1
|
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%)
|
Mam problem ze stworzeniem schematu stringa i pozyskiwaniem dzieki niemu odpowiednich zmienych.
Na samym wstepie spotkalem sie z problemem przy funkcji sscanf. Przy kodzie: [php:1:a4eed5a715]<?php $schema = "index.php?/{module}/{action}"; $link = "index.php?/admin/show_actions"; $translate = array( "{module}" => "%2$s", "{action}" => "%1$s", ); $schema = strtr( $schema, $translate); $n = sscanf($link, $schema); ksort($n); print_r($n); ?>[/php:1:a4eed5a715] zwraca ona: Kod Array
( [0] => [1] => [4] => admin/show_actions ) a wiec nie traktuje ona '/' jako przerwy i przyporzadkowywuje nastepna zmienna do pierwszej. W manualu znalazlem cos takiego Cytat An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below.
Problem w tym ze przykladow nie ma a uzycie ' jako prefiksu przed slashem nie pomaga. Drugi problem jaki sie pojawi to to ze link moze miec zmienna liczbe parametrow i nie za bardzo sobie wyobrazam (jeszcze?) jak pozniej zapetlic reszte parametrow aby schemat Kod $schema = "index.php?/{module}/{action}/{paramName}/{paramValue}"; dzialal rowniez w przypadku Kod "index.php?/admin/show_actions/param1/value1/param2/value2"
Ogolnie mowiac nie uperam sie przy tym sposobie. Jesli ktos ma lepszy to bede wdzieczny za udzielenie wskazowek, jesli jedak nie to moze ktos sie przyjzy powyzszemu kodowi. Z gory dziekuje. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%)
|
albo moze tak:
[php:1:410e191437]<?php $string="index.php?var1/value1/var2/value2" ; $string = substr($string,strpos($string,'?')+1); $temp = explode('/',$string); $i=0; while(isset($temp[$i+1])) { $array[$temp[$i]] = $temp[$i+1]; $i+=2; } print_r($array); ?>[/php:1:410e191437] Nie wiem czy o to Ci chodzi, ale w każdym taka instrukcja ppowinna zwrócić tablice assocjacyjna z odpowiednimi wartosciami. Problem pojawi się, gdy w adresie nie kazdą wyliczona zmienna będzie miała przypisaną wartosc. UPDATE mnostwo tu bledow zaraz poprawei:) UPDATE2 ok teraz dziala:) |
|
|
|
rzseattle schemat stringa 23.03.2004, 22:43:23
rmn Podejrzewam, ze o tym wiesz, ale efekt, który chce... 23.03.2004, 23:11:28
rzseattle CytatPodejrzewam, ze o tym wiesz, ale efekt, który... 23.03.2004, 23:23:08
rmn dziwne sscanf ze spacjami w schema dziala a ze sal... 23.03.2004, 23:40:05
rzseattle CytatA wyrazenia regularne?
Wyrazenia regularne s... 24.03.2004, 00:00:04
rmn adnotacja do ostatniego mojego updatu:
Chodziło mi... 24.03.2004, 00:12:59
rzseattle Cytatnie zadziałaja.. wlasnie nie zadziala :/ (zob... 24.03.2004, 00:38:33 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 03:48 |