Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: замена содержимого <title> во всех файлах дирректории
 
 автор: куч1963   (15.05.2006 в 20:13)   письмо автору
 
 

Возникла определенная проблема, нужно во всех файлах дирректории считать meta title и выделить их в тексте. Как это оптимальнее сделать?

   
 
 автор: cheops   (15.05.2006 в 22:56)   письмо автору
 
   для: куч1963   (15.05.2006 в 20:13)
 

Выделить - это как? Можно привести примерчик - что на входе, а что на выходе?

   
 
 автор: куч1963   (15.05.2006 в 23:31)   письмо автору
 
   для: cheops   (15.05.2006 в 22:56)
 

Примерно так

В титлах страницы
<title>TEXT</title>

в теле страницы

<font color="#6666FF">TEXT</font>

и так по всей дирректории, считывает титл и выделяет его в теле и перезаписывает .

   
 
 автор: cheops   (16.05.2006 в 12:31)   письмо автору
 
   для: куч1963   (15.05.2006 в 23:31)
 

Можно поступить следующим образом
<?php 
  $text 
'Примерно так
В титлах страницы
<title>TEXT</title>
в теле страницы TEXT
и так по всей дирректории, считывает титл и TEXT выделяет его в теле и перезаписывает'
;   
  
$pattern "|<title>(.*)</title>|isU";
  
preg_match($pattern$text$out);
  
$title $out[1];
  
$pattern "|(".preg_quote($title).")|isU";
  
$text preg_replace($pattern"<font color=\"#6666FF\">\\1</font>"$text);

  
$pattern "|<title><font color=\"#6666FF\">(.*)</font></title>|isU";
  
$text preg_replace($pattern"<title>\\1</title>"$text);
  echo 
"<pre>";
  echo 
htmlspecialchars($text);
  echo 
"</pre>";
?>

   
 
 автор: куч1963   (16.05.2006 в 21:21)   письмо автору
 
   для: cheops   (16.05.2006 в 12:31)
 

Сделал такую конструкцию, а результат нулевой

<?php 
$d 
dir("pir/");
$n 0;
while(
$entry=$d->read()) 
 { 
if (( 
$entry != ".") && ($entry != "..")) 
  {     
  
$bases=fopen("fak/$entry""rt" );
   
$text fread ($bases5000);
   
  
  
$pattern "|<title>(.*)</title>|isU";
  
preg_match($pattern$text$out);
  
$title $out[1];
  
$pattern "|(".preg_quote($title).")|isU";
  
$text preg_replace($pattern"<font color=\"#6666FF\">\\1</font>"$text);

  
$pattern "|<title><font color=\"#6666FF\">(.*)</font></title>|isU";
  
$text preg_replace($pattern"<title>\\1</title>"$text);
   
fwrite ($bases$text); 
   
fclose($bases);
  
   }    
 
$n++; 
 } 
?> 

Где ошибка?

   
 
 автор: cheops   (17.05.2006 в 13:11)   письмо автору
 
   для: куч1963   (16.05.2006 в 21:21)
 

У вас файл открыт для чтения
<?php
 $bases
=fopen("fak/$entry""rt" );
?>

Записать в него не получиться - нужно закрывать файл и открывать повторно для записи.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования