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: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%)
|
Cytat nie zadziałaja.. wlasnie nie zadziala :/ (zobacz pierwszy post (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ) , ale juz sobie z tym poradzilem wprowadzajac %[^/] . Jednak pojawil sie eszcze jeden problem. Wykorzystujac %1/$[^/] powoduje ze znalezony element jest dodawany na poczatek tablicy potem umieszczam jeszcze drugi ale nastepne elementy chcialbym juz dodawac jak na stos jeden za drugim - niestety narazie jest to niemozliwe
Cytat cannot mix "%" and "%n$" conversion specifiers .
Moze jak nad tym jeszcze posiedze to sie uda jakos to obejsc. Czy naprawde nikt nie zna prostszego sposobu? Update: %1/$[^/] - jest o dupe rozczasc - niby dziala, jak kombinujesz z parametrem to zmienia sie pozycja znalezonego stringa w zwroconej tablicy, ale jak przesuniesz wyrazenie w stringu to tez zmienia pozycje w tablicy grrrr.... |
|
|
|
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
rmn albo moze tak:
<?php
$string="index.php?var1/va... 23.03.2004, 23:22:15
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 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 09:56 |