String teilen und zählen

Dustin84

Erfahrenes Mitglied
Hallo,

ich habe hier eine Varibale
PHP:
$pathUnterUnternavi

// Inhalt ist: /extranet/bilddatenbank/dokumentation/2005/frosta_bueckeburg.php

Wie kann ich den String nun nach den Slashes teilen und zählen?
Gezählt werden soll extranet, bilddatenbank, dokumentation und 2005.
Ergebnis wäre also 4.

Wie ist das möglich?
 
ok, ich habs:

PHP:
$pfadstring = explode("/", $pathUnterUnternavi);
echo $wordTotal = count($pfadstring);

Das Array hat nun 6 Stellen und an letzter befindet sich die "index.php"
Wie kann ich die index.php rauslöschen?
So, dass das Zählergebnis dann nur noch 5 ist?
 
PHP:
$pfadstring = explode("/", $pathUnterUnternavi);
unset($pfadstring['index.php']);
echo $wordTotal = count($pfadstring);

Das mit dem unset will nicht klappen. Damit durchsuche ich das Array nach index.php und lösche den Wert. Oder etwa nicht?
 
Du hast mehrere Möglichkeiten. Explode (hast du ja selber herausgefunden) oder das Zeichen / zählen

PHP:
<?php 
    $string = "/extranet/bilddatenbank/dokumentation/2005/frosta_bueckeburg.php";
    
    //String in ein Array umwandeln
    $array = explode("/", $string);
    
    //letzter Eintrag entfernen
    array_pop($array);

    //Array zählen
    echo "Anzahl mittels explode: ".count($array) ."<br />";
    
    //Lösung mittels zählen von /
    $data = count_chars($string);
    echo "Anzahl mittels count_chars: ". $data[ord("/")] ."<br />";
?>
 
ja das ist fast gut :-)

Aber es soll nicht immer der letzte Wert gelöscht werden, sondern nur dann, wenn er "index.php" lautet.
 
PHP:
if (end($array) == "index.php") {
    array_pop($array); 
}
//ggf ein reset durchführen um den internen Zeiger wieder auf das erste Element im Array zu setzen.
//nur notwendig wenn der Array mit next() verwendet wird
reset($array);
 
Hallo,
wie kann ich mir nur den Zahlenwert anzeigen lassen?
Code:
<?php
    $string = $_SERVER["SCRIPT_NAME"];

    //String in ein Array umwandeln
    $array = explode("/", $string);

    //letzter Eintrag entfernen
    array_pop($array);

    //Array zählen
    echo "Anzahl mittels explode: ".count($array);

Ausgabe
Anzahl mittels explode: 3 /smartstore-50/gmc/gmc-language-netto-export-plugin.html
Also
Anzahl mittels explode: 3

Besten Dank im voraus
 
Ein count() gibt doch immer eine Zahl? Woher kommt der ganze Rest? Deine Ausgabe passt nicht zum geposteten Code
 
Zurück