基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)_PHP教程
1、使用curl实现站外采集
具体请参考我上一篇笔记:http://www.jb51.net/article/46432.htm
2、编码转换
首先通过查看源代码找到采集的网站使用的编码,通过mb_convert_encoding函数进行转码;
具体使用方法:
//源字符是$str
//以下已知原编码为GBK,转换为utf-8
mb_convert_encoding($str, "UTF-8", "GBK");
//以下未知原编码,通过auto自动检测后,转换编码为utf-8
mb_convert_encoding($str, "UTF-8", "auto");
3、为更好地避开换行符和空格等不定因素的阻碍,有必要先清除采集到的源码中的换行符、空格符和制表符
//方法一,使用str_replace进行替换
$contents = str_replace("\r\n", '', $contents); //清除换行符
$contents = str_replace("\n", '', $contents); //清除换行符
$contents = str_replace("\t", '', $contents); //清除制表符
$contents = str_replace(" ", '', $contents); //清除空格符
//方法二,使用正则表达式进行替换
$contents = preg_replace("/([\r\n|\n|\t| ]+)/",'',$contents);
4、通过正则表达式匹配找出需要获得的代码段,使用preg_match_all实现该匹配
函数解释:
int preg_match_all ( string pattern, string subject, array matches [, int flags] )
pattern即正规表达式
subject即要进行查找的原文
matches是用于储存输出结果的数组
flags是储存的模式,包括:
PREG_PATTERN_ORDER; //整个数组是二维数组,$arr1[0]是包括边界所构成匹配字符串的数组,$arr1[1]除去边界所构成的匹配字符串的数组
PREG_SET_ORDER; //整个数组是二维数组,$arr2[0][0]是第一个包括边界所构成的匹配的字符串,$arr2[0][1]是第一个除去边界所构成的匹配的字符串,之后的数组以此类推
PREG_OFFSET_CAPTURE; //整个数组是三维数组,$arr3[0][0][0]是第一个包括边界所构成的匹配的字符串,$arr3[0][0][1]是到达第一个匹配字符串的边界的偏移量(边界不算在内),之后以此类推,$arr2[1][0][0]是第一个包括边界所构成的匹配的字符串,$arr3[1][0][1]是到达第一个匹配字符串的边界的偏移量(边界算在内);
//实际应用
preg_match_all('/
$out将获取到所有匹配的元素
$out[0][0]将是包括
$out[0][1]将是仅包括(.*?)括号内所匹配到的字符段
//如此类推,第n个匹配到的字段可以用以下方法取得
$out[n-1][1]
//若正则表达式中存大多个括号,则取得句中第m个匹配点的方法是
$out[n-1][m]
5、取得要找到字符后,若要去掉html标签,使用PHP自带的函数strip_tags即可方便地实现
//例
$result=strip_tags($out[0][1]);

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











컴퓨터에서 밑줄을 긋는 방법 컴퓨터에서 텍스트를 입력할 때 특정 내용을 강조하거나 표시하기 위해 밑줄을 사용해야 하는 경우가 많습니다. 그러나 컴퓨터 입력 방식에 익숙하지 않은 일부 사람들에게는 밑줄을 치는 것이 다소 혼란스러울 수 있습니다. 이 기사에서는 컴퓨터에서 밑줄을 긋는 방법을 소개합니다. 다른 컴퓨터 운영 체제 및 소프트웨어에서는 밑줄을 입력하는 방법이 약간 다를 수 있습니다. 다음은 Windows 운영 체제와 Mac 운영 체제에서의 일반적인 방법을 각각 소개합니다. 먼저 Windows에서의 동작을 살펴보겠습니다.

PHP 정규 표현식은 텍스트 처리 및 변환을 위한 강력한 도구입니다. 텍스트 내용을 구문 분석하고 특정 패턴에 따라 대체하거나 가로채서 텍스트 정보를 효과적으로 관리할 수 있습니다. 그 중 정규식의 일반적인 적용은 특정 문자로 시작하는 문자열을 바꾸는 것입니다.

Golang 정규 표현식은 파이프 문자 |를 사용하여 여러 단어 또는 문자열을 일치시키고 각 옵션을 논리적 OR 표현식으로 구분합니다. 예: "fox" 또는 "dog"와 일치: fox|dog은 "quick", "brown" 또는 "lazy"와 일치: (quick|brown|lazy)는 "Go", "Python" 또는 "Java"와 일치: Go| Python |Java는 단어 또는 4자리 우편번호와 일치합니다: ([a-zA

일반 규칙을 사용하여 PHP에서 중국어를 제거하는 방법: 1. PHP 샘플 파일을 만듭니다. 2. 중국어와 영어가 포함된 문자열을 정의합니다. 3. "preg_replace('/([\x80-\xff]*)/i'를 사용합니다. '',$a);" 일반 방법은 쿼리 결과에서 한자를 제거할 수 있습니다.

이 기사에서는 PHP 정규식을 사용하여 HTML 태그를 제거하고 HTML 문자열에서 일반 텍스트 콘텐츠를 추출하는 방법을 알아봅니다. HTML 태그를 제거하는 방법을 보여주기 위해 먼저 HTML 태그가 포함된 문자열을 정의해 보겠습니다.

강력한 프로그래밍 언어인 Golang은 고성능 및 동시성 기능을 갖추고 있으며 인코딩 변환 지원을 포함하여 풍부한 표준 라이브러리 지원도 제공합니다. 이 기사에서는 Golang의 인코딩 변환 구현 원리를 심층적으로 살펴보고 특정 코드 예제를 통해 분석합니다. 트랜스코딩이란 무엇입니까? 인코딩 변환은 일련의 문자를 한 인코딩에서 다른 인코딩으로 변환하는 프로세스를 나타냅니다. 실제 개발에서는 UTF-8로 인코딩된 문자열 변환과 같이 서로 다른 인코딩 간의 변환을 처리해야 하는 경우가 많습니다.

Dedecms 인코딩 변환 기능을 배우는 것은 복잡하지 않습니다. 간단한 코드 예제를 통해 이 기술을 빠르게 익힐 수 있습니다. Dedecms에서 인코딩 변환 기능은 일반적으로 시스템의 정상적인 작동과 데이터의 정확성을 보장하기 위해 중국어 왜곡 문자 및 특수 문자와 같은 문제를 처리하는 데 사용됩니다. 다음은 다양한 인코딩 관련 요구에 쉽게 대처할 수 있도록 Dedecms의 인코딩 변환 기능을 사용하는 방법을 자세히 소개합니다. 1.UTF-8에서 GBK로 Dedecms에서 UTF-8로 인코딩된 문자열을 G로 변환해야 하는 경우

PHP 정규 표현식을 사용하여 중국어 대체 기능 구현에 대한 팁 웹 개발에서 중국어 콘텐츠를 대체해야 하는 상황에 자주 직면합니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 중국어 대체를 쉽게 실현할 수 있는 강력한 정규식 기능을 제공합니다. 이 기사에서는 정규식을 사용하여 PHP에서 중국어 대체를 구현하는 몇 가지 기술을 공유하고 구체적인 코드 예제를 제공합니다. 1. preg_replace 함수를 사용하여 중국어 대체를 구현합니다. PHP의 preg_replace 함수를 사용할 수 있습니다.
