ホームページ >バックエンド開発 >PHPチュートリアル >PHP インターンシップのヒント (簡単な概要を作成する方法)
概要を生成する
最近、HTML コードから中国語の文字を抽出して概要に変換する必要がある、send_article インターフェイスを追加する必要があります。質問は:
1. 漢字が連続して出現すると取り出すことができなくなります
2.この方法は漢字と文字が混在する場合に有効です
理由:
おそらく純粋な中国語の場合はエンコーディングが別のものに変更されるため、正規表現は一致しませんが、中国語と文字が混在している場合は、文字エンコーディングが utf8 なので、実際には一致します。 label で中国語をラップし、それを示すために setchars=utf8 を使用して head ヘッダーを追加できましたが、クライアントのエンティティ クラスがすでに記述されているため、バックグラウンドで変更する方法を見つけるのが非常に面倒でした。そこで私は2番目の方法を試しました:
<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>
後で知ったのですが、これは実際には関数です
エンコーディングを変更できる関数があることが分かりました
<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>
しかし、この関数を使用したい場合は、php.iniファイルに移動して、 set extension=php_iconv.dll それを開いて、iconv 関数ライブラリをインストールして使用します
、ちょっと難しい。
最後に、strip_tags() 関数を使用すると問題を解決できることがわかりました
この関数は HTML タグを削除してセクションをインターセプトできます。
mb_substr(
summary,0,50);//文字 をインターセプトし、 などのエスケープ文字を削除する必要があります str_replace(’ ’,‘’,
summary); // エスケープ文字を削除します
概要を生成したり、文の分割や行の折り返しなどの関数を後で追加したりできます。
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});