ホームページ バックエンド開発 PHPチュートリアル [まとめ+考察] PHP文字列フィルタリング各種関数アプリケーション

[まとめ+考察] PHP文字列フィルタリング各種関数アプリケーション

Jun 13, 2016 pm 01:14 PM
mysql php quot str

【まとめ+考察】PHPの文字列フィルタリング各種関数適用
まずは自省…正規表現が下手なので書いたフィルタリング条件は基本的に失敗してます…
無理ですオンラインで確認した機能を理解しました。変更した後でも問題が発生しました。

さまざまな csdn の神の指導の下、少し啓発されました... 元の質問投稿へのリンク

では各パスの機能を公開していますので、亡くなった方でもまだ死んでいない方でもご利用いただけます。
よく使われる方法を積極的に追加して投稿していただければ幸いです。

基本機能
---------------------- ---------------------------- ---------------
実際、mysql と php には、文字の問題に対処するために使用できる多くの関数が付属しています。
ps: 以来。 php6 は、magic_quotes_gpc をサポートしていません。以下のものは、magic_quotes_gpc=off の条件下であると想定されます (php6 でどのような新しいものがリリースされるかはわかりません...)

mysql_real_escape_string()
定義: この関数は、SQL ステートメントで使用される文字列内の特殊文字をエスケープします。
構文: mysql_real_escape_string(string,connection)
説明: この関数は string 内の特殊文字をエスケープし、接続の現在の文字セットを考慮するため、mysql_query() で安全に使用できます。
コード例は長すぎるため、関数の説明リンクを示します。 w3school phpnet

addSlashes()
定義:addslashes() 関数は、指定された定義済み文字の前にバックスラッシュを追加します。
構文: addedlashes(string)
注: デフォルトでは、PHP 命令 magic_quotes_gpc がオンになっており、すべての GET、POST、COOKIE データに対して addlashes() が自動的に実行されます。 magic_quotes_gpc によってエスケープされた文字列に対して addslashes() を使用しないでください。二重エスケープが発生するためです。この状況が発生した場合は、関数 get_magic_quotes_gpc() を使用して検出できます。
コード例は長すぎるため、関数説明のリンクを貼っておきます。 w3school phpnet
関連関数
StripSlashes() はバックスラッシュ文字を削除します。 (フィルタ文字の説明時に使用します)

mb_convert_encoding()
PHP の内部コード変換関数
バージョン (PHP 4 >= 4.0.6, PHP 5)
この関数はさまざまな相互コードを変換できますエンコーディング間の変換
関連リンク phpnet

iconv()
php の内部コード変換関数、同上
iconv() は gb2312 の変換にバグがあるため、それを処理する必要がありますこのように

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->iconv( "UTF-8", "gb2312//IGNORE" , $str)
ログイン後にコピー

ignore は、文字 "-" を gb2312 に変換するときにエラーになることがわかります。無視パラメータ、この文字に続くすべての文字列 何も保存できません。
さらに、mb_convert_encoding にはこのバグがないため、次のように記述するのが最善の方法です:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->mb_convert_encoding($str,"gb2312", "UTF-8");
ログイン後にコピー

ただし、最初に mbstring 拡張ライブラリを有効にする必要があります。
mysql データベースの照合順序を utf-8 に設定し、変換に使用しないこともできます
3 つの mysql マントラ
SQL コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
SET NAMES utf8;
SET CHARACTER SET utf8;
SET COLLATION_CONNECTION='utf8_general_ci';

ログイン後にコピー

関連リンク phpnet
情報参照 link1 link2 link3

カスタム機能 1
----------------------------- ---------------
GB2312をネット上にある変換関数を使ってutf-8に変換すると変換エラーが発生し中国語が解析できなくなります。 ... 定期的な狂人を楽しみにしています ...
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
function escape($str) {
         preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
        $ar = $r[0];
        foreach($ar as $k=>$v) {
                 if(ord($v[0]) < 128)
                            $ar[$k] = rawurlencode($v);
                 else
                            $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
                                                     }
        return join("",$ar);
}

function unescape($str) {
       $str = rawurldecode($str);
       preg_match_all("/(?:%u.{4})|.+/",$str,$r);
       $ar = $r[0];
       foreach($ar as $k=>$v) {
                if(substr($v,0,2) == "%u" && strlen($v) == 6)
                $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
                  }
       return join("",$ar);
}
?>
ログイン後にコピー


カスタム関数 2
----------- -------------- ------------------------
フォーラム ginzai777、専門家に感謝しますは異なります。一目で問題がわかります....
将来的には、この行を PHP フィルタリングに使用することになり、ファイルのエンコーディングについて心配する必要はなくなります....
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
function addslashes_str($str){
$str=addslashes($str);
$str=str_replace($str,";",'\;');
return $str;
}
function stripslashes_str($str){
$str=stripslashes($str);
$str=str_replace($str,'\;',";");
return $str;
}
?>
ログイン後にコピー


------ ------------------------ -------------------
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

2024 年の開発者向け PHP CMS プラットフォーム トップ 10 2024 年の開発者向け PHP CMS プラットフォーム トップ 10 Dec 05, 2024 am 10:29 AM

CMSはコンテンツマネジメントシステムの略称です。これは、ユーザーが高度な技術知識を必要とせずにデジタル コンテンツを作成、管理、変更できるようにするソフトウェア アプリケーションまたはプラットフォームです。 CMS を使用すると、ユーザーはコンテンツを簡単に作成および整理できます

PHPの配列の最後に要素を追加する方法 PHPの配列の最後に要素を追加する方法 Feb 07, 2025 am 11:17 AM

配列は、プログラミングのデータを処理するために使用される線形データ構造です。アレイを処理している場合は、既存の配列に新しい要素を追加する必要があります。この記事では、各方法のコード例、出力、時間と空間の複雑さ分析を使用して、PHPの配列の最後に要素を追加するいくつかの方法について説明します。 アレイに要素を追加するさまざまな方法は次のとおりです。 四角い括弧を使用します[] PHPでは、配列の最後に要素を追加する方法は、四角い括弧[]を使用することです。この構文は、単一の要素のみを追加する場合にのみ機能します。以下は構文です。 $ array [] = value; 例

See all articles