OffTopic: 
ich hab ja beides gesagt
regulärer Ausdruck: kleine Hifle bitte.
				
					Collapse
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 ich will da gleich noch was anhängen...
 habe eine opensource-archivfunktion im Einsatz und gebe bei den Suchresultaten folgendermassen den Dateinamen aus:
 
 Dabei wird z.B. folgender Dateiname angezeigt: 5105barnetta.htmlPHP Code:<?php
 $path = $all_search_results ["page_url"][$i];
 $datei = $path;
 $basename = basename ($datei);
 echo $basename;
 ?>
 
 Jetzt würde ich gerne diesen Dateinamen etwas.. auseinander nehmen. Die Zahl am Anfang des Dateinamen steht nämlich für Ausgabe (51) und Jahr (05). Hättet ihr evtl. einen Tipp für mich wie ich diese beiden Zahlen "rausfiltern" kann? Also damit ich dann wirklich folgende Zeile unter jedem Suchergebniss zeigen kann:
 
 Ausgabe 51, Jahr 05
 
 Vielen Dank
 
 
 hab selber was gefunden.. mit "substr" funktioniert es!!!Last edited by Fanello; 16-05-2006, 12:35.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 wenn es halt mehr als 99 ausgaben gibt, wirds du prüfen müssen, ob das fünfte zeichen ne zahl ist und für ausgabe ggf. ne len von 3 statt 2 nehmen müssenPHP Code:$uri = '5105barnetta.html';
 $ausgabe = substr($uri, 0, 2);
 $jahr = substr($uri,2,2);
 echo 'Ausgabe ' . $ausgabe . ', Jahr ' . $jahr;
 
 
 EDIT: 
 nächstes mal mit dem edit-tag damit ichs auch erkenn :P
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 mit nem regulären ausdruck kriegt man auch alles auf einmal hin:
 
 ach blödes forum: [^.] muss heißen [^{backslash}.]PHP Code:$string = 'pfad/zur/datei/5105barnetta.html';
 if (preg_match('@.*/((\d+)(\d{2})[^\.]+)\.([^/]+)@', $string, $info)) {
 /*
 * $info[x]
 * x =
 * 1: dateiname (5105barnetta)
 * 2: ausgabe (51)
 * 3: jahr (05)
 * 4: dateiendung (html)
 */
 print_r($info);
 }
 
 
 '@.*/(({backslash1}d+)({backslash1}d{2})[^{backslash1}.]+){backslash2}.([^/]+)@'
 
 {backslash2} kann man aber auch weglassen
 
 achja: bei dem code ist es egal wie lang die 1. zahl ist. ausgabennummer kann also ein- bis sehr-viel-stellig sein.Last edited by MarkusW; 16-05-2006, 18:22.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 genau so hab ichs gemacht! danke!!Original geschrieben von aimbot
 wenn es halt mehr als 99 ausgaben gibt, wirds du prüfen müssen, ob das fünfte zeichen ne zahl ist und für ausgabe ggf. ne len von 3 statt 2 nehmen müssenPHP Code:$uri = '5105barnetta.html';
 $ausgabe = substr($uri, 0, 2);
 $jahr = substr($uri,2,2);
 echo 'Ausgabe ' . $ausgabe . ', Jahr ' . $jahr;
 
 
 EDIT: 
 nächstes mal mit dem edit-tag damit ichs auch erkenn :P  
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Original geschrieben von rolan
 ich habe mit htaccess (RewriteRule) die dateinamen geändert. hat jemand idee wie man manipulierte dateiname auslesen kann?
 
 also: es war mal index.php?name=neue und server liest neue.htmlIrgendwo da sollte es drin stehen~PHP Code:echo '<pre>' . print_r($_SERVER, 1) . '</pre>';
 
 Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
 bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
 Wie man Fragen richtig stellt
 Comment
 
          
 Moderator
 Moderator

Comment