Arquivo de renomeação PHP

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 = ? ) : boolLinguagem 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 $oldnamearquivo $newnametiver 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 $newnamearquivo já exista, a rename()função irá sobrescrevê-lo pelo $oldnamearquivo.

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.txtarquivo para readme_v2.txtarquivo 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.txtpara o publicdiretó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. A glob()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 *.mdarquivos no pagesdiretório para os *.htmlarquivos:

<?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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *