Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiena
Forum PHP.pl > Forum > Przedszkole
Mikolaj.on
Witam czytałem manuala preg_match ale nie mogę rozwikłać jak zrobić żeby preg_match wczytywało tekst z pomiędzy <title type='text'>Tytuł2</title> żeby nie czytało tytuł tylko żeby wyświetlało tytuł 2 i tytuł 3
  1. <?php
  2.  
  3. $src = ('<title type='text'>Tytuł</title><title type='text'>Tytuł2</title><content type='text'><title type='text'>Tytuł3</title><content type='text'>');
  4.  
  5. preg_match('<title type='text'>(.*?)<\/title><content type='text'><content', $src, $matches);
  6.  
  7.  
  8.  
  9. echo "$matches[1]";
  10.  
  11. ?>


.
nekomata
nie znam się za bardzo na preg_match ale chyba zapomniałeś znaczków rozpoczęcia.. poza tym ja jak chce coś "zmatchować" konkretnie to podaje co jest przed i co jest po i jeszcze jak chcesz parę rzeczy wyłapać na raz to daj preg_match_all
działający kod to
  1. preg_match_all('|<title type="text">(.*?)</title>|', $src, $matches);

zapodaj print_r na $matches i jesteś w domu.
Mikolaj.on
print zastąpiłem echo. Chodzi mi jednak bo mam problem z 'text' jak widzimy nie jest to " i nie wiem jak zrobić by czytał jedno takie '

  1. <?php
  2.  
  3. preg_match_all('/<title type='text'>(.*?)<\/title><content type='text'>/', $src, $matches);
  4.  
  5. echo "$matches[1]";
  6.  
  7. ?>
Ulysess
  1. preg_match_all('/<title type=\'text\'>(.*?)<\/title><content type='text'>/', $src, $matches);
  2. // lub
  3. preg_match_all("/<title type='text'>(.*?)<\/title><content type='text'>/", $src, $matches);


na początku i na końcu musi być raczej | lub # , nie znam się ale nie wydaje mi się aby była flaga slash :|
fiszol
To nie jest flaga tylko delimiter, cytat z manuala:
Cytat
Often used delimiters are forward slashes (/), hash signs (#) and tildes (~). The following are all examples of valid delimited patterns.
/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Slah, hash, oba są prawidłowe. Ważne żeby kończyć tym samym znakiem którym się otwierało.
Mikolaj.on
Niestety nie rozwiązuje to mojego problemu ciągle Coś innego pokazuje

  1. <?php
  2.  
  3. $src = file_get_contents('http://gdata.youtube.com/feeds/api/users/mosadtracz/newsubscriptionvideos');
  4.  
  5. preg_match('/<title type=\'text\'>(.*?)<content type=\'text\'>/', $src, $matches);
  6.  
  7.  
  8. echo "$matches[1]";
  9.  
  10. ?>
Ulysess
z niezrozumiałych mi przyczyn to rozwiązanie nie działa..

  1. <?php
  2.  
  3. $c = curl_init();
  4. curl_setopt($c, CURLOPT_URL, 'http://gdata.youtube.com/feeds/api/users/mosadtracz/newsubscriptionvideos');
  5. curl_setopt($c, CURLOPT_HEADER, 0);
  6. curl_setopt($c, CURLOPT_NOBODY, 0);
  7. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  8. $page = curl_exec($c);
  9. curl_close($c);
  10.  
  11. //echo $page;
  12.  
  13. preg_match_all("#<title type='text'>(.*)</content>#", $page, $matches);
  14.  
  15. $length = count($matches[0]);
  16. //echo $length;
  17. for ( $i = 0; $i <= 100; $i++ )
  18. {
  19. echo $matches[0][$i],'<br/><br/>';
  20. }
  21.  
  22. ?>
Mikolaj.on
już lepiej ale dalej nie to co trzeba pokazuje jakieś inne linijki do tego dopisuje

tu jest strona żeby przetestować czy działa http://regexp.pl/
amii
Po preg_match_all daj:
  1. foreach ($matches as $value) {
  2. echo $value[1];
  3. }
Mikolaj.on
Działa tylko teraz losuje sobie które dodać jedne dodaje innych nie i wychodzi
  1. Cut Copy - This Is All We've Got
  2. Ranking Vlogerów akcja zSpontanik
  3. Po co Ci konto na YouTube. Skoro nie wrzucasz filmików
  4. Peter Bjorn And John - Ancient Curse

a powinno być
  1. Gwara Śląska- Bez wycinania złych urywków.
  2. Cut Copy - This Is All We've Got
  3. Ranking Vlogerów akcja zSpontanik
  4. Peter Bjorn And John - Ancient Curse


  1. <?php
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, 'http://gdata.youtube.com/feeds/api/users/mosadtracz/newsubscriptionvideos');
  4. curl_setopt($c, CURLOPT_HEADER, 0);
  5. curl_setopt($c, CURLOPT_NOBODY, 0);
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. $page = curl_exec($c);
  8. curl_close($c);
  9.  
  10. //echo $page;
  11.  
  12. preg_match_all("#<title type='text'>(.*?)<\/title><content type='text'>#", $page, $matches);
  13.  
  14.  
  15.  
  16. foreach ($matches as $value) {
  17.  
  18. echo $value[1], '<br>';
  19. echo $value[2], '<br>';
  20. echo $value[3], '<br>';
  21. echo $value[4], '<br>';
  22. }
  23.  
  24.  
  25. ?>


.

.
Noidea
To jest XML. Z tego się danych nie wyciąga wyrażeniami regularnymi.

  1. <pre>
  2. <?php
  3.  
  4. $c = curl_init();
  5. curl_setopt($c, CURLOPT_URL, 'http://gdata.youtube.com/feeds/api/users/mosadtracz/newsubscriptionvideos');
  6. curl_setopt($c, CURLOPT_HEADER, 0);
  7. curl_setopt($c, CURLOPT_NOBODY, 0);
  8. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  9. $page = curl_exec($c);
  10. curl_close($c);
  11.  
  12. $xml = new SimpleXMLElement( $page );
  13. foreach( $xml->entry as $entry )
  14. {
  15. echo $entry->title . "\n";
  16. }
  17.  
  18. ?>
  19. </pre>
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.