Как массово поменять тайтл в большом списке файлов

Статус
В этой теме нельзя размещать новые ответы.

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
В папке job находится несколько десятков html страничек с одинаковым тайтлом " <title>Online Tobacco</title>"
В названии файла присутствует кей странички (например marlboro.html) - его то мне и нужно запихнут в тайтл.
У меня получился вот такой вот скрипт:

Код:
if($handle = opendir("d:\\job\\"))
{
	while (false !== ($file = readdir($handle)))
{
	$without_ext = substr($file, 0, -5);
	$arraydir[] = $without_ext;
						 
	$current_file = file("d:\\job\\".$file);
        str_replace("<title>Online Tobacco</title>", "<title>Buy cigarettes ".$without_ext." online in brst shop</title>",$current_file);
					 }
					 }
					 closedir($handle);

Но он не работает - не меняет <title>Online Tobacco</title> на <title>Buy cigarettes ".$without_ext." online in brst shop</title> в файлах.

Как правильно сделать?
 
PHP:
$current_file = file("d:\\job\\".$file);
возвращает вам массив строк файла, попробуйте так
PHP:
$current_file = implode('',file("d:\\job\\".$file));

функция str_replace возвращает новую строку, поэтому для вашего случая необходимо сделать таким образом
PHP:
$current_file = str_replace("<title>Online Tobacco</title>", "<title>Buy cigarettes ".$without_ext." online in brst shop</title>",$current_file);

вы читаете файл в переменную, производите в ней замену, а где, полученный результат, вы сохраняете в файле?
 
Зачем file и implode если file_get_contents хватит?
 
а вам обязательно нужно средствами php? просто можно сделать проще, например, с помощью notepad+ :) там ведь есть поиск и замена в файлах
 
Код:
if($handle = opendir("d:\\job\\"))
{
	while (false !== ($file = readdir($handle)))
{
	$without_ext = substr($file, 0, -5);
	$current_file = file_get_content("d:\\job\\".$file);
        $content=str_replace("<title>Online Tobacco</title>", "<title>Buy cigarettes ".$without_ext." online in brst shop</title>",$current_file);
file_put_contents("d:\\job\\new_".$file,$content);
					 }
					 }
					 closedir($handle);
 
Для этих целей пользусь @Text Replacer - отличная штука и голову морочить со скриптами не надо
 
Можно это сделать прямо в Dreamweaver, думаю его многие используют для верстки. Жмем CTRL+F (поиск), в строке "область поиска (Find in)" выбираем нужную папку, содержащую файлы, в строке найти вводим <title>(.*)</title>, или то, что надо, в строке заменить на можно использовать ссылку $1, - в общем мощно и функционально)))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху