php_PHP チュートリアルで HTML 文字列をインターセプトし、HTML タグを自動的に補完する方法
phpを使用してhtml文字列をインターセプトし、htmlタグを自動的に補完する方法
この記事では、phpがhtml文字列をインターセプトし、htmlタグを自動的に補完する方法を主に紹介します。これは、phpがhtmlを操作するための非常に実践的なスキルです。特定の参照値があり、必要な友達はそれを参照できます
この記事の例では、PHP を使用して HTML 文字列をインターセプトし、HTML タグを自動的に補完する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
これは、php を使用して HTML 文字列をインターセプトし、HTML タグを自動的に補完する方法の概要です。実際の開発では、最初に HTML タグを直接、strip_tags で除外することがよくありますが、プレーンテキストのみが残り、可読性が非常に高くなります。以下は次のコードを含む関数です:
コードは次のとおりです:
* HTML をインターセプトし、自動的に完成して閉じます
* @param $html
* @param $length
* @param $end
*/
関数 subHtml($html,$length) {
$結果 = ''; $tagStack = 配列(); $len = 0;
$contents = preg_split("~(]+?>)~si",$html, -1,PREG_SPLIT_NO_EMPTY| PREG_SPLIT_DELIM_CAPTURE); foreach($contentsを$tagとして)
{
if (trim($tag)=="") 続行します。 if(preg_match("~]*?/>~si",$tag)){
$結果 .= $タグ
}else if(preg_match("~([a-z0-9]+)[^/>]*?>~si",$tag,$match)){
if($tagStack[count($tagStack)-1] == $match[1]){
array_pop($tagStack); $結果 .= $タグ
}
}else if(preg_match("~]*?>~si",$tag,$match)){
array_push($tagStack,$match[1]); $結果 .= $タグ
}else if(preg_match("~~si",$tag)){
$結果 .= $タグ
}その他{
if($len + mstrlen($tag) $結果 .= $タグ
$len += mstrlen($tag); } その他 {
$str = msubstr($tag,0,$length-$len+1); $結果 .= $str; 休憩
}
}
}
while(!emptyempty($tagStack)){
$result .= ''.array_pop($tagStack).'>'; }
$結果を返す
}
/**
* 中国語の文字列をインターセプトします
* @param $string 文字列
* @param $start 開始位置
* @param $length 長さ
* @param $charset エンコーディング
* @param $dot 追加文字列
*/
関数 msubstr($string, $start, $length,$dot='',$charset = 'UTF-8') {
$string = str_replace(array('&', '"', '',' '), array('&', '"', '',' ')、$string); if(strlen($string) $string を返します。 }
if(strto lower($charset) == 'utf-8') {
$n = $tn = $noc = 0; while($n $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 $tn = 1
; elseif(194 $tn = 2; $n += 2; elseif(224 $tn = 3; $n += 3; elseif(240 $tn = 4; $n += 4; elseif(248 $tn = 5; $n += 5; elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; } その他 {
$n++
}
$noc++
if($noc >= $length) {
休憩
}
}
if($noc > $length) {
$n -= $tn; }
$strcut = substr($string, 0, $n); } その他 {
for($i = 0; $i $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; }
}
$strcut.$dot を返す
}
/**
* 中国語と英語を含む文字列の長さを取得します。
*/
関数 mstrlen($str,$charset = 'UTF-8'){
if (function_exists('mb_substr')) {
$length=mb_strlen($str,$charset); elseif (function_exists('iconv_substr')) {
$length=iconv_strlen($str,$charset); } その他 {
preg_match_all("/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0 [x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/", $text, $ar);
$length=count($ar[0]); }
$length を返す
}
例、コードは次のとおりです:
コードをコピーします。コードは次のとおりです:
* @param インターセプトの数 $num
* @param $more を追加する必要がありますか
* @return インターセプト文字列
*/
関数 phpos_chsubstr_ahtml($str,$num,$more=false)
{
$leng=strlen($str); if($num>=$leng)
$str を返します。 $word=0; $i=0; /**文字列ポインタ **/
$stag=array(array()); /**HTMLを開始するフラグを格納します **/
$etag=array(array()); /**HTML を終了するフラグを格納します **/
$sp = 0; $ep = 0; while($word!=$num)
{
if(ord($str[$i])>128)
{
//$re.=substr($str,$i,3); $i+=3; $ワード++
}
else if ($str[$i]==' {
if ($str[$i+1] == '!')
{
$i++; 続けます
}
if ($str[$i+1]=='/')
{
$ptag=&$etag ; $k=&$ep; $i+=2
}
それ以外は
{
$ptag=&$stag; $i+=1; $k=&$sp; }
for(;$i {
if ($str[$i] == ' ')
{
$ptag[$k] = 爆破('',$ptag[$k]); $k++
休憩
}
if ($str[$i] != '>')
{
$ptag[$k][]=$str[$i]
続けます
}
それ以外は
{
$ptag[$k] = 爆破('',$ptag[$k]); $k++
休憩
}
}
$i++; 続けます
}
それ以外は
{
//$re.=substr($str,$i,1); $ワード++
$i++; }
}
foreach ($etag を $val として)
{
$key1=array_search($val,$stag); if ($key1 !== false) unset($stag[$key]); }
foreach ($stag as $key => $val)
{
if (in_array($val,array('br','img'))) unset($stag[$key1]); }
配列_リバース($stag); $ends = ''.implode('>',$stag).'>'; $re = substr($str,0,$i).$ends; if($more) $re.='...'; $re を返します。 }
PHP は文字列をインターセプトして記事の要約を生成します。ブログを書くとき、記事の前の部分を表示する必要があることがよくありますが、不適切な切り捨てによって終了タグが破壊され、ドキュメント全体の構造が損なわれるのではないかと心配しています。コードは次のとおりです。
コードをコピーします。コードは次のとおりです:
function text_zhaiyao($text,$length){ //記事概要生成関数 $test: 内容 $length: 概要の長さ
グローバル $Briefing_Length
mb_regex_encoding("UTF-8"); if(mb_strlen($text) $Foremost = mb_substr($text, 0, $length); $re = " (P|DIV|H1|H2|H3|H4|H5|H6|アドレス|プリ|テーブル|TR|TD|TH|入力|選択|テキストエリア|オブジェクト|A|UL|OL|LI|
BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|SPAN)[^>]*(>?)";
$Single = "/BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|BR/i";
$スタック = 配列(); $posStack = 配列();
mb_ereg_search_init($Foremost, $re, 'i');
while($pos = mb_ereg_search_pos()){
$match = mb_ereg_search_getregs(); /* [子に合った定式化]:
$matche[1] : 現在の「<...>」が
であるかどうかを示す「/」文字 終わりの部分
$matche[2] : 要素名
$matche[3] : 「<...>」の右 */
if($match[1]==""){
$Elem = $match[2]
; if(mb_eregi($Single, $Elem) && $match[3] !=""){
続けます
}
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/971935.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/971935.html
技術記事
phpでhtml文字列をインターセプトし、htmlタグを自動補完する方法 この記事では、phpでhtml文字列をインターセプトし、htmlタグを自動補完する方法を中心に紹介します...
。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
