Resumo : neste tutorial você aprenderá como renomear um arquivo em PHP usando a rename()
função.
Introdução à função de renomear arquivo do PHP
Para renomear um arquivo para o novo, você usa a rename()
função:
rename ( string $oldname , string $newname , resource $context = ? ) : bool
Linguagem de código: PHP ( php )
A rename()
função possui três parâmetros:
$oldname
é o nome do arquivo que você deseja renomear.$newname
é o novo nome do arquivo.$context
é um recurso de contexto válido
A função rename() retorna verdadeiro se o arquivo $oldname for renomeado com sucesso ou falso caso contrário.
Se o $oldname
arquivo $newname
tiver um diretório diferente, a rename()
função moverá o arquivo do diretório atual para o novo e renomeará o arquivo.
Observe que caso o $newname
arquivo já exista, a rename()
função irá sobrescrevê-lo pelo $oldname
arquivo.
Exemplos de renomeação de arquivo PHP
Vejamos alguns exemplos de renomeação de arquivo em PHP
1) Exemplo simples de renomeação de arquivo PHP
O exemplo a seguir usa a rename()
função para renomear o readme.txt
arquivo para readme_v2.txt
arquivo no mesmo diretório:
<?php
$oldname = 'readme.txt';
$newname = 'readme_v2.txt';
if (rename($oldname, $newname)) {
$message = sprintf(
'The file %s was renamed to %s successfully!',
$oldname,
$newname
);
} else {
$message = sprintf(
'There was an error renaming file %s',
$oldname
);
}
echo $message;
Linguagem de código: HTML, XML ( xml )
2) Renomeie e mova o arquivo
O exemplo a seguir usa a rename()
função para mover readme.txt
para o public
diretório e renomeá-lo para readme_v3.txt
:
<?php
$oldname = 'readme.txt';
$newname = 'public/readme_v3.txt';
if (rename($oldname, $newname)) {
$message = sprintf(
'The file %s was renamed to %s successfully!',
$oldname,
$newname
);
} else {
$message = sprintf(
'There was an error renaming file %s',
$oldname
);
}
echo $message;
Linguagem de código: HTML, XML ( xml )
3) PHP renomeia função auxiliar de vários arquivos
O exemplo a seguir define uma função que permite renomear vários arquivos. A rename_files()
função renomeia os arquivos que correspondem a um padrão. Ele substitui uma substring nos nomes dos arquivos por uma nova string.
<?php
function rename_files(string $pattern, string $search, string $replace) : array
{
$paths = glob($pattern);
$results = [];
foreach ($paths as $path) {
// check if the pathname is a file
if (!is_file($path)) {
$results[$path] = false;
continue;
}
// get the dir and filename
$dirname = dirname($path);
$filename = basename($path);
// replace $search by $replace in the filename
$new_path = $dirname . '/' . str_replace($search, $replace, $filename);
// check if the new file exists
if (file_exists($new_path)) {
$results[$path] = false;
continue;
}
// rename the file
$results[$path] = rename($path, $new_path);
}
return $results;
}
Linguagem de código: HTML, XML ( xml )
Como funciona.
- Primeiro, obtenha os caminhos que correspondem a um padrão usando a
glob()
função. Aglob()
função retorna uma matriz de arquivos (ou diretórios) que correspondem a um padrão. - Segundo, para cada caminho, verifique se é um arquivo antes de renomeá-lo.
O seguinte usa a replace_files()
função para renomear todos os *.md
arquivos no pages
diretório para os *.html
arquivos:
<?php
rename_files('pages/*.md', '.md', '.html');
Linguagem de código: HTML, XML ( xml )
Resumo
- Use a função de arquivo PHP
rename()
para renomear um arquivo.