Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 1. 6. 2011, 15:47:55 · Upravil/a: Mufna
Zdravím Vás. Při uploadu souboru rozděluji textový řetězec (název souboru včetně přípony) na název a příponu pomocí tohoto:
$file = explode(".", $_FILES["soubor"]["name"]); $nazev = $file[0] $pripona = $file[1] Problém ale samozřejmě nastane ve chvíli, kdy součástí samotného názvu souboru (bez přípony) je i tečka. Jak to mám ošetřit, aby se funkce explode() použila pouze na poslední tečku v řetězci ? Hlavně bych byl rád, kdyby to šlo řešit nějak jednoduše. Předem díky za každou radu. |
||
Marek88 Profil |
#2 · Zasláno: 1. 6. 2011, 16:01:33 · Upravil/a: Marek88
Napadá mě třeba:
$file = explode(".", $_FILES["soubor"]["name"]); $pripona = $file[count($file)-1]; // nebo lépe asi: $pripona = end($file); unset($file[count($file)-1]); $nazev = implode(".", $file); |
||
Taps Profil |
#3 · Zasláno: 1. 6. 2011, 16:02:21
Mufna:
já jsem problém vyřešil takto <? function upload_web($s){ $data=explode('.',$name); $koncovka=array_pop($data); if(strpos($name,$koncovka)!==false){ return substr($name,0,strpos($name,$koncovka)-1).'.'.$koncovka; } ?> |
||
Ernie Profil |
#4 · Zasláno: 1. 6. 2011, 16:02:37
<?php $pripona = strrchr($_FILES["soubor"]["name"], "."); $nazev = substr($_FILES["soubor"]["name"], 0, -strlen($pripona)); ?> |
||
Jozin Profil |
#5 · Zasláno: 1. 6. 2011, 16:05:46
Zdravím,
<?php list( $nazev, $pripona ) = explode( "\036", preg_replace('~(.+)([\.][a-zA-Z]+$)~', "$1\036\$2", $file) ); Možná ti to příjde složité, ale je to jednoduchý regulár.... Možná by někoho napadlo jednodušší řešení, ale já rád nechávám práci něčemu jinému... jestli jde ještě optimalizovat ten regulár, tak ať mě někdo opraví ;) |
||
meris Profil |
#6 · Zasláno: 1. 6. 2011, 16:11:39
$tecka = strrpos(".", $_FILES["soubor"]["name"]); if ($tecka !== false ) { // ve jmene souboru se tecka nachazi $nazev = substr( $_FILES["soubor"]["name"], 0, $tecka ) ; $pripona = substr( $_FILES["soubor"]["name"], $tecka +1) ; } else { // ve jmene se nenachazi $nazev = $_FILES["soubor"]["name"]; $pripona = "neznama"; } |
||
Mufna Profil |
#7 · Zasláno: 1. 6. 2011, 16:26:50
Díky všem za reakce. Nejpoužitelnější pro mě je způsob, který poradil Ernie. Takže to takto mám a funguje to podle mých představ. Ještě jednou díky.
|
||
Časová prodleva: 13 let
|
0