# Datei endung auslesen!



## Bushman (4. November 2001)

Ich hab da ne Frage, wie kann ich die Dateiendung herausfinden?? Ich bräuchte diese Funktion für nen Upload Script!

Kann vielleicht eienr mal ne Funktion posten??


```
<?php
if ( $sub == "" )
{
?>
<form enctype="multipart/form-data" action="?sub=upload" method="POST">
<input type="file" name="file">
<input type="hidden" name="MAX_FILE_SIZE" VALUE="10000">
<input type="hidden" name="cID" value="17">
<br>
<input type="submit" value="Upload">
</form>
<?php
}
if ( $sub == "upload" )
{
	if ($file_name) 
	{
		$filepath = "pics/";
		$type	  = ".jpg";
		$ziellocation = $filepath.$cID.$type;
		copy($file,$ziellocation);

		unlink($file);
	}
	else
	{
		echo "Keine Datei eingefügt";
	}
}
?>
```


----------



## lorenzi (4. November 2001)

Annahme: Du hast den String der kompletten Datei und willst die Endung herausfinden.

$array = explode(".", $dateiname);
$extension = $array[1];

Tu mir nicht weh wenn ichs falsch verstanden habe und du das alles schon längst weisst  

Gruss aus der Schweiz


----------



## Moartel (4. November 2001)

Es stimmt schon was du geschrieben hast, es gibt dabei nur ein kleines Problem. Wenn mehr als ein Punkt im Dateinamen ist funktioniert das so nicht.
Wenn du das so machst geht es:

```
$array = explode(".", $dateiname); // wie vorher
$extension = array_pop($array); // diesmal wird sicher das letzte element geliefert
```
Vorsicht: array_pop() löscht das letzte Element zusätzlich. Das ist egal wenn du einfach nur die Endung haben willst, wenn du das Array aber weiterverarbeiten willst musst du daran denken!


----------



## Bushman (4. November 2001)

Dankeschön, das wars, was ich brauchte 

Kann mir einer mal genau die Abarbeitung dieses Befehls schreiben??

```
$array = explode(".", $dateiname); 
// Hier liest er ja erst alles nach dem . aus oder wie soll ich das Interpretiern??
$extension = array_pop($array);
// Keine Ahnung :)
```


----------



## Moartel (4. November 2001)

Kann ich.

```
$array = explode(".", $dateiname); 
// der String $dateiname wird an bei jedem Punkt aufgespalten und die einzelnen Teile werden in einem Array gespeichert
$extension = array_pop($array);
// das letzte Feld des Arrays (in dem die Dateiendung OHNE Punkt steht) wird in $extension gespeichert und dann gelöscht
```
Die Funktion gibts also z.B. jpg oder gif zurück, nicht aber .jpg oder .gif!


----------



## mille (5. November 2001)

und wenn einer etwas OHNE Dateiendung hochläd    - mal rein provisorium gefragt ?

dann müsstese denk cih mal gucken ob $extencion nen wert gesetzt hat oder nicht mit


```
if($extension) { echo " wert gesetzt"; } else { echo "Uppload Fehlgeschlagen, da ihre Datei KEINE Endung besitzt *g";}
```


----------



## Moartel (5. November 2001)

Und wenn einer seinen kleinen Bruder hochladen will weil der ihn zu sehr genervt hat:

```
if (is_little_brother($dateiname) == "true") 
  {
   echo "Behalt ihn, was will ich mit dem?";
  }
```
Eigentlich ist die Prüfung ob eine Endung vorhanden ist schon in der ersten Funktion mit drin, denn wenn es keine jpg-Datei ist wird sie abgelehnt. Somit macht mein Test mit dem kleinen Bruder mehr Sinn   .


----------



## Bushman (5. November 2001)

Danke.

Man kann dann ja ganz leicht die Dateiendungen erlauben, die man will!


----------



## lexi (5. November 2001)

```
if (is_little_brother($dateiname) == "true") 
  {
   echo "Behalt ihn, was will ich mit dem?";
  }
```

Kann man noch einfacher schreiben:


```
if (is_little_brother($dateiname))
  echo "Behalt ihn, was will ich mit dem?";
```
Nur zur optimierung deines Styles..


----------

