>  기사  >  백엔드 개발  >  정규식 함수를 대체할 수 있는 PHP의 일부 문자열 조작 함수_php 팁

정규식 함수를 대체할 수 있는 PHP의 일부 문자열 조작 함수_php 팁

WBOY
WBOY원래의
2016-05-16 20:31:441014검색

0x01: 사전 정의된 문자를 기반으로 문자열의 어휘 분석

코드 복사 코드는 다음과 같습니다.

/*
* 정규식 기능은 많은 양의 정보를 처리할 때 작업 속도를 크게 저하시킬 수 있습니다. 이러한 함수는 정규식을 사용하여 더 복잡한 문자열을 구문 분석해야 하는 경우에만 사용해야 합니다. 간단한 표현식을 구문 분석하려는 경우 프로세스 속도를 크게 높일 수 있는 미리 정의된 여러 함수를 사용할 수도 있습니다.
*/

/*
* 미리 정의된 문자를 기반으로 문자열의 어휘 분석
* strtok() 함수는 미리 정의된 문자 목록을 기반으로 문자열을 구문 분석합니다. 형식은 다음과 같습니다.
* 문자열 strtok(문자열 str,문자열 토큰)
* strtok() 함수, 문자열에 대한 어휘 분석을 완전히 수행하려면 이 함수를 계속 호출해야 합니다. 이 함수를 호출할 때마다 문자열의 다음 부분에 대한 어휘 분석만 수행됩니다. 그러나 str 매개변수는 한 번만 지정하면 됩니다. 왜냐하면 함수는 str의 어휘 분석을 완전히 완료하거나 결과 str 매개변수가 지정될 때까지 str의 위치를 ​​추적하기 때문입니다.
* 아래 예시와 같습니다:
*/
$info="lv chen yang|Hello:world&757104454@qq.com";
//(|)(:)( )(&)
를 포함한 구분 기호 정의 $tokens="|:& ";
$tokened=strtok($info, $tokens);
동안($토큰됨)
{
echo "요소:$tokened
";
//strtok() 함수를 지속적으로 호출하여 전체 문자열에 대한 어휘 분석을 완료합니다
$tokened=strtok($tokens);
}
?>

0x02: 사전 정의된 구분 기호에 따라 문자열 분해

코드 복사 코드는 다음과 같습니다.

/*
* 미리 정의된 구분 기호에 따라 문자열을 분해합니다:Explode() 함수
* 이 함수는 문자열 str을 다음 형식의 하위 문자열 배열로 나눕니다. * 배열 분해(문자열 구분 기호, 문자열 str [, int 제한])
* 원본 문자열은 구분 기호로 지정된 문자열에 따라 여러 요소로 분할됩니다. 선택적 제한 매개변수를 사용하여 요소 수를 제한할 수 있습니다. explod()/sizeof() 및 Strip_tags()를 결합하여 주어진 텍스트 블록의 총 단어 수를 결정할 수 있습니다
* 아래와 같습니다:
*/
$summary="
현재 진행 중인 Developer.com PHP 시리즈의 최신작입니다.

의 많은 개선 및 추가 사항에 대해 논의합니다. PHP 객체 지향 아키텍처
";
echo "
";
$words=explode(' ', Strip_tags($summary));
echo "이 문장의 길이는:".sizeof($words);
/*
*Explode() 함수는 항상 preg_split, Split() 및 Spliti()보다 훨씬 빠릅니다. 따라서 정규식을 사용할 필요가 없을 때 이 기능을 사용해야 합니다.
*/
?>

0x03: 배열을 문자열로 변환

코드 복사 코드는 다음과 같습니다.
/*
* 배열을 문자열로 변환
*explode() 함수는 문자열을 구분 문자를 기준으로 해당 배열로 변환할 수 있지만, implode() 함수를 통해 배열을 지정된 구분 문자를 제한으로 사용하여 문자열로 변환할 수 있습니다
* 형식은 다음과 같습니다.
* 문자열 내파(문자열 구분 기호, 배열 조각)
* 아래와 같습니다:
*/
$citys=array("청두","충칭","베이징","상하이","광저우");
$citystring=implode("|", $citys);
echo $citystring;
?>

0x04: 복잡한 문자열 구문 분석

코드 복사 코드는 다음과 같습니다.

/*
* 복잡한 문자열 구문 분석
* strpos() 함수는
형식으로 대소문자를 구분하여 문자열에서 substr이 처음 나타나는 것을 찾습니다. * int strpos(string str,string substr [,int offset])
* 선택적 매개변수인 offset은 검색을 시작할 위치를 지정합니다. substr이 str에 없으면 strpos()는 False를 반환합니다. 선택적 인수는 strpos()가 검색을 시작하는 위치를 결정합니다.
* 다음 예에서는 index.html에 대한 첫 번째 액세스의 타임스탬프를 결정합니다.
*/
$substr="index.html";
$log=<<<로그파일
192.168.1.1:/www/htdocs/index.html:[2013/06/26:13:25:10]
192.168.1.2:/www/htdocs/index.html:[2013/06/26:13:27:16]
192.168.1.3:/www/htdocs/index.html:[2013/06/26:13:28:45]
로그파일;
echo "
";
//로그에서 $substr이 처음 나타나는 위치는 무엇입니까
$pos=strpos($log, $substr);
//줄 끝의 숫자 위치 찾기
$pos1=strpos($log,"n",$pos);
//타임스탬프 계산 시작
$pos=$pos strlen($substr) 1;
//타임스탬프 검색
$timestamp=substr($log, $pos,$pos1-$pos);
echo "index.html 파일에 처음 액세스한 날짜: $timestamp
";
/*
* Stripos() 함수와 strpos() 함수의 사용법은 동일합니다. 유일한 차이점은 Stripos()가 대소문자를 구분하지 않는다는 것입니다.
*/
?>

0x05: 문자열의 마지막 항목 찾기

코드 복사 코드는 다음과 같습니다.

/*
* 문자열의 마지막 항목 찾기
* strrpos() 함수는 문자열이 마지막으로 나타나는 위치를 검색하고 다음 형식으로 해당 위치(숫자 시퀀스 번호)를 반환합니다.
* int strrpos(string str,char substr [,offset])
* 선택적 매개변수 offset은 strrpos() 함수의 검색 시작 위치를 결정합니다. 긴 뉴스 요약을 단축할 수 있다는 희망을 추가했습니다.
* 요약의 일부를 잘라내고 잘린 부분을 생략 부호로 대체합니다. 하지만 단순히 요약을 필요한 길이로 자르는 것이 아닙니다.
* 스테이지 길이에 가장 가까운 단어 끝 부분까지 사용자 친화적인 방식으로 잘라낼 수 있습니다.
*다음 예시와 같습니다
*/
$한도=100;
$summary="진행 중인 Developer.com PHP 시리즈의 최신 기사입니다.

의 많은 개선 및 추가 사항에 대해 논의합니다. PHP 객체 지향 아키텍처.
if(strlen($summary)>$limit)
$summary=substr($summary, 0,strrpos(substr($summary, 0,$limit)," "))."...";
에코 $summary;
?>

0x06: 문자열의 모든 인스턴스를 다른 문자열로 교체

코드 복사 코드는 다음과 같습니다.

/*
* 문자열의 모든 인스턴스를 다른 문자열로 교체
* str_replace() 함수는 문자열의 모든 인스턴스를 대소문자를 구분하여 다른 문자열로 바꿉니다. 형식은 다음과 같습니다.
* mix str_replace(문자열 발생, 혼합 치환, 혼합 str [,int 개수])
* str에서 발생 항목을 찾을 수 없는 경우 str은 변경되지 않은 상태로 유지됩니다. 선택적 매개변수 count가 정의되면 str에서 발생 횟수만 대체됩니다.
* 이 기능은 아래와 같이 이메일 주소를 자동으로 획득하는 프로그램에서 전자 마우스 오른쪽 버튼 클릭 주소를 숨기는 데 적합합니다.
*/
$email="lvchenyang@live.cn";
$email=str_replace("@", "(at)", $email);
echo "
".$email;
?>

0x07: 문자열의 일부 가져오기

코드 복사 코드는 다음과 같습니다.

/*
* 문자열의 일부를 가져옵니다
* strstr() 함수는 미리 정의된 문자열(발생 문자열 포함)이 처음 나타나는 부분부터 시작하여 문자열의 나머지 부분을 반환합니다. 형식은 다음과 같습니다.
* 문자열 strstr(문자열 str,문자열 발생[,bool fefore_needle])
* 선택적 매개변수 before_needle은 strstr()의 동작을 변경하여 함수가 첫 번째 문자열 앞의 문자열 부분을 반환하도록 합니다.
* 다음 예는 ltrim() 함수와 결합하여 마우스 오른쪽 버튼 클릭으로 도메인 이름을 얻는 것입니다
*/
$url="lvchenyang@live.cn";
echo "
".ltrim(strstr($url, "@"),"@");
?>

0x08: 미리 정의된 값에 따라 문자열의 일부를 반환

코드 복사 코드는 다음과 같습니다.

/*
* substr() 함수는 시작 길이와 시작 길이 사이의 문자열 부분을 다음 형식으로 반환합니다.
* string substr(string str,int start [,int length])
* 선택적 매개변수가 지정되지 않은 경우 str
의 처음부터 끝까지 문자열을 반환합니다. *아래와 같습니다
*/
$str="lvchenyang";
echo "
".substr($str, 2,4);
//출력: 첸
?>

0x09: 문자열 발생 빈도 결정

코드 복사 코드는 다음과 같습니다.

/*
* 문자열 발생 빈도 결정
* substr_count()는 문자열이 다른 문자열에 나타나는 횟수를 반환합니다. 형식은 다음과 같습니다.
* int substr_count(string str,string substring [,int offset [,int length]])
* 선택적 매개변수인 offset 및 length는 문자열 오프셋(오프셋에서 시작하는 문자열 일치 시도)과 문자열 길이(오프셋에서 시작하는 검색 길이)를 지정합니다.
* 다음 예는 이 문장에서 각 단어가 나타나는 횟수를 결정합니다
*/
$talk=<<<대화
저는
을 통해 이 공간에서 인지도를 장악할 수 있다고 확신합니다. 마케팅의 진정한 시너지를 발휘하는 신제품
그리고 제품 개발 팀은 앞으로 이 공간을 소유하게 될 것입니다.
이야기;
echo "
";
$sentencearray=폭발(" ", $talk);
foreach($sentencearray를 $item으로)
{
echo "$item 단어가 나타납니다(".substr_count($talk, $item).")times
";
}
?>

0x10: 문자열의 일부를 다른 문자열로 교체

코드 복사 코드는 다음과 같습니다.

/*
* 문자열의 일부를 다른 문자열로 교체
* substr_replace() 함수는 문자열의 일부를 다른 문자열로 대체합니다. 대체는 지정된 시작 위치에서 시작하여 시작 길이 위치에서 끝납니다.
* 형식은 다음과 같습니다.
* stringsubstr_replace(string str, string repalcement, int 시작 및 길이 값.
* 아래 그림과 같이 전화번호 가운데 4자리를 교체하세요
*/
$phonenum="15926841384";
echo "
".substr_replace($phonenum, "****", 3,4);
?>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.