Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg match diva
Forum PHP.pl > Forum > Przedszkole
Watt
Witam,

Mam diva i chciałbym z niego wyciągnąć treść:

Kod
<div style="" dir="ltr"> costam </div>

więc napisałem kod
  1. preg_match_all("/<div style=\"\" dir=\"ltr\"[^>]*>(.*?)<\/div>/",$result ,$matches);


Lecz on nie chce działać - co zrobiłem źle?
PiotrekM
  1. <?php
  2. $result = '<div style="" dir="ltr"> costam </div>';
  3. preg_match_all('#<div style="" dir="ltr">(.*?)</div>#si', $result ,$matches);
  4. print_r($matches);
Pawel_W
po 1: zmień ograniczniki, zamiast / używaj #, nie będziesz musiał / escape'ować smile.gif (to tylko taka uwaga)
po 2: zamiast " używaj ', również nie będziesz musiał escape'ować
po 3: co to jest? to jest chyba w tym przypadku niepotrzebne smile.gif
Cytat
[^>]*


stosując się do powyższych kod powinien wyglądać tak:
  1. <?php
  2. $result = '<div style="" dir="ltr"> costam </div>';
  3. preg_match_all('#<div style="" dir="ltr">(.*?)</div>#',$result ,$matches);
  4. print_r($matches);
  5. ?>
Watt
Właśnie jest problem:

Kod
Array ( [0] => Array ( ) [1] => Array ( ) )

To mi zwraca.

Cały kod
  1. $link = "http://translate.google.com/";
  2. $polaczenie = @curl_init();
  3. @curl_setopt($polaczenie, CURLOPT_URL, $link);
  4. @curl_setopt($polaczenie, CURLOPT_POSTFIELDS, 'text='.urlencode($contents).'&sl=pl&tl=en'); //dane do wyslania
  5. @curl_setopt($polaczenie, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
  6. @curl_setopt($polaczenie, CURLOPT_FOLLOWLOCATION, 1);
  7. @curl_setopt($polaczenie, CURLOPT_RETURNTRANSFER, 1);
  8. $result = @curl_exec ($polaczenie);
  9. echo $result;
  10. preg_match_all('#<div style="" dir="ltr">(.*?)</div>#',$result ,$matches);
  11. print_r($matches);
  12. $result = $matches[1][0]."</span>";
  13. preg_match_all("/<span[^>]*>(.*?)<\/span>/",$result ,$matches);
  14. $contents = $matches[1][0];


na dole tej strone
http://pgc-cs.eu/stare/
Pawel_W
to może powiesz co chcesz wyciągnąć? bo w kodzie tej frazy nie widzę...
Watt
Chce wyciagnąć to co 'wypluł' translator google, a to znajduje się w tym divie, jak nie mylę.
Pawel_W
no to było tak od razu... smile.gif
  1. preg_match('#<input type=hidden name=gtrans value="(.*)"><div id=sug_exp>#',$result,$matches);
  2. echo $matches[1];

o to chodziło?
Watt
To jest kod który ja wpisuje, ja chce pobrać kod który jest pod napisem
"Polish to English translation"
Pawel_W
skopiowałem Twój skrypt, dodałem to co wyżej, i mi jakoś tłumaczy...
Watt
Tak, on tłumaczy z tym, że ja nie chce pobierać całej strony google tylko kod, który bedzie przetłumaczony.
Pawel_W
no a co ja napisałem...
ehh, dobra, łap mój kod:
  1. <?php
  2. $contents = "PHP - obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym."; // z wikipedii ;o
  3. $link = "http://translate.google.com/";
  4. $polaczenie = @curl_init();
  5. @curl_setopt($polaczenie, CURLOPT_URL, $link);
  6. @curl_setopt($polaczenie, CURLOPT_POSTFIELDS, 'text='.urlencode($contents).'&sl=pl&tl=en'); //dane do wyslania
  7. @curl_setopt($polaczenie, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
  8. @curl_setopt($polaczenie, CURLOPT_FOLLOWLOCATION, 1);
  9. @curl_setopt($polaczenie, CURLOPT_RETURNTRANSFER, 1);
  10. $result = @curl_exec ($polaczenie);
  11. preg_match('#<input type=hidden name=gtrans value="(.*)"><div id=sug_exp>#',$result,$matches);
  12. echo $matches[1];
  13. ?>
Watt
Oj, wybacz zobaczyłem input - sprawdzę czy działa.
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.