|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
preg_replace
(PHP 3 >= 3.0.9, PHP 4, PHP 5) preg_replace -- Perform
a regular expression search and replace
Opismixed preg_replace (
mixed pattern, mixed replacement, mixed subject [, int limit [,
int &count]] )
Searches subject for matches to
pattern and replaces them with
replacement.
Replacement may contain
references of the form \\n or (since PHP 4.0.4) $n, with the
latter form being the preferred one. Every such reference will
be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to
the text matched by the whole pattern. Opening parentheses are
counted from left to right (starting from 1) to obtain the
number of the capturing subpattern.
When working with a replacement pattern where a
backreference is immediately followed by another number (i.e.:
placing a literal number immediately after a matched pattern),
you cannot use the familiar \\1
notation for your backreference. \\11, for example, would confuse preg_replace() since it does not know whether
you want the \\1 backreference
followed by a literal 1, or the
\\11 backreference followed by
nothing. In this case the solution is to use \${1}1. This creates an isolated $1 backreference, leaving the 1 as a literal.
If subject is an array, then
the search and replace is performed on every entry of
subject, and the return value is
an array as well.
The e modifier makes preg_replace() treat the replacement parameter as PHP code after the
appropriate references substitution is done. Tip: make sure
that replacement constitutes a
valid PHP code string, otherwise PHP will complain about a
parse error at the line containing preg_replace().
Parametry
- pattern
-
The pattern to search for. It can be either a string
or an array with strings.
- replacement
-
The string or an array with strings to replace. If
this parameter is a string and the pattern parameter is an array, all
pattens will be replaced by that string. If both
pattern and replacement parameters are arrays, each
pattern will be replaced by
the replacement counterpart.
If there are less keys in the replacement array than in the
pattern array, the excedent
patterns will be replaced by
an empty string.
- subject
-
The string or an array with strings to search and
replace.
- limit
-
The maximum possible replacements for each pattern in
each subject string.
Defaults to -1 (no limit).
- count
-
If specified, this variable will be filled with the
number of replacements done.
Zwracane wartości
preg_replace() returns an array if
the subject parameter is an array,
or a string otherwise.
If matches are found, the new subject will be returned, otherwise
subject will be returned
unchanged.
Przykłady
Przykład 1. Using backreferences followed by
numeric literals
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string); ?> |
Powyższy przykład wyświetli:
|
Przykład 2. Using indexed arrays with
preg_replace()
<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string); ?> |
Powyższy przykład wyświetli:
The bear black slow jumped over the lazy dog.
|
By ksorting patterns and replacements, we should get
what we wanted.
<?php
ksort($patterns); ksort($replacements);
echo preg_replace($patterns, $replacements, $string); ?> |
Powyższy przykład wyświetli:
The slow black bear jumped over the lazy dog.
|
|
Przykład 3. Replacing several values
<?php
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?> |
Powyższy przykład wyświetli:
|
Przykład 4. Using the 'e' modifier
<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body); ?> |
This would capitalize all HTML tags in the input
text.
|
Przykład 5. Strip whitespace
This example strips excess whitespace from a
string.
<?php
$str = 'foo o'; $str = preg_replace('/\s\s+/', ' ', $str); // This will be 'foo o' now echo $str;
?> |
|
Przykład 6. Using the count parameter
<?php
$count = 0;
echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3 ?> |
Powyższy przykład wyświetli:
|
Notatki
Notatka: When using arrays with pattern and replacement, the keys are processed in
the order they appear in the array. This is not necessarily
the same as the numerical index order. If you use indexes
to identify which pattern
should be replaced by which replacement, you should perform a
ksort() on each array prior to calling
preg_replace().
|