Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie danych z słownikia Wiki pl.wiktionary.org, Pobieranie danych
wcbarbi
post 29.01.2010, 11:22:25
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Witam wszystkich bardzo serdecznie. Jest problem i nie wiem jak się do niego zabrać smile.gif Na stronie www mam automatycznie generujące się linki do słownika na wiki.

  1. $wynik_wyszukiwania = "<td><big><a href='http://pl.wiktionary.org/wiki/".$r[1]."'>$r[1]</a></big></td>";


gdzie $r[1] to słowo wyrzucane z bazy MySQL

Pytanie jest takie: Jak zrobić tak że jak nie ma słowa w wiktionary.org to to nie robi się link do słownika.
Go to the top of the page
+Quote Post
thek
post 29.01.2010, 11:25:50
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Sprawdzać co za nagłówki zwraca próba otwarcia tego linku z użyciem soketów, fopen czy co tam chcesz smile.gif No i będziesz wtedy wiedział czy masz link wyświetlać czy nie.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wcbarbi
post 29.01.2010, 13:45:12
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Proszę o rozjaśnienie tematu jakiś przykład narzazie w necie znalazłem tylko to
  1. $slowo = fopen("http://pl.wiktionary.org/wiki/mama", "w+");
  2. echo "$slowo";
Go to the top of the page
+Quote Post
thek
post 29.01.2010, 13:53:28
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A więc odnoszę do manuala fopen
RETURN VALUES:
Returns a file pointer resource on success, or FALSE on error.
czy sprawdzenie lub napisanie na podstawie manuala
  1. if( fopen('adres', 'r') !== FALSE)
lub analogicznego przykładu jest naprawdę takie trudne?


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wcbarbi
post 29.01.2010, 14:48:28
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Właśnie to nie jest takie proste ponieważ
  1. if(fopen('http://pl.wiktionary.org/wiki/mama', 'r') !== FALSE){
  2. echo "takie słowo istnieje w słowniku";
  3. exit();
  4. }

i przy takim czymś
  1. if(fopen('http://pl.wiktionary.org/wiki/zxaasasaszczscsszz', 'r') !== FALSE){
  2. echo "takie słowo istnieje w słowniku";
  3. exit();
  4. }


wyświetla się komunikat że takie słowo istnieje w słowniku
Go to the top of the page
+Quote Post
Mephistofeles
post 29.01.2010, 15:09:20
Post #6





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Bo Wikipedia zwraca wtedy informację o możliwości utworzenia nieistniejącego artykułu.
Go to the top of the page
+Quote Post
thek
post 29.01.2010, 15:59:33
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Akurat z wiki nie testowałem tylko oparłem o standardowe zachowanie :0 W takim wypadku poszedłbym ciut dalej i zaczął analizować CO i w jakiej formie jest mi zwracane. Zapewne w przypadku braku słowa dostaje się określony format odpowiedzi, nieco inny niż prawidłowe wyszukanie. Teraz problemem staje się tylko wychwycenie różnicy pomiędzy odpowiedziami serwera. Może przekierowuje się połączenie na jakiś określony plik czy coś w tym stylu. Podglądałbym gdzie i w jaki sposób to się dzieje. Choćby live headers czy podobnymi narzędziami.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wcbarbi
post 31.01.2010, 11:33:27
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Powiem tak przerósł mnie ten temat postawię flachę gorzkiej żądkowej za rozgryzienie łamigłówki. Jak toś jest zainteresowany proszę o odp. nagroda czeka i jest realna smile.gif
Go to the top of the page
+Quote Post
Fifi209
post 31.01.2010, 11:44:59
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


TO JA CZEKAM NA SWOJĄ NAGRODĘ


  1. <?php
  2.  
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_HEADER, true);
  5. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  8.  
  9.  
  10. $words = array('to', 'jest', 'jakis', 'tekst', 'asdfasdfasdf');
  11.  
  12. foreach ($words as $value) {
  13. curl_setopt($ch, CURLOPT_URL, 'http://pl.wiktionary.org/wiki/'.urlencode($value));
  14. $site = curl_exec($ch);
  15. if(!preg_match('#nie ma jeszcze#', $site)) {
  16. echo '<a href="http://pl.wiktionary.org/wiki/'.urlencode($value).'">'.$value.'</a> ';
  17. }else{
  18. echo $value.' ';
  19. }
  20. }
  21.  
  22. curl_close($ch);
  23.  
  24. ?>


W pełni działający skrypt.

Kodowanie ustaw na UTF-8 bez BOM.

Skrypt wyświetli:
  1. <a href="http://pl.wiktionary.org/wiki/to">to</a> <a href="http://pl.wiktionary.org/wiki/jest">jest</a> jakis <a href="http://pl.wiktionary.org/wiki/tekst">tekst</a> asdfasdfasdf


Ten post edytował fifi209 31.01.2010, 11:50:55


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
wcbarbi
post 31.01.2010, 13:17:58
Post #10





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Gratuluję wygranej problem został rozwiązany smile.gif a zwycięzca zostanie nagrodzony winksmiley.jpg ps. Swoją drogą taki konkurs wzbudza pozytywne wibracje hehe ZAMYKAM TEMAT
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.07.2025 - 22:58