>  기사  >  백엔드 개발  >  문자열에 특정 문자가 포함되어 있는지 확인하는 PHP strstr 검색 기능

문자열에 특정 문자가 포함되어 있는지 확인하는 PHP strstr 검색 기능

高洛峰
高洛峰원래의
2017-01-16 13:17:021187검색

PHP는 문자열에 다른 문자가 포함되어 있는지 확인합니다.

다음 함수를 사용하여 문자열에 다른 문자가 포함되어 있는지 확인하는 것은 PHP에서 매우 일반적인 작업입니다. 매우 간단하지만 몇 가지 기능을 작성했습니다. 품질이 그다지 높지는 않지만 연습용으로 사용해야 합니다. 이러한 기능이 도움이 된다면 매우 기쁠 것입니다. 이 기능들 중에서 저는 네 번째 기능을 더 선호합니다. . .

<?php 
/** 
* 以下几个函数均可用来判断某字符串是否包含另外一个字符串 
* PHP 中判断一个字符串是否包含其它字符是很常见的操作。 
* 虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。 
* 如果这几个函数恰好能帮上你的忙,我将会很高兴的。 
*/ 
/** 
* 利用一下 strpos() 函数 
* @param unknown_type $haystack 
* @param unknown_type $needle 
*/ 
function isInString1($haystack, $needle) { 
//防止$needle 位于开始的位置 
$haystack = &#39;-_-!&#39; . $haystack; 
return (bool)strpos($haystack, $needle); 
} 
/** 
* 利用字符串分割 
* @param unknown_type $haystack 
* @param unknown_type $needle 
*/ 
function isInString2($haystack, $needle) { 
$array = explode($needle, $haystack); 
return count($array) > 1; 
} 
/** 
* 用了一下正则,这种方法十分不建议,尤其是 $needle 中包含 
* 特殊字符,如 ^,$,/ 等等 
* @param unknown_type $haystack 
* @param unknown_type $needle 
*/ 
function isInString3($haystack, $needle) { 
$pattern = &#39;/&#39; . $needle . &#39;/&#39;; 
return (bool)preg_match($pattern, $haystack); 
} 
/** 
* 利用一下 strpos() 函数 
* @param unknown_type $haystack 
* @param unknown_type $needle 
*/ 
function isInString4($haystack, $needle) { 
return false !== strpos($haystack, $needle); 
} 
//测试 
$haystack = &#39;I am ITBDW&#39;; 
$needle = &#39;IT&#39;; 
var_dump(isInString1($haystack, $needle));

제 생각에 가장 간단한 것은 strpos($a, $b) !== false $b가 $a에 존재하면 true이고, 그렇지 않으면 false입니다.
!== false(또는 === false)를 사용하는 이유는 $b가 정확히 $a의 시작 부분에 있으면 함수가 int(0)를 반환하므로 0은 false이지만 $b 은 실제로 $ a에 있으므로 !==를 사용하여 유형을 결정하고 그것이 false인지 확인하십시오. 어젯밤에 중관촌 서점에 가서 strpos === true 를 사용해 판단한 책을 봤습니다. 이것은 매우 잘못된 것입니다. . .
오류가 발생한 책은 "PHP 취업 가이드"(2012-02-26 업데이트) 107페이지입니다.
strstr(), stristr() 등 PHP에서 기본적으로 지원하는 다른 함수도 있습니다. . 직접 판단하시면 됩니다.

정의 및 사용법
strstr() 함수는 다른 문자열에서 해당 문자열이 처음 나타나는 것을 검색합니다.

이 함수는 (일치하는 지점부터) 문자열의 나머지 부분을 반환합니다. 검색된 문자열을 찾을 수 없으면 false를 반환합니다.

구문
strstr(string,search)

매개변수 설명
string 필수입니다. 검색할 문자열을 지정합니다.
검색이 필요합니다. 검색할 문자열을 지정합니다. 인수가 숫자인 경우 숫자 ASCII 값과 일치하는 문자를 검색합니다.

팁 및 참고 사항
참고: 이 함수는 바이너리 안전합니다.

참고: 이 함수는 대소문자를 구분합니다. 대소문자를 구분하지 않고 검색하려면 stristr()을 사용하세요.

예제 1

<?php 
echo strstr("Hello world!","world"); 
?>

//출력: world!

예제 2
이 예에서는 "o"라는 ASCII 값이 나타내는 문자를 검색합니다. " :

<?php 
echo strstr("Hello world!",111); 
?>

//출력: o world!

예제 3

<?php 
$email = &#39;admin@jb51.net&#39;; 
$domain = strstr($email, &#39;@&#39;); 
echo $domain; // prints @jb51.net 

$user = strstr($email, &#39;@&#39;, true); // As of PHP 5.3.0 
echo $user; // prints admin 
?>
$city_str=fopen(cgi_path."/data/weather/city.dat","r"); 
$city_ch=fread($city_str,filesize(cgi_path."/data/weather/city.dat")); 
$city_ch_arr=explode("|",$city_ch); 
//如果能匹配到所在市 
if(strstr($area_ga,"市")){ 
foreach($city_ch_arr as $city_ch_arr_item){ 
if(@strstr($area_ga,$city_ch_arr_item)){ 
echo $area_ga.&#39;<br>&#39;; 
echo $city_ch_arr_item; 
$s_city=$city_ch_arr_item; 
} 
} 
} 
//如果找不到市 那么看看是不是能找到省 有时会有这样的情况:广东省长城宽带 这样的一律归属到该省省府 
elseif(strstr($area_ga,"河北")!==false){ 
$s_city="石家庄"; 
}elseif(strstr($area_ga,"福建")!==false){ 
$s_city="福州"; 
}elseif(strstr($area_ga,"台湾")!==false){ 
$s_city="台北"; 
}elseif(strstr($area_ga,"香港")!==false){ 
$s_city="香港"; 
}elseif(strstr($area_ga,"广西")!==false){ 
$s_city="南宁"; 
}elseif(strstr($area_ga,"浙江")!==false){ 
$s_city="杭州"; 
}elseif(strstr($area_ga,"江苏")!==false){ 
$s_city="南京"; 
}elseif(strstr($area_ga,"山东")!==false){ 
$s_city="济南"; 
}elseif(strstr($area_ga,"安徽")!==false){ 
$s_city="合肥"; 
}elseif(strstr($area_ga,"湖南")!==false){ 
$s_city="长沙"; 
}elseif(strstr($area_ga,"四川")!==false){ 
$s_city="成都"; 
}elseif(strstr($area_ga,"云南")!==false){ 
$s_city="昆明"; 
}elseif(strstr($area_ga,"广东")!==false){ 
$s_city="广州"; 
}elseif(strstr($area_ga,"贵州")!==false){ 
$s_city="贵阳"; 
}elseif(strstr($area_ga,"西藏")!==false){ 
$s_city="拉萨"; 
}elseif(strstr($area_ga,"新疆")!==false){ 
$s_city="乌鲁木齐"; 
}elseif(strstr($area_ga,"蒙古")!==false){ 
$s_city="呼和浩特"; 
}elseif(strstr($area_ga,"黑龙江")!==false){ 
$s_city="哈尔滨"; 
}elseif(strstr($area_ga,"辽宁")!==false){ 
$s_city="沈阳"; 
}elseif(strstr($area_ga,"吉林")!==false){ 
$s_city="长春"; 
}elseif(strstr($area_ga,"河南")!==false){ 
$s_city="郑州"; 
}elseif(strstr($area_ga,"湖北")!==false){ 
$s_city="武汉"; 
}elseif(strstr($area_ga,"山西")!==false){ 
$s_city="太原"; 
}elseif(strstr($area_ga,"陕西")!==false){ 
$s_city="西安"; 
}elseif(strstr($area_ga,"甘肃")!==false){ 
$s_city="兰州"; 
}elseif(strstr($area_ga,"宁夏")!==false){ 
$s_city="银川"; 
}elseif(strstr($area_ga,"海南")!==false){ 
$s_city="海口"; 
}elseif(strstr($area_ga,"江西")!==false){ 
$s_city="南昌"; 
}elseif(strstr($area_ga,"澳门")!==false){ 
$s_city="澳门"; 
} 
//如果都不存在 就是默认显示广州 比如本地机 
else{ 
$s_city="广州"; 
}

위 코드:
그 중 city.dat에는 다음 형식의 일부 도시가 포함되어 있습니다. 이렇게

广州|深圳|汕头|惠州|珠海|揭阳|佛山|河源|阳江|茂名|湛江|梅州|肇庆|韶关|潮州|东莞|中山|清远|江门|汕尾|云浮|增城|从化|乐昌|南雄|台山|开平|鹤山|恩平|廉江|雷州|吴川|高州|化州|高要|四会|兴宁|陆丰|阳春|英德|连州|普宁|罗定|北京|天津|上海|重庆|乌鲁木齐|克拉玛依|石河子|阿拉尔|图木舒克|五家渠|哈密|吐鲁番|阿克苏|喀什|和田|伊宁|塔城|阿勒泰|奎屯|博乐|昌吉|阜康|库尔勒|阿图什|乌苏|拉萨|日喀则|银川|石嘴山|吴忠|固原|中卫|呼和浩特|包头|乌海|赤峰|通辽|鄂尔多斯|呼伦贝尔|巴彦淖尔|乌兰察布|霍林郭勒|满洲里|牙克石|扎兰屯|根河|额尔古纳|丰镇|锡林浩特|二连浩特|乌兰浩特|

참고

<?php 
echo strstr(&#39;aaaaaaaaaaaboaaaaaaaaaaaaboxcccccccccbcccccccccccccc&#39;,&#39;box&#39;)."<br>\n"; 
//输出boxcccccccccbcccccccccccccc 
// 完整匹配中间的box 不因前而的b而停止 
echo strstr(&#39;aaaaaaAbaaa aaaa aaaaaaaaaboxccccccccccccboxccccccccccc&#39;,&#39;box&#39;)."<br>\n"; 
//输出boxccccccccccccboxccccccccccc 
// 有两个关键字时, 遇到第一个停止. 
echo strstr(&#39;Subscrtibe our to free newsletter about New Freew to&#39;,&#39;to&#39;)."<br>\n"; 
//输出to free newsletter about New Freew to 
?>

문자열에 특정 문자가 포함되어 있는지 확인하는 php strstr 검색 기능과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.