Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 (PHP) чтение файла DOC на PHP  [new]
Николай_
Member

Откуда: Беларусь, Минск
Сообщений: 257
Известно, что файлы формата DOC в формате UTF.
Как ни пробовал, мне не удается прочитать и вывести на экран содержимое файла. Вообще это возможно ?
27 сен 06, 15:50    [3191535]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
Black
Member

Откуда: Москва
Сообщений: 2078
Николай_
что файлы формата DOC в формате UTF.

где Вы такую глупость прочитали?
Есть утилиты, которые позволяют конвертировать из формата doc в rtf
27 сен 06, 16:22    [3191816]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
Николай_
Member

Откуда: Беларусь, Минск
Сообщений: 257
Если кому интересно:
PHP cкрипт, преобразующий документы MS Word в текст
28 сен 06, 17:35    [3198444]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: (PHP) чтение файла DOC на PHP  [new]
NT Man
Member

Откуда: черт его знает
Сообщений: 345
Не люблю вот так просто брать и копипастить чужие скрипты тем более когда не понимаю их логики.

<?php

function readOLEsection($item)
{
  global $doc;    
  echo $item->Name;
  echo '<br>';
  if ($item->Name=='WordDocument')
  {
    $s = $doc->getData($item->No,0,$doc->getDataLength($item->No));
    print_r(unpack('S1sign/S1ver/L1txt_start/L1txt_end/L1txt_size1/L1txt_size2',$s));
    echo '<br>';
  }
  $childrens = $item->children;
  foreach ($childrens as $child) readOLEsection($child);
}

include('ole.php');
$doc = new OLE();
$doc->read('___.doc');
readOLEsection($doc->root);
?>

вот написал свой код чтения Word (doc) файлов основываясь на познании что doc это OLE2 контейнер.

Как видно дошел до самого интересного момента, прочитал внутренний заголовок потока "WordDocument". А вот дальше не знаю, что с этим всем делать.
sign судя документации http://www.uinc.ru/articles/39 говорит, что и вправду имеем дело с WordDocument, но значения txt_start, txt_end, txt_size1 и txt_size2 показывают какую то ерунду. txt_start явно не смещение в потоке для текста. Прошу помочь дальше разобраться. В документацию на странице http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx просьба не тыкать. Там для Word-а 210 страниц буржуйского текста. А учитывая, что надо читать вчитываясь в запутанный смысл, я это до конца жизни не прочту, вот если найдется переведенный на русский вариант этого чтива было бы супер.
10 июн 09, 07:02    [7283771]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
*
Guest
Вы уж определитесь, или Вы не любите брать чужой код и вчитываетесь в документацию, или Вы берёте чужой код и забиваете на документацию.
10 июн 09, 12:44    [7285197]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
NT Man
Member

Откуда: черт его знает
Сообщений: 345
Guest, предпочитаю вчитываться в документацию, но только на своем родном языке.

А по поводу чтения документов Word, я всетаки победил!!!

<?php

function readOLEsection($item)
{
	 global $doc;    
//	echo $item->Name;
//	echo '<br>';
	if ($item->Name=='WordDocument')
	{
		$s = $doc->getData($item->No,0,80);
		$h = unpack('S1sign/S1ver/x20res1/L1txt_start/L1txt_end/x20res2/L1txt_size1/x20res3/L1txt_size2',$s);
		$s = $doc->getData($item->No,$h['txt_start'], $h['txt_size2']);
		$s = iconv ( 'UTF-16LE', 'UTF-8', $s);
		echo $s;
	}
	$childrens = $item->children;
	foreach ($childrens as $child)	readOLEsection($child);
}

include('OLE.php');
$doc = new OLE();
$doc->read('___.doc');
readOLEsection($doc->root);
?>

Не правда ли красиво получилось? ;)
10 июн 09, 13:03    [7285335]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
Sidmal
Member

Откуда:
Сообщений: 207
NT Man

	 global $doc;    


Не правда ли красиво получилось? ;)


не правда =)
10 июн 09, 14:11    [7285749]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: (PHP) чтение файла DOC на PHP  [new]
NT Man
Member

Откуда: черт его знает
Сообщений: 345
Поаккуратнее с выражениями

http://pear.php.net/package/OLE/redirected
7 май 11, 20:28    [10622001]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
myjoin
Member

Откуда:
Сообщений: 3
Уважаемый NT Man. Подскажите пожалуйста, как сделать чтобы Ваш код, также читал кирилицу. А то она у меня совершенно не отображается.
28 июл 11, 09:29    [11037712]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
Сервер
Guest
Не подскажите что хранится в файле OLE.php??? Спасибо!
26 фев 12, 17:31    [12153270]     Ответить | Цитировать Сообщить модератору
 Re: (PHP) чтение файла DOC на PHP  [new]
artas
Member

Откуда: Киев сити
Сообщений: 966
ждем продолжения в 2014
27 фев 12, 18:04    [12159474]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить