PHP-Entwicklung
Posts 1-3 of 3
-
Nicolas OdrichThe company name is only visible to registered members.strcspn liefert immer 0 als Fundstelle
Hallo Zusammen,
ich weiß, das das Forum PHP5 heißt, aber ich bitte trotzdem darum Lösungsvorschläge/-ansätze so zu schreiben, dass diese sogar PHP3 konform sind. Darüber hinaus ist mein "Fachwissen" das, was ich mir aus Büchern oder Open-Source-Projekten (Quellcodes) aneigenen konnte. Ich achte dabei jedoch immer darauf nicht sinnfrei zu kopieren, sondern den Code zu verstehen und daraufhin meine PHP Dateien zu verbessern.
Aber nun zum eigentlichen Problem :
ich versuche in einer Zeile (also einer einzelnen verschachtelten Anweisung) ein "root" Verzeichnis zu ermitteln.
Da das ganze relativ unabhängig von der PHP Konfiguration laufen soll arbeite ich mit einer umfangreichen Überprüfung aller möglichen Server-Variablen.
etwa nach dem schema
PHP-Code:
$root = ( $wenn_Bedingung ) ? ( ( $wenn_andere_Bedingung ) ? "dies" : "jenes" ) : ( ( $wenn_andere_Bedingung ) ? "ein anderes dies" : "ein anderes jenes" );
nun bin ich dabei an folgendem punkt stehengeblieben :
ich muss innerhalb meiner Anweisung einen String untersuchen, oder einen Teil davon ermitteln (anhand des auftretens eines Suchstrings innerhalb einer Zeichenkette).
PHP-Code:
strcspn( substr( $string_platzhalter , $start_platzhalter ) , "Verzeichnissname/" );
und da steckt irgendwo das Problem, ich brauche den "/" um sicher zu gehen, dass es nicht "Verzeichnissname.sufix" ist, die gefunden wird. lasse ich den / weg, so kann eben das passieren
lasse ich den "/" weg, wird die korrekte Position zurückgegeben, setze ich den "/" in den Suchstring, so erhalte ich immer Position 0, was in meinem fall eher schadet als hilft (denn bei Position 0) wird auf ein defaultwert geprüft.
gibt es irgendeine Möglichkeit die Position mit "/" in einem Suchstring zu ermitteln. wichtig dabei ist, es muss eine einzelne Anweisung sein, damit ich diese in meine Abfrage integrieren kann.
Kann sobald ich diese Anweisung fertig habe diese ja mal für alle interessierten posten
Dank im Voraus
- 19 Mar 2010, 8:49 pm
-
Post visible to registered members
-
Nicolas OdrichThe company name is only visible to registered members.Re^2: strcspn liefert immer 0 als Fundstelle
Den Gedanken hatte ich auch, aber hat nicht geholfen.
Bin aber dank meines guten alten PHP3 Wälzers auf die richtige Funktion gestoßen :)
strcspn sucht nach nicht übereinstimmenden Zeichen, mit strpos bekomme ich jedoch das was ich suchte.
werde meine fertige Lösung später hier posten.
Es handelt sich dabei um ein "einfaches"
Define ("ROOT_path" , xxx );
dabei wird der Konstanten ROOT_path immer der absolute Pfad auf das $DIR_name Verzeichnis zugewiesen. egal wo man sich innerhalb des Projektes bewegt.
somit spart man sich ja dann das setzen eines $basedir oder ähnlichem.
Ich denke es gibt bereits solche Lösungen, aber bin beim Programmieren recht eigen und entwickele alles selbst (auch wenn ich ab un zu mal neugierig code durcharbeite - das Ergebnis ist immer 100% ich).
- 19 Mar 2010, 9:17 pm
