PHP 中國語と英語の混合タイプセットで文字列を処理するために一般的に使用される関數(shù)
Jun 13, 2016 pm 12:32 PM
# 特定の位置が漢字の左半分か右半分であるか、中國語ではないかを判斷します
# 戻り値 -1 左 0 漢字ではありません 1 右
# 使用法
/*
$ a = ' これは中國語です';
print is_chinese($a, 1); // 0
print is_chinese($a,8); // -1
print is_chinese($a,9) ; // 1
*/
function is_chinese(&$str, $location) {
$i = $location
while(ord($str[ $i] )>0xa0 && $i >= 0) {
$ch = !$ch;
$i --;
if($i != $location) {
$f_str = $ch ? 1: -1;
else {
$f_str = false;
??>}
# 中國語文字列反転関數(shù)
# strrev を使用して中國語文字を含む文字列を反転すると、文字化けコードが生成されます
/*
print cstrrev('this中國語です'); // 本文中 si ht
*/
function cstrrev(&$str) {
$long = strlen($str); =' ', $chinese=false, $i=$long-1; $i>=0; $i--) {
if(ord($str[$i]) > 0xa0) {
$ chinese = ! $chinese;
if($chinese == false) {
$f_str .= $str[$i].$str[$i 1]
}
else {
$f_str .= $str[$i];
}
}
return $f_str;
}
/* 中國語文字列インターセプト関數(shù)
一部の中國語の文字列インターセプト関數(shù)には、いくつかの問題が発生することがよくあります。たとえば、一部の自動行折り返しプログラムでは、
$a="1 in 2";
2 回インターセプトした後、
csubstr($str,$a,0 , 2);
csubstr($str, $a, 2,2)
読み込み位置が「middle」の右バイトを指しているので、結(jié)果は次のようになります
1, 2
この関數(shù)を使用すると、正しい結(jié)果が生成されます。
1, 2
*/
# 開始位置、0 から始まります
# long = 0、文字列の先頭から末尾までを取得します
# ltor = true の場合、文字は左から右に取得され、false の場合、文字は右から左に取得されます。
# $cn_len 中國語の文字は、単語番號で取得される場合はバイトまたは単語數(shù)で取得されます。 、漢字 1 文字は 1 バイトとしてカウントされます
function csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2) {
if($long == 0) $long = strlen($ str);
if($ltor == false) $str = cstrrev($str);
if($cn_len == 1) {
for($i=0 , $fs=0; $i$i = (ord($str[$fs]) for($i=0 , $fe=$fs; $i$i = (ord($str[$fe]) $long = $fe - $fs;
}
else {
$fs = (is_chinese($str, $start) == 1)開始 - 1 : $start;
$fe = $long $start - 1;
$end = (is_chinese($str, $fe) == -1) ? ??>$long = $end - $fs 1;
}
$f_str = substr($str, $fs, $long)
if($ltor == false) $f_str = cstrrev($f_str);
return $f_str;
}
# 左の文字列を取得します
# cn_len == 2 の場合、$long は文字?jǐn)?shù)を受け取ります左、およびその逆
function cleft(&$str, $long, $cn_len=2) {
$f_str = csubstr($str, 0, $long, true, $cn_len); return $f_str;
}
# 正しい文字列を取得します
function cright(&$str, $long, $cn_len=2) {
$f_str = cstrrev($str);
$f_str = csubstr( $f_str, 0, $long, true, $cn_len);
$f_str = cstrrev($f_str);
return $f_str;漢字を複數(shù)行に分けて含む記事
# 改行による問題はもう発生しません! ! !
# 注: 記事の各行は n (chr(13)) で區(qū)切る必要があります。
# $width 1 行あたりの文字?jǐn)?shù)
# $br 各行の終了文字として使用する文字line
function ctext_wrap(&$text, $width=60, $br="
") {
$lines =explode("n",$text); rows = count($ 行);
for($i=0; $i$len = strlen($lines[$i]); for($j= 0; $j$p = $j $width - 1;
$k = 0; len) {
while(!is_chinese($lines[$i], $p) && $lines[$i][$p] != ' ' && $p>$j) {
$k ;
$p --;
}
if($p == $j) $k = 0;
}
$f_str .= csubstr($lines[$i], $ j, $width- $k) . $br;
$j -= $k>}
}

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ユーザー音聲入力がキャプチャされ、フロントエンドJavaScriptのMediareCorder APIを介してPHPバックエンドに送信されます。 2。PHPはオーディオを一時ファイルとして保存し、STTAPI(GoogleやBaiduの音聲認(rèn)識など)を呼び出してテキストに変換します。 3。PHPは、テキストをAIサービス(Openaigptなど)に送信して、インテリジェントな返信を取得します。 4。PHPは、TTSAPI(BaiduやGoogle Voice Synthesisなど)を呼び出して音聲ファイルに返信します。 5。PHPは、音聲ファイルをフロントエンドに戻し、相互作用を完了します。プロセス全體は、すべてのリンク間のシームレスな接続を確保するためにPHPによって支配されています。

PHPでソーシャル共有機(jī)能を構(gòu)築するコア方法は、各プラットフォームの要件を満たす共有リンクを動的に生成することです。 1.最初に現(xiàn)在のページまたは指定されたURLおよび記事情報を取得します。 2。urlencodeを使用してパラメーターをエンコードします。 3.各プラットフォームのプロトコルに従って、共有リンクをスプライスおよび生成します。 4.ユーザーがクリックして共有できるように、フロントエンドにリンクを表示します。 5.ページ上のOGタグを動的に生成して、コンテンツディスプレイの共有を最適化します。 6. XSS攻撃を防ぐために、必ずユーザーの入力を逃がしてください。この方法は、複雑な認(rèn)証を必要とせず、メンテナンスコストが低く、ほとんどのコンテンツ共有ニーズに適しています。

AIによるテキストエラーの修正と構(gòu)文最適化を?qū)g現(xiàn)するには、次の手順に従う必要があります。1。Baidu、Tencent API、またはオープンソースNLPライブラリなどの適切なAIモデルまたはAPIを選択します。 2。PHPのカールまたはガズルを介してAPIを呼び出し、返品結(jié)果を処理します。 3.アプリケーションにエラー修正情報を表示し、ユーザーが採用するかどうかを選択できるようにします。 4.構(gòu)文の検出とコードの最適化には、PHP-LとPHP_CODESNIFFERを使用します。 5.フィードバックを継続的に収集し、モデルまたはルールを更新して効果を改善します。 AIAPIを選択するときは、PHPの精度、応答速度、価格、サポートの評価に焦點を當(dāng)てます。コードの最適化は、PSR仕様に従い、キャッシュを合理的に使用し、円形クエリを避け、定期的にコードを確認(rèn)し、Xを使用する必要があります。

phpisStillRelevantinModernenterpriseenvironments.1.modernphp(7.xand8.x)は、パフォーマンスゲイン、stricttyping、jit compilation、andmodernsyntaxを提供し、scaleApplications.2.phpintegrateSeffeCtiveTiveliveTiveliveTiveliveTiveTiveTiveliveTiveStures、

柔軟なPHPマイクロサービスを構(gòu)築するには、RabbitMQを使用して非同期通信を?qū)g現(xiàn)する必要があります。 2。信頼性を確保するために、永続的なキュー、永続的なメッセージ、リリース確認(rèn)、手動ACKを構(gòu)成します。 3.指數(shù)バックオフ再試行、TTL、およびデッドレターキューセキュリティ処理の障害を使用します。 4.監(jiān)督などのツールを使用して、消費者プロセスを保護(hù)し、ハートビートメカニズムを有効にしてサービスの健康を確保します。そして最終的に、システムが障害で継続的に動作する能力を?qū)g現(xiàn)します。

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

正しいPHP Basicイメージを使用し、安全で最適化されたDocker環(huán)境を構(gòu)成することが、生産を?qū)g現(xiàn)するための鍵です。 1.攻撃面を減らしてパフォーマンスを向上させるための基本畫像としてPHP:8.3-fpm-alpineを選択します。 2.カスタムPHP.iniを介して危険な機(jī)能を無効にし、エラーディスプレイをオフにし、OpCacheとJITを有効にしてセキュリティとパフォーマンスを強(qiáng)化します。 3. NGINXを逆プロキシとして使用して、機(jī)密ファイルへのアクセスを制限し、PHPリクエストをPHP-FPMに正しく転送します。 4.マルチステージ最適化畫像を使用して開発依存関係を削除し、非ルートユーザーを設(shè)定してコンテナを?qū)g行します。 5. CRONなどの複數(shù)のプロセスを管理するためのオプションの監(jiān)督。 6.展開前に機(jī)密情報漏れがないことを確認(rèn)します

subprocess.run()を使用して、シェルコマンドを安全に実行し、出力をキャプチャします。注入リスクを避けるために、リストのパラメーターを渡すことをお勧めします。 2。シェル特性が必要な場合は、シェル= trueを設(shè)定できますが、コマンドインジェクションに注意してください。 3. subprocess.popenを使用して、リアルタイム出力処理を?qū)g現(xiàn)します。 4。Check = COMMATが失敗したときに例外をスローするためにtrueを設(shè)定します。 5.単純なシナリオで直接チェーンを呼び出して出力を取得できます。 os.system()または非推奨モジュールの使用を避けるために、日常生活の中でsubprocess.run()を優(yōu)先する必要があります。上記の方法は、Pythonでシェルコマンドを?qū)g行するコアの使用を上書きします。
