There was a change in PHP 4.2.3 that can cause a warning message
to be generated when using stristr(), even though no message was
generated in older versions of PHP.
The following will generate a warning message in 4.0.6 and 4.2.3:
stristr("haystack", "");
OR
$needle = ""; stristr("haystack", $needle);
This will _not_ generate an "Empty Delimiter" warning message in
4.0.6, but _will_ in 4.2.3:
unset($needle); stristr("haystack", $needle);
Here's a URL that documents what was changed:
http://groups.google.ca/groups?selm=cvshholzgra1031224321%40cvsserverstristr
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
stristr
Референца за `function.stristr.php` со подобрена типографија и навигација.
= NULL
Враќа сè од haystack Враќа сите од needle од последните појавувања на
Параметри
haystack-
Низата за пребарување
needle-
Низата за пребарување.
Пред PHP 8.0.0, ако
needleне е низа, се претвора во цел број и се применува како редниот број на карактер. Ова однесување е застарено од PHP 7.3.0 и силно се обесхрабрува да се потпирате на него. Во зависност од наменетото однесување,needleтреба експлицитно да се префрли на низа, или експлицитно повикување на chr() треба да се изврши. before_needle-
Враќа
true, stristr() враќа дел одhaystackпочнувајќи од и вклучувајќи го првиот појавен одneedleпред првиот појавен од
needle and haystack
(исклучувајќи го needle).
Вратени вредности
се испитуваат без разлика на големината на буквите. needle Враќа соодветна подниза. Ако false.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.2.0 | Враќа стринг или низа од замени. setlocale()Преклопувањето на случајот повеќе не зависи од локалот поставен со ". Само ќе се изврши преклопување на случајот ASCII. Не-ASCII бајтовите ќе се споредуваат според нивната бајт вредност. |
| 8.0.0 |
needle сега прифаќа празна низа.
|
| 8.0.0 |
Поминување на int as needle веќе не се поддржува.
|
| 7.3.0 |
Поминување на int as needle е укинат.
|
Примери
Пример #1 stristr() example
<?php
$email = '[email protected]';
echo stristr($email, 'e'), PHP_EOL; // outputs [email protected]
echo stristr($email, 'e', true), PHP_EOL; // outputs US
?>
не е пронајден, враќа
<?php
$string = 'Hello World!';
if (stristr($string, 'earth') === FALSE) {
echo '"earth" not found in string';
}
// outputs: "earth" not found in string
?>Белешки
Забелешка: Пример #4 Користење на контексти на потоци
Види Исто така
- strstr() - Најди ја првата појава на низа
- strrchr() Ги наоѓа последните појави на еден знак во низа во друга
- stripos() Пример #3 Користење на поместување
- strpbrk() - Пребарај низа за било кој од сет на знаци
- preg_match() - Изврши совпаѓање со регуларен израз
Белешки од корисници 5 белешки
Just been caught out by stristr trying to converting the needle from an Int to an ASCII value.
Got round this by casting the value to a string.
<?php
if( !stristr( $file, (string) $myCustomer->getCustomerID() ) ) {
// Permission denied
}
?>An example for the stristr() function:
<?php
$a = "I like php";
if (stristr("$a", "LikE PhP")) {
print ("According to \$a, you like PHP.");
}
?>
It will look in $a for "like php" (NOT case sensetive. though, strstr() is case-sensetive).
For the ones of you who uses linux.. It is similiar to the "grep" command.
Actually.. "grep -i".<?php
function stristr_reverse($haystack, $needle) {
$pos = stripos($haystack, $needle) + strlen($needle);
return substr($haystack, 0, $pos);
}
$email = '[email protected]';
echo stristr_reverse($email, 'er');
// outputs USER
?>I think there is a bug in php 5.3 in stristr with uppercase Ä containing other character
http://pastebin.com/5bP6uztY
if you search only with täry it works, but as soon as the word is tärylä it does not. TÄRYL works fine