Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96 Wielokrotnie zachodzi potrzeba wydobycia z większego ciągu znaków tylko wybranej części. Takim ciągiem znaków może być np. kod html strony. Załóżmy, że ze strony takiej chcemy pobrać część kodu odpowiedzialną za wyświetlanie zdjęcia. Jak to zrobić? Spróbuję taki hipotetyczny przypadek przedstawić w poniższym przykładzie. Przykład: plik.html Kod: html4strict
<html> </body> plik.php Kod: php
<?php echo $znalezione[1]; W pierwszej ramce mamy zawartość przykładowego pliku plik.html. Nie jest ona zbyt imponująca, ale ma służyć jako przykład (mogłaby być o wiele większa). Skupmy się jednak na zawartości pliku plik.php z drugiej ramki, tam bowiem odbywa się cała operacja. W pierwszej kolejności do zmiennej $plik przypisywana jest funkcja fopen(), która otwiera plik.html z atrybutem r, czyli tylko do odczytu. Następnie do zmiennej $pobrany_plik poleceniem fread() "ładowana" jest właściwa zawartość całego pliku. Argument 500 w poleceniu fread() określa limit pobranych znaków. Polecenie fclose() zamyka plik. W dalszej części zastosowana zostaje funkcja preg_match(). Jako argumentów używa wyrażeń regularnych, którymi określić można wzór wg którego wyselekcjonować można z ciągu znaków tylko ich część. Pierwszy argument funkcji preg_match() określa w naszym przykładzie, że interesujący nas ciąg znajdować ma się pomiędzy: <img a znakiem > . Zapis (.*?) określa, że chcemy wyselekcjonować dowolne znaki bez żadnych ograniczeń. Drugi argument to cały string, z którego ma być dokonywana slekcja, czyli w naszym przypadku kod html z pliku plik.html zapisany w zmiennej $pobrany_plik. Trzeci argument to zmienna, a raczej tablica, do której zapisywane są wyniki. Dlaczego tablica? Otóż dlatego, że do zmiennej tej zapisywane są wyniki na dwa sposoby. Do tablicy o zerowym indeksie zapisywany jest wynik łącznie z elementami, które podane były jako początek i koniec, natomiast do tablicy z indeksem 1 zapisywany jest wynik bez tych elementów. Dwa rodzaje wyników wywołane są w przykładzie poleceniem echo $znalezione[0] i echo $znalezione[1]. Funkcją preg_match() przy zastosowaniu odpowiednich wyrażeń regularnych można "wybierać" dowolną treść. Zapraszam do przeczytania kursu o wyrażeniach regularnych. Autor: Adam Suchowski
Skomentuj
WordPress database error: [Incorrect file format 'wp_comments']
|
|