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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: HTML в XLS (продолжение)

Сообщения:  [1-10]   [11-14] 

 
 автор: cheops   (17.09.2005 в 13:32)   письмо автору
 
   для: Dima1999   (17.09.2005 в 09:30)
 

1) Как вы выводите HTML-файлы в браузер?
2) Да

   
 
 автор: napTu3aH   (17.09.2005 в 11:07)   письмо автору
 
   для: Dima1999   (17.09.2005 в 09:30)
 

>Что значит подставлю вместо контент значение из БД? Не понял.
вместо opr000JR.htm пишите файл который вы хотите перевести в CSV формат

   
 
 автор: Dima1999   (17.09.2005 в 09:30)   письмо автору
 
   для: Dima1999   (17.09.2005 в 00:18)
 

Такие вопросы:

1) >opr000JR.htm - это я просто для теста взял, потом вместо $content подставите значение из базы данных.
Что значит подставлю вместо контент значение из БД? Не понял.
2) Если я добалю в таблицу несколько строк (тоже с колспанами), будет ли работать приведнный выше код?

   
 
 автор: Dima1999   (17.09.2005 в 00:18)   письмо автору
 
   для: cheops   (16.09.2005 в 22:18)
 

Спасибо за все докиды. Завтра буду пробовать.

   
 
 автор: cheops   (16.09.2005 в 22:18)   письмо автору
 
   для: Dima1999   (16.09.2005 в 21:55)
 

А заголовки следует поместить в самое начало
<?php
  header
(".....attachment......"); 
  
header(.......итд..................);
?>

а приведённый выше код следует поместить вместо оператора
<?php
  
echo $text;
?>

   
 
 автор: Dima1999   (16.09.2005 в 21:55)   письмо автору
 
   для: cheops   (16.09.2005 в 21:48)
 

Нет, я имею в виду, что сперва было

<?
header
(".....attachment......");
header(.......итд..................)
echo 
$text;
?>
в результирующем файле, на который была ссылка. В новом коде этого ничего нет. Куда это вписывать?

   
 
 автор: cheops   (16.09.2005 в 21:48)   письмо автору
 
   для: Dima1999   (16.09.2005 в 21:32)
 

Хм... так а вроде остались... я у себя в результате первой строкой наблюдаю
Номер:;Фамилия;Имя:;Паспорт (св-во о рождении):;Город, страна:;Дата рождения:;Рейтинг:;Организация, тренер;Виза врача:;

   
 
 автор: Dima1999   (16.09.2005 в 21:32)   письмо автору
 
   для: cheops   (16.09.2005 в 19:57)
 

А куда же делись хэдеры?

   
 
 автор: cheops   (16.09.2005 в 19:57)   письмо автору
 
   для: cheops   (16.09.2005 в 13:54)
 

Вот конечный вариант
<?php 
  $content 
file_get_contents("opr000JR.htm"); 
  
$str_begin 0;
  
$str_end 0;
  while(
true)
  {
    
$str_begin strpos($content'<tr'$str_end);
    if(
$str_begin == 0) break;
    
$str_end strpos($content'</tr'$str_begin);
    
$tr[] = substr($content$str_begin$str_end $str_begin);
  }
  foreach(
$tr as $line)
  {
    
preg_match_all("|<td[^>]*>(.+)</td|iU",$line,$out);
    
$text "";
    foreach(
$out[1] as $value$text .= $value.";";
    
$file[] = $text;
  }
  
$content implode("\r\n",$file);
  echo 
$content;
?>

HTML-данные поступают в переменной $content и в результате содержимое CSV-файла также возвращается в виде переменной $content.

   
 
 автор: cheops   (16.09.2005 в 13:54)   письмо автору
 
   для: Dima1999   (16.09.2005 в 09:23)
 

Я сейчас убегаю не успеваю до ума довести скрипт - будем в два этапа резать сначала на массив подстрок, расположенных между <tr> и </tr>, а затем разбирать их
<?php 
  $content 
file_get_contents("opr000JR.htm"); 
  
$str_begin 0;
  
$str_end 0;
  while(
true)
  {
    
$str_begin strpos($content'<tr'$str_end);
    if(
$str_begin == 0) break;
    
$str_end strpos($content'</tr'$str_begin);
    
$tr[] = substr($content$str_begin$str_end $str_begin);
    echo 
"$str_begin<br>";
    echo 
"$str_end<br>";
  }
  echo 
"<pre>"
  
print_r($tr); 
  echo 
"</pre>"
?>

С регулярным выражением вечером продолжим. opr000JR.htm - это я просто для теста взял, потом вместо $content подставите значение из базы данных.

   

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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