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

Тема в разделе "PHP", создана пользователем verfaa, 8 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    В папке 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> в файлах.

    Как правильно сделать?
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    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);
    вы читаете файл в переменную, производите в ней замену, а где, полученный результат, вы сохраняете в файле?
     
  3. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Зачем file и implode если file_get_contents хватит?
     
  4. toha

    toha

    Регистр.:
    8 июн 2006
    Сообщения:
    299
    Симпатии:
    26
    а вам обязательно нужно средствами php? просто можно сделать проще, например, с помощью notepad+ :) там ведь есть поиск и замена в файлах
     
  5. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Код:
    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);
     
  6. sulacco

    sulacco Постоялец

    Регистр.:
    17 мар 2008
    Сообщения:
    90
    Симпатии:
    45
    Для этих целей пользусь @Text Replacer - отличная штука и голову морочить со скриптами не надо
     
  7. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Можно это сделать прямо в Dreamweaver, думаю его многие используют для верстки. Жмем CTRL+F (поиск), в строке "область поиска (Find in)" выбираем нужную папку, содержащую файлы, в строке найти вводим <title>(.*)</title>, или то, что надо, в строке заменить на можно использовать ссылку $1, - в общем мощно и функционально)))
     
Статус темы:
Закрыта.