Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> schemat stringa
rzseattle
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.12.2025 - 12:36