Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) чтение файла DOC на PHP / 12 сообщений из 12, страница 1 из 1
27.09.2006, 15:50
    #34016209
Николай_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Известно, что файлы формата DOC в формате UTF.
Как ни пробовал, мне не удается прочитать и вывести на экран содержимое файла. Вообще это возможно ?
...
Рейтинг: 0 / 0
27.09.2006, 16:22
    #34016355
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Николай_что файлы формата DOC в формате UTF.
где Вы такую глупость прочитали?
Есть утилиты, которые позволяют конвертировать из формата doc в rtf
...
Рейтинг: 0 / 0
28.09.2006, 17:35
    #34019960
Николай_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.06.2009, 07:02
    #36034574
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Не люблю вот так просто брать и копипастить чужие скрипты тем более когда не понимаю их логики.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?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 страниц буржуйского текста. А учитывая, что надо читать вчитываясь в запутанный смысл, я это до конца жизни не прочту, вот если найдется переведенный на русский вариант этого чтива было бы супер.
...
Рейтинг: 0 / 0
10.06.2009, 12:44
    #36035279
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Вы уж определитесь, или Вы не любите брать чужой код и вчитываетесь в документацию, или Вы берёте чужой код и забиваете на документацию.
...
Рейтинг: 0 / 0
10.06.2009, 13:03
    #36035346
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Guest, предпочитаю вчитываться в документацию, но только на своем родном языке.

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?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);
?>

Не правда ли красиво получилось? ;)
...
Рейтинг: 0 / 0
10.06.2009, 14:11
    #36035546
Sidmal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
NT Man
Код: plaintext
1.
2.
	 global $doc;    


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

не правда =)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.05.2011, 20:28
    #37250917
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Поаккуратнее с выражениями

http://pear.php.net/package/OLE/redirected
...
Рейтинг: 0 / 0
28.07.2011, 09:29
    #37370247
myjoin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Уважаемый NT Man. Подскажите пожалуйста, как сделать чтобы Ваш код, также читал кирилицу. А то она у меня совершенно не отображается.
...
Рейтинг: 0 / 0
26.02.2012, 17:31
    #37678630
Сервер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
Не подскажите что хранится в файле OLE.php??? Спасибо!
...
Рейтинг: 0 / 0
27.02.2012, 18:04
    #37680757
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
ждем продолжения в 2014
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.02.2015, 14:01
    #38870378
Xinit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) чтение файла DOC на PHP
OLE.php - это пакет PHP PEAR, можно найти в интернете.
По последнему коду, выложенному здесь, есть ошибка. Выбирать текст нужно в 3 этапа:
1. txt_start - txt_end
2. iconv(UTF-16LE -> UTF-8)
3. mb_substr(txt, txt_size1, txt_size2, UTF-8)
И на выходе мы получаем весь текст из Word-документа :)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) чтение файла DOC на PHP / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]