Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Word do php - liczenie słów
Forum PHP.pl > Forum > PHP
hab
Musze zrobić skrypt który liczy słowa w dokukmentach i ...

nie ma problemu jeśli jest to txt lub rtf ale można jakoś policzyć słowa w wordzie?

może php ma wbudowane jakieś funkcje współpracujące z wordem

ktoś ma jakiś pomysł od której strony to ugryźć questionmark.gif


może jakiś konwerter doc do txt ?
nexis
Osobiście nie słyszałem o takim konwerterze i wątpię, żeby istniał taki z poziomu php (realtime). Jeżeli serwer stoi pod WINDOWS to da się to zrobić za pomocą programu WORD i dołączając do tego MAKRA.
TomASS
Skorzystaj z tych stron:
converter doc 2 html
doc 2 txt
-- || --

A co do liczenia słów:
  1. <?php
  2. // To test, uncomment the 3 lines below and call the script.
  3. // $text = "Frites - &agrave; la année 1984 ...";
  4. // $word_count = count_words($text);
  5. // echo " - $word_count - ";
  6.  
  7. // The code you need is below:
  8.  
  9. function count_words($string) {
  10.  
  11. $word_count = 0;
  12. $string = eregi_replace(" +", " ", $string);
  13. $string = explode(" ", $string);
  14.  
  15. while (list(, $word) = each ($string)) {
  16. if (eregi("[0-9A-Za-z&Agrave;-Ö&Oslash;-ö&oslash;-&yuml;]", $word)) {
  17. $word_count++;
  18. }
  19. }
  20. return($word_count);
  21. }
  22. ?>

strona
3rdeye
Cytat(hab @ 2006-04-10 11:58:55)
Musze zrobić skrypt który liczy słowa w dokukmentach i ...

nie ma problemu jeśli jest to txt lub rtf ale można jakoś policzyć słowa w wordzie?

może php ma wbudowane jakieś funkcje współpracujące z wordem

ktoś ma jakiś pomysł od której strony to ugryźć questionmark.gif


może jakiś konwerter doc do txt ?

ktoś Ci zelecił to zadanie questionmark.gif

to jest niemożliwe policzyć tak słowa jak word.

word ma błędy i źle liczy słowa, tak więc to co masz napisane w dokumencie worda przy ilość słów będzie inna niż policzysz ją Ty (oczywiście w niektórych przypadkach).
devnul
a jakie to niby błędy przy liczeniu słów ma word? co to za problem rozbić całość na na podstawie odstępów(spacji, tabulatorów, przejść do nowej lini, myślników itp)questionmark.gif W tym aspekcie word akurat nie ma błędów bo raczej ciężko byłoby tu o błąd.
3rdeye
Cytat(devnul @ 2006-04-11 18:27:16)
a jakie to niby błędy przy liczeniu słów ma word? co to za problem rozbić całość na na podstawie odstępów(spacji, tabulatorów, przejść do nowej lini, myślników itp)questionmark.gif W tym aspekcie word akurat nie ma błędów bo raczej ciężko byłoby tu o błąd.

mylisz się po 100-kroć.

word ma błędy w zliczaniu słów.

np w zagnieżdżonych tabelach nie zlicza ich poprawnie.

mieliśmy w firmie projekt do zrobienia. ludzie nie chcieli go wziąć, bo nie zliczał tak samo jak word - zliczał lepiej.
TomASS
@devnul : nie możesz tak poprostu rozbić stringa na znaki odstępów. Policz słowa 'Twoim' sposobem w takim ciągu:

'Wiceszef klubu Samoobrony Janusz Maksymiuk , który brał udział w rozmowach ocenił , że deklaracja programowa jest " praktycznie uzgodniona " . '

Policzy Ci wszystkie przecinki itp. policzy także pojedyńcze litery, które wyrazami raczej nie są.
devnul
Cytat(TomASS @ 2006-04-11 22:34:11)
@devnul : nie możesz tak poprostu rozbić stringa na znaki odstępów. Policz słowa 'Twoim' sposobem w takim ciągu:

'Wiceszef klubu Samoobrony Janusz Maksymiuk , który brał udział w rozmowach ocenił , że deklaracja programowa jest " praktycznie uzgodniona " .  '

Policzy Ci wszystkie przecinki itp. policzy także pojedyńcze litery, które wyrazami raczej nie są.


@TomASS: Oj czepiasz się i to strasznie, wystarczy tu wyrażenie regularne w którym uwzglęnisz tylko znaki będące literami i bedziesz dopasowywał każdy pojedynczy wyraz (czyli też przecijnek liczbe itp) z wyrażęniem regularnym jesli pasuje to doliczy, jeśli nie to nie doliczy danego wyrazu do sumy wyrazów w tekscie, a co do pojedynczych liter to jednak są one wyrazami np wyrazem jest "i", "a" "u" i to akurat jest poprawne. a przedstawiony przezemnie model był przykładowy, a nie szczegółowy, zauważ ze nie dałem tam żadnego kodu.

@3rdeye|: być moze faktycznie word ma jakieś problemy ze zliczaniem w bardziej skomplikowanych strukturach (to też pewnie zależy od jego wersji), ale jestem ciekaw do czego takie zliczanie z poziomu php moze służyć w praktyce, może mnie oświecisz?
TomASS
A widziałeś kod z początku dyskusji tongue.gif
Jak sprawe tak postawiłeś, to masz rację - zgadzam się z Tobą bo tak należy to zrobić jak piszesz. smile.gif
devnul
tak widziałem kod z początku dyskusji, dlatego nie rozumiem skąd Twoja interpretacja mojego posta, była uproszczona bez wdawania się w szczeguły. co do rozwiąznia przedstawionego przez ciebie to jest przyzwoite, ale ja to jednak bym troszke inaczej zorganizował, no ale cóż, są gusta i guściki, każdemu nie dogodzisz winksmiley.jpg
3rdeye
to nie było liczone przez php. liczył to open office i przesyłał do php lub ew. do jakiegoś skryptu cgi zliczoną ilość znaków.

nie wiem jak to dokładnie działało, ale było piękne.

takie rzeczy przydają się firmom od tłumaczeń.

__
Bez klątw
ActivePlayer
devnul
hmm, nie wiem ja się nie znam na tłumaczeniach aż tak ale mi się wydaje ze do tłumaczeń to raczej słownik jest potrzebny niż ilość wyrazów w tekscie, no chyba że licza od przetłumaczonego słowa to co innego. ale jakoś dziwnie to by wyglądało, za słowo brać :|
Indeo
Pliki MSWord w wersjach office < office 2003 są blikami binarnymi i nie da sie do nich dobrać tak jak do zwykłych plików tekstowych. Podobno od Office 2003 pliki są zapisywane w formacie XML, ale też nie wiem jak się do tego dobrać. W przypadku open office wystarczy zmienic rozszerzenie pliku tekstowego na zip i otworzyć zipem - a w środku zobaczymy dokumenty XML smile.gif

Natomiast pewnie jest mozliwy dostęp do całej funkcjonalności worda poprzez technologię obiektów COM (pod serwerem windowsowym z zainstalowanym wordem)
3rdeye
płacisz za słowa, które tłumaczysz.

a dostęp do liczby słów (tej wordowej), jest tak jak napisał Indeo tylko poprzez komponety COM'a (lub czegoś innego w tej chwili nie pamiętam). dla dokumentu pojawia się poprostu zmienna word_count. biblioteki są płatne.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.