if stristr($message,'viagra')
or stristr($message,'cialis')
)
{
die();
}
Works quite well in any Shoutbox, Forum, Guestbook, Mailform, etcetera.
Just enter between the definitions and sending the message to the DB, et voila. ^_^
설명
haystack 에서 첫번째 나타나는 needle 부터 마지막까지 반환합니다.
인수
- haystack
-
탐색할 문자열
- needle
-
needle 이 문자열이 아니면, 정수로 변환하여 그 값의 문자를 취합니다.
- before_needle
-
TRUE이면 (기본값은 FALSE) stristr()은 haystack 에서 첫 needle 앞 부분을 반환합니다.
needle 과 haystack 은 대소문자를 구분하지 않습니다.
반환값
매치한 문자열 부분을 반환합니다. needle 이 발견되지 않으면, FALSE를 반환합니다.
변경점
| 버전 | 설명 |
|---|---|
| 5.3.0 | 선택적인 before_needle 인수 추가 |
| 4.3.0 | stristr()은 바이너리 안전합니다. |
예제
Example #1 stristr() 예제
<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // ER@EXAMPLE.com 출력
echo stristr($email, 'e', true); // PHP 5.3.0부터, US 출력
?>
Example #2 문자열의 발견 여부 시험하기
<?php
$string = 'Hello World!';
if(stristr($string, 'earth') === FALSE) {
echo '"earth"를 문자열에서 발견하지 못했습니다.';
}
// 출력: "earth"를 문자열에서 발견하지 못했습니다.
Example #3 "문자열"이 아닌 needle 사용하기
<?php
$string = 'APPLE';
echo stristr($string, 97); // 97 = 소문자 a
// 출력: APPLE
?>
주의
Note: 이 함수는 바이너리 안전입니다.
참고
- strstr() - 문자열이 처음으로 나오는 부분을 찾습니다
- strrchr() - 문자열에서 문자가 마지막으로 나오는 부분을 찾습니다
- substr() - Return part of a string
- preg_match() - 정규표현식 매치를 수행
stristr
carel at ckbt dot org
13-May-2009 03:18
13-May-2009 03:18
tomas dot nesrovnal at yourspirit dot cz
18-Dec-2008 08:36
18-Dec-2008 08:36
Active item item in menu:
<?php
function aim($page) {
if(stristr($_SERVER['REQUEST_URI'], $page)) {
return ' class="active"';
}
}
?>
usage:
<style type="text/css">
.active {color: red;}
</style>
<?php
print '<a href="http://example.com/page/hello-world/"'. aim('hello-world') .'>HW</a>';
?>
giz at gbdesign dot net
06-Oct-2007 12:02
06-Oct-2007 12:02
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
}
?>
art at awilton dot dotcom
07-Nov-2005 05:17
07-Nov-2005 05:17
handy little bit of code I wrote to take arguments from the command line and parse them for use in my apps.
<?php
$i = implode(" ",$argv); //implode all the settings sent via clie
$e = explode("-",$i); // no lets explode it using our defined seperator '-'
//now lets parse the array and return the parameter name and its setting
// since the input is being sent by the user via the command line
//we will use stristr since we don't care about case sensitivity and
//will convert them as needed later.
while (list($index,$value) = each($e)){
//lets grap the parameter name first using a double reverse string
// to get the begining of the string in the array then reverse it again
// to set it back. we will also "trim" off the "=" sign
$param = rtrim(strrev(stristr(strrev($value),'=')),"=");
//now lets get what the parameter is set to.
// again "trimming" off the = sign
$setting = ltrim(stristr($value,'='),"=");
// now do something with our results.
// let's just echo them out so we can see that everything is working
echo "Array index is ".$index." and value is ".$value."\r\n";
echo "Parameter is ".$param." and is set to ".$setting."\r\n\r\n";
}
?>
when run from the CLI this script returns the following.
[root@fedora4 ~]# php a.php -val1=one -val2=two -val3=three
Array index is 0 and value is a.php
Parameter is and is set to
Array index is 1 and value is val1=one
Parameter is val1 and is set to one
Array index is 2 and value is val2=two
Parameter is val2 and is set to two
Array index is 3 and value is val3=three
Parameter is val3 and is set to three
[root@fedora4 ~]#
triadsebas at triads dot buildtolearn dot net
21-Jul-2005 12:39
21-Jul-2005 12:39
You can use strstr() or stristr() to validate data!
Check this out:
<?php
function validate_email($input) {
if (!stristr($input, '@')) {
return false;
}
return true;
}
function validate_url($input) {
if (!stristr($input, 'http://')) {
return false;
}
return true;
}
?>
Simple example:
<?php
if (!validate_email($_POST['email'])) {
print 'You did not enter a valid email adress';
}
if (!validate_url($_POST['url'])) {
print 'You did not enter a valid url.';
}
?>
notepad at codewalkers dot com
05-Jun-2005 08:02
05-Jun-2005 08:02
<?php
function stristr_reverse($haystack, $needle) {
$pos = stripos($haystack, $needle) + strlen($needle);
return substr($haystack, 0, $pos);
}
$email = 'USER@EXAMPLE.com';
echo stristr_reverse($email, 'er');
// outputs USER
?>
Techdeck at Techdeck dot org
12-Nov-2002 08:26
12-Nov-2002 08:26
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".
dpatton.at.confluence.org
03-Oct-2002 04:36
03-Oct-2002 04:36
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%40cvsserver
