記事要約を自動(dòng)生成するコード【PHP版】
Jun 13, 2016 pm 12:31 PM
実裝內(nèi)容:HTMLコードを含むテキストを切り詰めますが、包含タグが閉じていなくても問(wèn)題ありません。
注: これはサーバー側(cè)で使用するための PHP バージョンです。クライアント バージョンが必要な場(chǎng)合は、次の記事をお読みください。
BLOG などのプログラムを作成する場(chǎng)合、多くの場(chǎng)合、前の部分を表示する必要があります。しかし、不適切な切り詰めにより終了タグが破壊され、ドキュメント構(gòu)造全體に損傷が生じるのではないかと心配しています。この関數(shù)を使用すると、高い要件を必要とせずにこの問(wèn)題を解決できます。
この機(jī)能をサーバー側(cè)に適用するかクライアント側(cè)に適用するかを誰(shuí)もが考慮する必要があります。この機(jī)能は実行するとマシンへの負(fù)荷が高くなる可能性があると考えられるため、セキュリティ要件が高くない場(chǎng)合はクライアントに配置できます。
対応するデータベース クエリも最適化されるように、この概要をデータ テーブルの別のフィールドに配置するのが最善です。多くの時(shí)間を費(fèi)やす代わりに少しのスペースを犠牲にするのは、それでも十分に得策です。
セキュリティの問(wèn)題、主にコンテンツのセキュリティについてもう一度話(huà)しましょう。クライアントが通常の要約情報(bào)を変更しようとする場(chǎng)合、通常、BLOG の所有者がその権限を有しており、要約と原文との間の一貫性を破壊するのは彼自身の仕事です。コンテンツ以外のセキュリティはサーバー側(cè)で解決できます。したがって、この機(jī)能はクライアント側(cè)で使用することをお?jiǎng)幛幛筏蓼埂?
コアコード
コピーコード コードは次のとおりです:
// PHP 4.3 以降が必要
define("BRIEF_LENGTH", 800);?????//記事のブリーフィングの単語(yǔ)量
function Generate_Brief($text){
global $Briefing_Length;?
if(strlen($text) <= BRIEF_LENGTH ) return $text;????
$Foremost = substr($text, 0, BRIEF_LENGTH);?
$re = "/<(/?)(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|OBJECT |A|UL|OL|LI|BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|SPAN)[^>]*(>?)/i";?
$Single = "/BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT/i";????
$Stack = array();?$posStack = array();?
preg_match_all($re,$Foremost,$matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);?
/* [子マッチング仕様]:
$matches[$i][1] : 現(xiàn)在の "<...>" かどうかを示す "/" 文字?摩擦は終了部分
$matches[$i][2] : 要素名です。?
$matches[$i][3] : 右 >?「<...>」の?摩擦 */
for($i = 0 ; $i < count($matches); $i ){
if($matches[$i][1][0] == ""){
$Elem = $matches[$i][2][0];?
if(preg_match($Single,$Elem) && $matches[$i][3][0] !=""){
続き;?
}
array_push($Stack, strtoupper($matches[$i][2][0]));?
array_push($posStack, $matches[$i][2][1]);??????????
if($matches[$i][3][0] =="") break;?
}else{
$StackTop = $Stack[count($Stack)-1];?
$End = strtoupper($matches[$i][2][0]);?
if(strcasecmp($StackTop,$End)==0){
array_pop($Stack);?
array_pop($posStack);?
if($matches[$i][3][0] ==""){
$Foremost = $Foremost.">";?
}
}
}
}
$cutpos = array_shift($posStack) - 1;????
$Foremost = substr($Foremost,0,$cutpos);?
$Foremost を返します。?
};?
復(fù)制代碼 代碼如下:
関數(shù) Generate_Brief($text){
global $Briefing_Length;?
mb_regex_encoding("UTF-8");?
if(mb_strlen($text) <= BRIEF_LENGTH ) return $text;????
$Foremost = mb_substr($text, 0, BRIEF_LENGTH);?
$re = "<(/?)(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|OBJECT| 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";????
$Stack = array();?$posStack = array();?
mb_ereg_search_init($Foremost, $re, 'i');?
while($pos = mb_ereg_search_pos()){
$match = mb_ereg_search_getregs();?
/* [子マッチングの定式化]:
$matche[1] : 現(xiàn)在の 「<...>」かどうかを示すA "/" 文字?摩擦は終了部分
$matche[2] : 要素名です。?
$matche[3] : 右 >?「<...>」の?摩擦
*/
if($match[1]==""){
$Elem = $match[2];?
if(mb_eregi($Single, $Elem) && $match[3] !=""){
続き;?
}
array_push($Stack, mb_strtoupper($Elem));?
array_push($posStack, $pos[0]);??????????
}else{
$StackTop = $Stack[count($Stack)-1];?
$End = mb_strtoupper($match[2]);?
if(strcasecmp($StackTop,$End)==0){
array_pop($Stack);?
array_pop($posStack);?
if($match[3] ==""){
$Foremost = $Foremost.">";?
}
}
}
}
$cutpos = array_shift($posStack) - 1;????
$Foremost = mb_substr($Foremost,0,$cutpos,"UTF-8");?
$Foremost を返します。?
};?

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover
寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類(lèi)リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

n 1クエリの問(wèn)題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動(dòng)変更追跡を無(wú)効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開(kāi)発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

まず、JavaScriptを使用して、ユーザーシステムの設(shè)定とローカルに保存されたテーマ設(shè)定を取得し、ページテーマを初期化します。 1. HTML構(gòu)造には、トピックの切り替えをトリガーするボタンが含まれています。 2。CSSの使用:rootは明るいテーマ変數(shù)を定義し、.dark-modeクラスは暗いテーマ変數(shù)を定義し、これらの変數(shù)をvar()を介して適用します。 3. JavaScript検出は、カラーのスchemeを好み、LocalStorageを読み取り、最初のテーマを決定します。 4.ボタンをクリックするときにHTML要素のダークモードクラスを切り替え、現(xiàn)在の狀態(tài)をLocalStorageに保存します。 5.すべての色の変更には、ユーザーを強(qiáng)化するために0.3秒の移行アニメーションが伴います

パフォーマンス分析ツールを使用してボトルネックを見(jiàn)つけ、開(kāi)発とテスト段階でVisualVMまたはJProfilerを使用し、生産環(huán)境で非同期財(cái)産を優(yōu)先します。 2。オブジェクトの作成を削減し、オブジェクトを再利用し、StringBuilderを使用して文字列のスプライシングを置き換え、適切なGC戦略を選択します。 3.コレクションの使用を最適化し、シーンに応じて初期容量を選択し、プリセットします。 4.同時(shí)性を最適化し、同時(shí)コレクションを使用し、ロックの粒度を低減し、スレッドプールを合理的に設(shè)定します。 5. JVMパラメーターを調(diào)整し、合理的なヒープサイズと低遅延のゴミコレクターを設(shè)定し、GCログを有効にします。 6.コードレベルでの反射を避け、ラッパークラスを基本タイプに置き換え、初期化を遅延させ、最終と靜的を使用します。 7。JMHと組み合わせた連続性能テストと監(jiān)視

HTML Unoderedリストを作成するには、タグを使用してリストコンテナを定義する必要があります。各リストアイテムはタグで包まれており、ブラウザは自動(dòng)的に弾丸を追加します。 1.タグを使用してリストを作成します。 2。各リスト項(xiàng)目はタグで定義されています。 3.ブラウザは、デフォルトのドットシンボルを自動(dòng)的に生成します。 4。サブリストはネスティングを通じて実裝できます。 5。CSSのリストスタイルタイプの屬性を使用して、ディスク、サークル、スクエア、またはなしなどのシンボルスタイルを変更します。これらのタグを正しく使用して、標(biāo)準(zhǔn)の非秩序化リストを生成します。

useguzzleforrobustttprequestswithheadersandtimeouts.2.parsehtmleffitywithsymfonydomddomedrawlerusingssseLectors.3.handlejavascript-heavysitesbyintegratingpuppeteerviaphpexec()torenderpages.4.respectrobots.txt、rotedelays.txt、adddelays.txt、adddelays.txt、

semantichtmlimprovesbothseoandaccessibilityを使用することはできません
