[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
859: デフォルトの名無しさん (オイコラミネオ MM6b-fGW2) [sage] 2025/07/01(火) 02:30:13.65 ID:LkiphQyhM PHPの文字列は、1つの文字列の中でも、文字によってバイト数が異なるそうだ。 だから、$str[$k] の $k は、文字単位ではなくバイト単位。 文字単位で指定したい場合には、 mb_substr($str, $k, 1, "UTF-8") とするとのこと。 文字列の終端には一応 0x00 が入っているが、文字の長さはバイト数で管理されており、0を 終端とはみなしていない。だから、文字コードが 0x00 の文字も文字列の中に含めることが可能。 $str = "こんにちは&
quot;; echo strlen($str); // バイト数(UTF-8なら15) echo mb_strlen($str); // 文字数(5文字) ところが、正規表現を扱う場合には、0x00 のバイトが含まれていると、文字列の終端と みなされることがある。だから、ユーザーによって入力された文字列を正規表現で 安全チェックをしたつもりでも、文字列の途中に 0x00 のバイトが含まれていて、 それ以後に危険なコードをが含まれている倍がある。 C言語で作っていれば子の様な齟齬は起きない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/859
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 143 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s