


PHP は、文字列の類似性を計算するための関数 minimum_text() と levenshtein() を改善しました、levenshtein_PHP チュートリアル
PHP は、文字列の類似性を計算するための関数 simple_text()、levenshtein()、levenshtein
を改善しましたsimilar_text() 漢字バージョン
//文字列を分割します
関数 split_str($str) {
Preg_match_all("/./u", $str, $arr); 戻り $arr[0]; }
//類似点検出
関数類似テキスト_cn($str1, $str2) {
$arr_1 = array_unique(split_str($str1)); $arr_2 = array_unique(split_str($str2)); $similarity = count($arr_2) - count(array_diff($arr_2, $arr_1)); $similarity を返します
}
レーベンシュタイン()漢字バージョン
コードをコピーします
//拆分字符串
function mbStringToArray($string, $encoding = 'UTF-8') {
$arrayResult = array();
while ($iLen = mb_strlen($string, $encoding)) {
array_push($arrayResult, mb_substr($string, 0, 1, $encoding));
$string = mb_substr($string, 1, $iLen, $encoding);
}
$arrayResult を返します。
}
//编辑距離
function levenshtein_cn($str1, $str2, $costReplace = 1, $encoding = 'UTF-8') {
$count_same_letter = 0;
$d = 配列();
$mb_len1 = mb_strlen($str1, $encoding);
$mb_len2 = mb_strlen($str2, $encoding);
$mb_str1 = mbStringToArray($str1, $encoding);
$mb_str2 = mbStringToArray($str2, $encoding);
for ($i1 = 0; $i1 $d[$i1] = 配列();
$d[$i1][0] = $i1;
}
for ($i2 = 0; $i2 $d[0][$i2] = $i2;
}
for ($i1 = 1; $i1 for ($i2 = 1; $i2 // $コスト = ($str1[$i1 - 1] == $str2[$i2 - 1]) ? 0:1;
if ($mb_str1[$i1 - 1] === $mb_str2[$i2 - 1]) {
$コスト = 0;
$count_same_letter++;
} その他 {
$コスト = $コスト交換; //代替换
}
$d[$i1][$i2] = min($d[$i1 - 1][$i2] + 1, //插入
$d[$i1][$i2 - 1] + 1, //删除
$d[$i1 - 1][$i2 - 1] + $cost);
}
}
$d[$mb_len1][$mb_len2]を返します;
//return array(' distance' => $d[$mb_len1][$mb_len2], 'count_same_letter' => $count_same_letter);
}
最大パブリック子シーケンスLCS()
//最長の公開子配列英文版
関数 LCS_en($str_1, $str_2) {
$len_1 = strlen($str_1);
$len_2 = strlen($str_2);
$len = $len_1 > $len_2 ? $len_1 : $len_2;
$dp = 配列();
for ($i = 0; $i $dp[$i] = 配列();
$dp[$i][0] = 0;
$dp[0][$i] = 0;
}
for ($i = 1; $i for ($j = 1; $j if ($str_1[$i - 1] == $str_2[$j - 1]) {
$dp[$i][$j] = $dp[$i - 1][$j - 1] + 1;
} その他 {
$dp[$i][$j] = $dp[$i - 1][$j] > $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1];
}
}
}
$dp[$len_1][$len_2]を返します;
}
//拆分字符串
function mbStringToArray($string, $encoding = 'UTF-8') {
$arrayResult = array();
while ($iLen = mb_strlen($string, $encoding)) {
array_push($arrayResult, mb_substr($string, 0, 1, $encoding));
$string = mb_substr($string, 1, $iLen, $encoding);
}
$arrayResult を返します。
}
//最長のパブリック子配列中文版
関数 LCS_cn($str1, $str2, $encoding = 'UTF-8') {
$mb_len1 = mb_strlen($str1, $encoding);
$mb_len2 = mb_strlen($str2, $encoding);
$mb_str1 = mbStringToArray($str1, $encoding);
$mb_str2 = mbStringToArray($str2, $encoding);
$len = $mb_len1 > $mb_len2 ? $mb_len1 : $mb_len2;
$dp = 配列();
for ($i = 0; $i $dp[$i] = 配列();
$dp[$i][0] = 0;
$dp[0][$i] = 0;
}
for ($i = 1; $i for ($j = 1; $j If ($mb_str1[$i - 1] == $mb_str2[$j - 1]) {
$dp[$i][$j] = $dp[$i - 1][$j - 1] + 1; $dp[$i][$j] = $dp[$i - 1][$j] > $dp[$i][$j - 1] ? : $dp[$i][$j - 1]; $dp[$mb_len1][$mb_len2] を返します
}
(100 点)[php]よく知っている文字列処理関数をいくつか書いてみましょう!
hex2bin — hexa をデコードします10 進数でエンコードされたバイナリ文字列
html_entity_decode — すべての HTML エンティティを該当する文字に変換します
htmlentities — 変換該当するすべての文字を HTML エンティティに変換します
htmlspecialchars_decode — 特殊な HTML エンティティを文字に変換します
htmlspecialchars — 特殊文字を HTML エンティティに変換します
implode — 配列要素を文字列で結合します
join
lcfirst — 文字列の最初の文字を小文字にする
levenshtein — 計算します2 つの文字列間のレーベンシュタイン距離
localeconv — 数値書式設定情報を取得します
ltrim — 文字列の先頭から空白 (または他の文字) を削除します
md5_file
metaphone — 文字列のメタフォン キーを計算します
money_format — 数値を通貨文字列として書式設定します
nl_langinfo — 言語とロケール情報をクエリする
nl2br
number_format — 数値をグループ化してフォーマットする
ord
parse_str
print
printf
quoted_printable_decode — quote-printable 文字列を 8 ビット文字列に変換する
quote d_printable_encode — 変換8ビット文字列を引用符付き印刷可能な文字列に変換
quotemeta — メタ文字を引用
rtrim
setlocale — ロケール情報を設定
sha1_file
sha1
soundex — 文字列のsoundexキーを計算
sprintf — フォーマットされた文字列を返す
sscanf —文字列からの入力を次に従って解析します...残りのテキスト>>
PHPのlevenshtein関数について分かりやすく説明して頂けませんか
sitting (→g)
levenshtein() 関数は、各操作 (置換、挿入、削除) に等しい重みを与えます。ただし、オプションの挿入、置換、および削除パラメータを設定することで、各操作のコストを定義できます。
説明: 「コスト」は重みです。投稿者の例では、Hello World → ello World では、「H」を「削除」する必要があります。つまり、5 番目のパラメーターが使用され、対応する重みが 30 であるため、30 が返されます。
http://www.bkjia.com/PHPjc/901291.html
www.bkjia.com
true

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









