Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z słownikia Wiki pl.wiktionary.org
Forum PHP.pl > Forum > PHP
wcbarbi
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.
thek
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.
wcbarbi
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";
thek
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?
wcbarbi
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
Mephistofeles
Bo Wikipedia zwraca wtedy informację o możliwości utworzenia nieistniejącego artykułu.
thek
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.
wcbarbi
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
Fifi209
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
wcbarbi
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
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.