Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenia regularne w PHP, Wyrażenie regularne pokazujące wybraną zawartość.
Kashikumek
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.05.2015

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


Witam !
Mam taki problem, ponieważ nie wiem jak napisać wyrażenie które bedzie mi pokazywało w pliku test.txt tylko to co wybiore.
Oto kod PHP:
  1. <?php
  2. $strona = file_get_contents('https://twitter.com/test');
  3. echo '<pre>';
  4. preg_match ('/<p class="ProfileTweet-text js-tweet-text u-dir"
  5. lang="it"
  6.  
  7. dir="ltr" data-aria-label-part="0">(.*)<\/p>/s', $strona, $wynik);
  8. //var_dump($wynik);
  9.  
  10. file_put_contents('test.txt', $wynik[0]);
  11. ?>

A tak wygląda wyodrębniona zawartość:
  1. <p class="ProfileTweet-text js-tweet-text u-dir"
  2. lang="it"
  3.  
  4. dir="ltr" data-aria-label-part="0"><a href="/hashtag/A1?src=hash" data-query-source="hashtag_click" class="twitter-hashtag pretty-link js-nav" dir="ltr" ><s>#</s><b>A1</b></a>ABCD</p>

W pliku mam więcej takich "wiadomości" lecz ja chcę aby w pliku test.txt zapisywała się wiadomość o konkretnym hashtagu czyli w tym wypadku A1 czyli wiadomość ABCD i najlepiej bez znaczników HTML..
Wiem , że zapis (.*) pobiera wszystko bez wyjątku..
Czy to w ogóle możliwe ?
Proszę o pomoc w napisaniu wyrażenia regularnego które będzie wyznaczało tylko konkretną wiadomość ..

Ten post edytował Kashikumek 21.05.2015, 13:33:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Xelah
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 12.05.2013
Skąd: Hamburg

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


Ktoś się nawet nie raczył pofatygować do dokumentacji, żeby zrozumieć, co się dzieje...

  1. $html = file_get_contents('https://twitter.com/katyperry');
  2.  
  3. $doc = new DomDocument();
  4. @$doc->loadHTML($html);
  5.  
  6. $xpath = new DOMXpath($doc);
  7. $elements = $xpath->query("//p[contains(concat(' ', @class, ' '), ' ProfileTweet-text ')]//a[contains(@href,'hashtag/TheMet?')]/ancestor::p");
  8.  
  9. if($elements->length > 0) {
  10. foreach($elements as $element) {
  11. echo trim($element->textContent). PHP_EOL;
  12. }
  13. }


Poza tym, jesteś świadomy, że strona, którą ładujesz nie zawiera ani jednego elementu z klasą "ProfileTweet-text"?
Wyrażenia regularne w niczym ci nie pomogą. Problem jest w zupełnie innym miejscu... Tam po prostu nie ma tego, czego szukasz... Proponowałbym spróbować ze kontem, na którym są jakieś posty :)

Ten post edytował Xelah 22.05.2015, 13:51:41
Go to the top of the page
+Quote Post

Posty w temacie
- Kashikumek   [PHP]Wyrażenia regularne w PHP   21.05.2015, 13:31:44
- - Comandeer   Skoro to kawałki HTML, to może potraktować to DOM-...   21.05.2015, 15:07:57
- - markuz   Parasowanie HTML-a przy użyciu wyrażeń regularnych...   21.05.2015, 15:17:45
- - nospor   @markuz a to niby czemu? HTML to tekst jak kazdy i...   21.05.2015, 15:18:54
- - Comandeer   @markuz, @nospor http://forum.php.pl/index.php?sho...   21.05.2015, 17:27:26
- - Xelah   W pełni zgadzam się z przedmówcą. Owszem, regexpem...   21.05.2015, 19:38:24
- - nospor   Cytatale stwierdzenie, że HTML (zwłaszcza gdy pocz...   21.05.2015, 20:20:09
|- - Xelah   Cytat(nospor @ 21.05.2015, 21:20:09 )...   22.05.2015, 09:19:48
- - Comandeer   Cytatto jest kod, ktory jest generowany z szablonu...   21.05.2015, 20:41:54
- - nospor   CytatCzasami szablon może się wykrzaczyć z powodu ...   22.05.2015, 06:28:45
- - Kashikumek   Użyłem kodu powyżej .. CODE Fatal error: Call to...   22.05.2015, 09:57:48
- - Comandeer   @nospor ok, ale nawet przy takiej strukturze mam d...   22.05.2015, 10:22:10
- - Kashikumek   Jeśli chodzi Ci o to : CODE$elements = ...   22.05.2015, 12:15:43
- - Xelah   Ktoś się nawet nie raczył pofatygować do dokumenta...   22.05.2015, 13:50:03
- - Kashikumek   @Xelah Zmieniłem stronę i działa .. Lecz jak tą...   22.05.2015, 14:34:53
- - Pyton_000   np. file_put_contents   22.05.2015, 14:51:18
- - Kashikumek   Niestety, taki jest efekt użycia file_put_contents...   25.05.2015, 11:14:39
|- - Xelah   Cytat(Kashikumek @ 25.05.2015, 12:14...   25.05.2015, 11:44:06
- - Kashikumek   Mówiłem że jestem początkujący i tak, wiem że istn...   27.05.2015, 13:53:14
- - Crozin   Po pierwsze nie zaciągaj danych bezpośrednio ze st...   27.05.2015, 14:07:13
- - Kashikumek   @Crozin fakt ! Lecz narazie pozostawie to co m...   29.05.2015, 14:18:08


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

 



RSS Aktualny czas: 17.10.2025 - 10:17