요약 생성
최근에 요구 사항을 추가해야 합니다. html 코드에서 한자를 추출하여 요약으로 변환해야 합니다.
<code><span>//匹配中文utf8编码</span><span><span>function</span><span>utf8_summary</span><span>(<span>$article</span>)</span> {</span><span>$match</span> = <span>"/^[\x{4e00}-\x{9fa5}]+$/u"</span>;<span>//正则表达式,匹配中文</span> preg_match_all(<span>$match</span>,<span>$article</span>,<span>$temp</span>); <span>$summary</span> = <span>""</span>; <span>foreach</span> (<span>$temp</span><span>as</span><span>$key</span> => <span>$value</span>) { <span>$sum</span> = implode(<span>''</span> , <span>$value</span>); <span>$summary</span> = <span>$sumary</span> . <span>$sum</span>; }<span>//将中文拼接起来</span><span>return</span><span>$summary</span>; } </code>
질문은 다음과 같습니다.
1. 연속된 한자가 나오면 빼기가 불가능합니다
2. 이 방법은 한자와 문자가 혼합되어 있을 때 효과적입니다
이유:
아마도 순수 중국어일 경우 인코딩이 다른 것으로 변경되어 정규식이 일치할 수 없지만, 중국어와 문자가 혼합된 경우 문자 인코딩이 utf8이므로 실제로 클라이언트에서는 일치할 수 있습니다. label에 중국어를 래핑하고 setchars=utf8을 사용하여 헤드 헤더를 추가하여 지정할 수 있지만 클라이언트의 엔터티 클래스가 이미 작성되어 있어 변경하기가 너무 번거로워 백그라운드에서 방법을 찾아야 했습니다. 두 번째 방법을 시도했습니다:
<code><span>$function</span> url_summary(<span>$article</span>) { <span>$article</span> = urlencode(); <span>$match</span> = <span>"/^%[a-zA-Z0-9]{2}/"</span>; preg_match_all(<span>$match</span>,<span>$article</span>,<span>$temp</span>); <span>$summary</span> = <span>""</span>; <span>foreach</span> (<span>$temp</span><span>as</span><span>$key</span> => <span>$value</span>) { <span>$sum</span> = implode(<span>''</span> , <span>$value</span>); <span>$summary</span> = <span>$sumary</span> . <span>$sum</span>; } <span>$summary</span> = decode(<span>$summary</span>); <span>return</span><span>$summary</span>; }</code>
이 방법의 아이디어는 다음과 같습니다. 글자가 아닌 숫자와 숫자가 URL로 인코딩되면 �와 유사한 문자열이 된다는 것이 관찰됩니다. 꺼내서 서로 이어 붙이면 해독 후 한자를 얻게됩니다.
나중에 알아봤는데 사실은 함수입니다
인코딩을 변경할 수 있는 함수가 있다는 걸 알았습니다
<code><span>iconv(<span>"gbk"</span>,<span>"utf-8"</span>,<span>"php中文转码"</span>)</span>;<span>//把中文gbk编码转为utf8</span><span>iconv(<span>"utf-8"</span>,<span>"gbk"</span>,<span>"php中文转码"</span>)</span>;<span>//把中文utf8编码转为gbk</span></code>
그런데 꼭 사용하고 싶다면 이 기능을 사용하려면 .ini 파일에서 php Open Extension=php_iconv.dll로 이동하여 iconv 기능 라이브러리를 설치해야 합니다
, 그게 더 문제죠.
마지막으로, Strip_tags() 함수를 사용하면 문제를 해결할 수 있다는 것을 알았습니다
이 함수는 html 태그를 제거한 다음
섹션을 가로챌 수 있습니다.
mb_substr(summary,0,50);//문자
를 가로채고
str_replace(' ','', summary) //이스케이프 문자 제거
요약을 생성할 수 있으며 나중에 문장 분할 및 줄 바꿈과 같은 더 많은 기능을 추가할 수 있습니다.