C では文字列の最後の文字は常に '\0' です PHP でも同じですか? そうでない場合、PHP の文字列の最後の文字は何ですか?
4 に答える
PHP の文字列はバイナリ セーフです。つまり、文字列にも含めることができます\0
。したがって、使用できる終了文字はありません。
代わりに、文字列の長さは PHP の内部変数表現内に個別に格納されます。これにより、文字列の長さの計算も大幅に高速化されます。
データベースのデータを含む csv ファイルがあります。データの各行を SQL 形式に変換する必要があります。csv ファイルのデータは次のとおりです。"abc,abc,1243,abc" このように作成する必要があります。
まず第一に、fgetcsv()
そのために使用する必要があります。行全体 (場合によっては行) を 1 つの配列に変換します。
これらの値をデータベースに保存する必要があると思います。これを使用できます:
if ($arr = fgetcsv($f)) {
$stmt = $db->prepare('INSERT INTO tablename VALUES (?, ?, ?, ?)');
$stmt->execute($arr);
}
これは、CSV の各行に 4 つの項目があることを前提としています。より一般的にするために、長さを使用$arr
して、クエリに追加するプレースホルダーの数を構築できます。
文字列内の文字をループするには、次のように記述します。
for (i = 0; i < strlen($string); i++) {
$char = substr($string, $i, 1);
// Do stuff with $char
}
for( $i = 0, $len = strlen( $string ); $i < $len; $i++ )
{
$char = $string[ $i ];
// do something with $char
}
...それを行う1つの方法です。
もう 1 つの方法は、単純に PHP 関数を使用するstr_split()
ことです (文字列の個々の文字の配列を作成します ($split_length
デフォルトとは異なる長さの 2 番目の引数を渡さない限り))。
foreach( str_split( $string ) as $char )
{
// do something with $char
}
...など
編集:
あなたの質問に対するあなたのコメントへの補遺として; fgetcsv()
csv ファイルの解析に使用します。