[PHP] String exploden op

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik heb de volgende functie:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function arg($index) {
  global $args;

  if (isset($_GET['q'])) {
    $args = explode('/', $_GET['q']);
    if ($index > (count($args)-1)) {
      return;
    }
    else {
      return $args[$index];
    }
  }
}

Hier twee voorbeelden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
* q = groenten/winter/4 geeft als $args:

Array
(
    [0] => groenten
    [1] => winter
    [2] => 4
)

* q = groenten/winter/4/ geeft als $args:

Array
(
    [0] => groenten
    [1] => winter
    [2] => 4
    [3] =>
)

Mijn probleem: de array in het tweede voorbeeld zou er toch net zo uit moeten zien als in het eerste voorbeeld? Ik explode op "/" - waar komt $args[3] dan vandaan? Overigens:
code:
1
2
3
4
5
6
7
8
9
* q = groenten/winter/4//////// geeft als $args ook:

Array
(
    [0] => groenten
    [1] => winter
    [2] => 4
    [3] =>
)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

Verwijderd

die ontstaat gewoon doordat je op het eind een slash hebt staan... je kan de slash aan het einde automatisch gaan laten verwijderen of lege records uit je array weggooien... Je string wordt gewoon gesplit op de /, en ja toevallig staat achter de laatste slash niks meer...

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Je kunt dit doen.
PHP:
1
$string= trim($string,'/');

Haalt alle overbodige '/' weg.

[ Voor 18% gewijzigd door Vae Victis op 04-08-2004 13:49 ]


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
@Vae Victis, Sooterd - dank jullie wel! Ik raakte in de waar dat groenten/winter/4////// exact hetzelfde opleverde als groenten/winter/4/. Ik heb er daarom niet aan gedacht de / te trimmen; ging er vanuit dat het probleem ergens anders zet...

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."