そして、与えられるデータは次のような HTML コード文字列です:
インターセプトするときは、div タグ内のコンテンツをインターセプトし、HTML タグを保持し、その中のテキストのみを処理する必要があります。たとえば、「李思」の「李」という単語をインターセプトするだけかもしれませんが、このようにフロントエンドに置くと、「李思」の前の a タグが閉じられないので、インターセプト後に、 HTML 構文が正しいことを確認する必要があります。
この問題は本当に解決するのが簡単ではなく、私は二日間憂鬱になりました。これは単なる文字列ですが、内容は HTML コードであり、DOM がないことに注意してください。フロントエンドで処理できれば、DOM を直接取得して内部のノードを処理し、最終的に innerHTML などを出力することができます。今はうまくいかないので、考えを変えなければなりません。同僚のアイデアは次のとおりです:
文字列の各文字をトラバースします。タグを設定し、タグの先頭で
私の個人的なアイデアは、Tidy を使用することです (具体的な使用方法については、PHP マニュアルを参照してください)。昨日Tidyについて勉強したところ、これがとても便利であることがわかりました。まず、この文字列を次のように Tidy オブジェクトに変換します。
$tidy = Tidy_parse_string($str, array(), 'utf8'); // 最後のステップは、エンコーディングを設定することです。 utf- 8。中間接続はありません。
次に、$tidy で本文を取得します (変換後、$tidy は
などのタグを自動的に追加するため):$body = Tidy_get_body($tidy);
次の場所で var_dump を使用できます。今回は $body の構造を見ると、各タグが対応する属性を持つ対応するオブジェクトに変換されていることがわかります。たとえば、sdf などのステートメントに対応する属性は次のとおりです。
name=>”a”
value => “sdf"
child=> array{[0]=>テキスト ノード オブジェクト、値は sdf}
attribute=array{"href"=>"#"}
… ..その他の属性
ご覧のとおり、実際には、HTML の整合性を破壊しないように、a タグに対応するノードの下のテキスト ノードの値を個別に処理できます。当初は、aラベルのテキストノードの値を変更すると、それに合わせてaラベルの値も変更されると考えていましたが、その場合はaに対応するノードの値を直接返せばOKです。残念ながら、そのようなものになるとは予想していなかったので、その中のテキストを自分で記述する必要がありました。
Tidy オブジェクトの構造を理解した後は、すべてのノードを走査するだけで、div タグを見つけて内部のノードの処理を開始することができます。コードは次のとおりです。
if(mb_strwidth($subchild->value, 'utf-8') >= $len)
{
$subchild->value = mb_strimwidth($subchild->value, 0, $ len, '…', 'utf-8');
$trimed_str .= $subchild->value;
break;
}
else
{
$trimed_str .= $subchild->value;
$len = $len - mb_strwidth($subchild->value, 'utf-8');
}
の$subchildは子ノードです。ここでは、文字列の長さを取得するために mb_strwidth が使用されていることに注意してください。この mb_strwidth を強くお勧めします。これは非常に便利です。中国語を長さ 2 文字として扱い、ここでのニーズを正確に満たします。さらに、文字列をインターセプトするときに mb_strimwidth が使用されます。この関数は中国語も 2 文字として扱います。mb_ で始まる関数は非常に使いやすいです。
具体的なコードは書きません。要件に基づいて書かれており、汎用的な形式ではないためです。いつかそれを普遍的なものにして公開する時間ができました。
さらに、FireFox が text-overflow 属性をサポートしていないのは残念です。そうでない場合は、バックグラウンドで苦労して切り詰める必要はありません。もっと良い方法がある場合は、ディスカッション用にメッセージを残してください。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール
