PHPインターセプト文字列関数(中国語文字列)(1/2)_PHPチュートリアル
phpインターセプト文字列関数(中国語文字列) これは、中国語の文字列をサポートする機能です。HTML タグが文字インターセプトに含まれない場合、HTML タグは含まれません。閉じると、プログラムは冗長なタグを自動的に除外します。
phpチュートリアルの文字列関数のインターセプト (中国語の文字列)
これは、中国語文字列をサポートする機能です。html タグが閉じられていない場合、html タグは文字インターセプトに含まれません。 、プログラムは自動的に冗長なタグを除外します。
*/
関数 mysubstr( $str, $length ){
$tagcnt = 0;
$charcnt = 0;
$tag = '';
$maxlen = strlen( $str );
$resultstr = '';
$tagstack = array();for( $i = 0; $i if( $str[$i] == '<' ){
$resultstr .= $str[$i];
for( $j=$i; $str[$j]!='>'; $j++,$length++){
$tag = '';
$tag .= $str[$j];
}
$tagcnt++;
$length++;
$tag .= '>';
// 開始タグの場合はスタックにプッシュし、対応する終了タグの場合はスタックからポップします
If( preg_match('//i', $tag, $r) ){
エコー 'スタックに:', htmlspecialchars ($ r [1]), '& lt;
; array_push($tagstack, $r[1]);
}
elseif( preg_match( '/'.$tagstack[count($tagstack)-1].'/', $tag ) ){
エコー 'スタック外:', htmlspecialchars ($ tagstack [count ($ tagstack) -1]), '& lt;
; array_pop( $tagstack );
}
続行;
$charcnt++;
}
$resultstr .= $str[$i];
}
echo '
最終結果は次のとおりです:';
//スタックが空の場合は直接戻りますIf(空($tagstack)){
$tag = array_pop($tagstack);
$resultstr;
を返す }
//それ以外の場合は、終了タグなしで開始タグを削除します
他{
while(!empty($tagstack)){
$index = strrpos($resultstr, $tag);
for($i = $index-1; $resultstr[$i] != '>'; $i++){
$resultstr[$i] = '';
$resultstr[$i++] = '';
}
$resultstr;を返す
}
}
$sttime = マイクロタイム(true);
}
$stmem =memory_get_usage();
$str = "a1
b2c3d4e5
f6g7h8";echo '処理結果は次のとおりです:
',htmlspecialchars( mysubstr( $str, 18 ) ),'
';echo "メモリ使用量:",(memory_get_usage()-$stmem),'
';echo "アルゴリズム実行時間 (microtime):",(microtime(true)-$sttime),'
';
//方法 2
/
1 2**
エコー '
* 関数名 html_substr
* 機能: HTML 文字列から指定された長さの文字列をインターセプトします。HTML タグは含まれません
*パラメータ
* $str インターセプトされる文字列
* $len はインターセプトされる長さです
* $mode 一致しないタグの処理方法 0 削除 (デフォルト)、1 完了
* インターセプトされた文字列を返します
*説明
* マルチバイト文字は考慮されず、バイトのみがカウント単位として使用されます
※単独で存在できるマークは考慮されません
**/
関数 html_substr($str, $len, $mode=0) {
$ar= preg_split('/(|<[^>]*>)/s', $str, -1, preg_split_delim_capture);
foreach($ar as $k => $v) {
If($v{0} != '<') {
$len = $len - strlen($v);
If($len < 0) $ar[$k] = substr($v, 0, $len);
}else $ar[$k] = strto lower($v);
If($len <= 0) ブレーク;
}
$ar = array_slice($ar, 0, $k+1);
$len = count($ar);
foreach($ar as $k=>$v) {
If($v{0} == '<' && $v[1] != '/') {
$ch = str_replace('<', '', $v);
for($i=$k+1; $i<$len && $ar[$i]!=$ch; $i++);
If($i == $len)
if($mode)
$ar[$len] = $ch . その他
$ar[$k] = '';
}
}
return join('', $ar);
}
$str = "123abc456def789";
'; echo html_substr($str, 5) .php_eol;
echo html_substr($str, 5, 1);

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
