Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „PHP String nach bestimmten Zeichen Löschen“

shadownight

Nicht mehr ganz neu hier

Hallo Community,

Ich bin es mal wieder :).

Bin gerade dabei an einem Filesystem rum zu basteln bis jetzt funktioniert schon alles gut.

Also ich habe mir eine Klasse geschrieben mit der ich das Hauptverzeichnis auslese und dann den aktuellen Ordner/Dateipfad ausgebe und wenn der Benutzer auf einen Ordner klickt wird der Ordner logischerweise an dem Pfad angehängt und der Inhalt ausgegeben nun möchte ich aber das der Benutzer auch einen Ordner hoch gehen kann dazu habe ich mir überlegt das, dass letzte Wort hinter dem letzten befindlichen '/' gelöscht wird und der Pfad dann übergeben wird doch leider weis ich nicht wie genau ich das bewerkstelligen soll.

Wenn ich versuche den String mit explode() auf zu teilen und versuche auszugeben kommt immer 'Error: Arrray to String convertion'

hier mal der Teil wo der pfad ausgegeben wir und das Verzeichnis angezeigt wird.

PHP:
	public static function open_path($path){
		echo getcwd().'/'.$path.'';
		$root = getcwd().'/'.$path;
		$dir = opendir($root);
		
		while($file = readdir($dir))
		{
			if($file != "." && $file != ".." && $file != "_notes")
			{
				$fileinfo = pathinfo($root.'/'.$file);
				
				if(is_dir($fileinfo['dirname'].'/'.$fileinfo['basename']) == true)
				{
					echo '<a href="#" onclick="open_path(\''.$path.'/'.$fileinfo['filename'].'\')"><div id="folder"><p id="txt">'.$fileinfo['filename'].'</p></div></a>';
				}
				else{
					echo '<div id="file">'.$fileinfo['filename'].'</div>';
				}
			}
		}
	}

Vielen Dank schon mal für die Antworten im vorraus.

Mfg Shadownight
 

shadownight

Nicht mehr ganz neu hier

AW: PHP String nach bestimmten Zeichen Löschen

Sorry ist aber leider nicht das was ich suche, ich möchte das latzte Wort hinter dem letzten vorkommenden '/' löschen :) und Verzeichnisnamen lese ich schon durch pathinfo() aus.

Aber danke trotzdem.

Hat sich schon erledigt hab es mit javascript und Ajax gelöst.

Also fileinfo['dirname'] gibt bei mir das gewünschte Ergebniss sieht insgesamt bei mir so aus:

E:\xampp\htdocs\ide

Wenn ich dann auf ein Unterverzeichniss klicke logischerweise so:

E:\xampp\htdocs\ide/projects

nun habe ich noch ein link hinter dem Pfad mit dem einen Ordner zurückspringen kann dazu wollte ich das letzte Element in diesem Fall "/projects" löschen und den String per onClick an die Ajaxfunktion weiterleiten damit der den Vorherigen Ordner also "/ide" ausliest und wiedergibt.

Hoffe habe deine Frage richtig verstanden und beantwortet.

Gruß Shadownight
 
Zuletzt bearbeitet von einem Moderator:

holgermerz

Nicht mehr ganz neu hier

AW: PHP String nach bestimmten Zeichen Löschen

Hi. Versuche es mal mit der "end" Funktion.

$x="E:\xampp\htdocs\ide/projects";
echo end(explode("/", $x));

In dem Fall wird dir projects zurückgegeben. Hier kannst du dann mit der strlen Funktion die Anzahl der Zeichen zählen lassen ($l) und dann mit substr($x,0, -$l) hast du den Pfad ohne "/projects".
Gibt sicherlich bessere Lösungen ....
 

shadownight

Nicht mehr ganz neu hier

AW: PHP String nach bestimmten Zeichen Löschen

Das hört sich ja gut an, habe das aber jetzt mit ajax gelöst.Hier mal meine Lösung damit auch andere die das selbe Problem haben wissen wie ich das Gelöst habe.
PHP:
	/*Funktion zum auslesen der Unterverzeichnisse mit Link zurück bis zum 1. gewählten ordner*/
	public static function open_path($path){
		
		$root 	= str_replace('\\', '/', getcwd().'/'.$path.'/'); 						//Vollen Verzeichnisspfad auslesen
		$dir  	= opendir($root);	  							  						//Ordner öffnen
		$i 	   	= 0;				  							  						//Zählervariable für Umbruch
		$output = '<table border="0" cellpadding="0" cellspacing="0" align="center">';  //Variable mit Tabelle die erweitert wird und später ausgegeben
		
		/* Den aktuellen Verzeichnisspfad ausgeben  */
		echo '<div class="path">
				<a href="#" onclick="get_path();">
					<img src="style/icon/root_dir.png"/>
				</a>
				<a href="#" onclick="back_(\''.$path.'\');"´>
					<img src="style/icon/arrow_back.png" />
				</a>
				'.$root.'
			</div>';


		while($file = readdir($dir))
		{
			if($file != "." && $file != ".." && $file != "_notes") 	//Die standart ausgaben '.' und '..' nicht anzeigen
			{
				$fileinfo = pathinfo($root.'/'.$file);			 	//Verzeichniss und Datein Informationen auslesen
				/* Es stehen nach pathinfo() folgende Informationen zurverfügung   */

				$i++;											
				if($i % 6 == 0 && $i != 0){						  	//Abfragen ob der Counter schon 6 erreicht hatt wenn ja nach 5 ausgaben umbruch
					
					$output .= "<tr><td></td></tr>";			  	//Umbruch zur Tabelle hinzufügen
				}
				if(is_dir($fileinfo['dirname'].'/'.$fileinfo['basename']) == true) //Abfrage ob die Ausgabe Datei oder Ordner ist
				{
					/*Inhalt das Untverzeichnis anzeigen und Link auf die Ordner zum öffnen per Ajax setzen*/
					$output .= '<td>
									<a href="#" onclick="open_path(\''.$path.'/'.$fileinfo['filename'].'\')" 
									onmouseover="show_data(\''.$path.'/'.$fileinfo['filename'].'\');">
										<div id="folder">
											<p id="txt">'.$fileinfo['filename'].'</p>
										</div>
									</a>
								</td>';
				}
				else{
					//Datein ausgeben
					$output .= '<td>
									<div id="file">
										<a href="#" onclick="show_data_file(\''.$path.'/'.$fileinfo['filename'].'\');">
										<p id="ftxt">'.$fileinfo['filename'].'</p></a>
									</div>
								</td>';
				}
			}
		}
		echo $output.='</table>';  //Alles anzeigen und Tabelle beenden
	}

der Ajaxteil

Code:
function back_(path){
		
		var changed = path.split("").reverse().join("");
		// Suche nach ersten vorkommen von "/"
		
		var posSlash = changed.indexOf("/");
		
		var cuttedBack = changed.substr(posSlash+1, changed.length);
		
		var cutted = cuttedBack.split("").reverse().join("");
		
		open_path(cutted);
}

Die Funktion open_path ist einfacher Ajaxrequest umd dne Inhalt nach zu laden.

Hoffe das hilft vllt jemanden.

Noch Danke an alle Antworten war echt Hilfreich ;).

Gruß Shadownight
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben