Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kasowanie rozszerzenia
juniors
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.09.2003
Skąd: zambrow

Ostrzeżenie: (0%)
-----


czy moze ktoś wie jak podczas podbierania nazywy plików z katalogu usunąc rozszerzenie?


--------------------
junior
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
KaMeLeOn
post
Post #2





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


1. To już było... Następnym razem proszę korzystać z wyszukiwarki.
2. Przydatna będzie funkcja [manual:561d2bc924]explode()[/manual:561d2bc924].


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
nobody
post
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 9.07.2003
Skąd: Lublin city

Ostrzeżenie: (0%)
-----


Samo explode bedzie dobre, ale zalozmy ze nazwa pliku ma kilka kropek i dopiero na koncu jest rozszerzenie? Wpadlem na takie cos:
[php:1:7dfd19799a]<?php
$plik="dup.aja.si.a.bmp";
//odnajduje ostatnie wystapienie kropki
$roz=strrchr($plik,".");
//dzieli nazwe pliku na tablice gdzie separatorem jest rozszerzenie
$nazwa=explode("$roz",$plik);
//wyswietlenie nazwy pliku
print "Nazwa pliku: $plik, rozszerzenie: $roz, nazwa podstawowa: ".$nazwa[0];
?>[/php:1:7dfd19799a]
A moze poprostu jest jakas wbudowana funkcja do tego?
Pozdro.


--------------------
(none)
Go to the top of the page
+Quote Post
Wankster
post
Post #4





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

Ostrzeżenie: (0%)
-----


[php:1:be3b1fe5da]<pre><?php

/**
* Miracle Renamer System 0.0.0.1 ALPHA
* Katalog, w ktorym sa pliki musi miec uprawniania 0777
**/

#sciezka do plikow, musi konczyc sie znakiem: /
$path = $_SERVER['DOCUMENT_ROOT'] . '/szablon.com/';

#rozszerzenia, ktore nalezy wziasc pod uwage winksmiley.jpg
$exts = array(
'html', 'htm', 'rar', 'tar.gz', 'zip', 'php', 'php3', 'm', 'css'
);

$exts = implode( '|', $exts );
$rexp = '/(.+?).(' . $exts . ')/i';

$handle = dir( $path );

$handle->read();
$handle->read();

$files = array();

while ( FALSE !== ( $file = $handle->read() ) )
{
if ( !( is_dir( $path . $file ) ) )
{
$files[] = $file;
}
}

foreach ( $files AS $key => $value )
{
preg_match( $rexp, $value, $matches );

print rename( $path . $value, $path . $matches[1] ) . "n";
}

?></pre>[/php:1:be3b1fe5da]
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #5





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


[php:1:e3b86a5d3d]<?php
// ...
foreach ( $files AS $key => $value )
{
preg_match( $rexp, $value, $matches );
print rename( $path . $value, $path . $matches[1] ) . "n";
}
?>[/php:1:e3b86a5d3d]
preg_match() w pętli - tragedia...
Chyba że chcesz zażynać serwer... :?

Ja proponuje tak:
[php:1:e3b86a5d3d]<?php
$dir = './';
if( $handle = opendir($dir) )
{
while( false !== ( $file = readdir($handle) ) )
{
if($file != "." && $file != "..")
{
if( is_file($file) )
{
$tab = @explode('.', $file);
if( count($tab) > 1 )
{
$ext = array_pop($tab);
$filename = @implode('.', $tab);
echo 'Nazwa pliku: <b>' . $filename . '</b>, rozszerzenie: <b>' . $ext . "</b><br />rn";
}
else
{
echo 'Nazwa pliku: <b>' . $file . "</b><br />rn";
}
}
}
}
closedir($handle);
}
?>[/php:1:e3b86a5d3d]


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
spenalzo
post
Post #6





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


A nie krócej?
[php:1:29b459f371]<?php
$plik="plik.z.wieloma.kropkami.w.nazwie.html";
$tmp=explode(".",$plik);
echo $tmp[count($tmp)-1];
?>[/php:1:29b459f371]


--------------------

Go to the top of the page
+Quote Post
rachwal
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
A nie krócej?
[php:1:b403fa90d8]<?php
$plik="plik.z.wieloma.kropkami.w.nazwie.html";
$tmp=explode(".",$plik);
echo $tmp[count($tmp)-1];
?>[/php:1:b403fa90d8]


Twoj kod wyswietli rozszerzenie -- o to chyba autorowi pytania i kodu nie biega tongue.gif


--------------------
pozd.
Go to the top of the page
+Quote Post
spenalzo
post
Post #8





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
Twoj kod wyswietli rozszerzenie -- o to chyba autorowi pytania i kodu nie biega tongue.gif

Ech... :-) Tak to jest jak zaczybna się pisać bez porannej kawy...

To poprawny kod jest taki:
[php:1:87bb2933d4]<?php
$plik="plik.z.wieloma.kropkami.w.nazwie.html";
$tmp=explode(".",$plik);
unset($tmp[count($tmp)-1]);
$nazwa=implode(".",$tmp);
?>[/php:1:87bb2933d4]


--------------------

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:37