1

C では文字列の最後の文字は常に '\0' です PHP でも同じですか? そうでない場合、PHP の文字列の最後の文字は何ですか?

4

4 に答える 4

3

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して、クエリに追加するプレースホルダーの数を構築できます。

于 2012-11-15T08:23:12.827 に答える
1

文字列内の文字をループするには、次のように記述します。

for (i = 0; i < strlen($string); i++) {
    $char = substr($string, $i, 1);
    // Do stuff with $char
}
于 2012-11-15T08:15:34.393 に答える
0
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 ファイルの解析に使用します。

于 2012-11-15T08:16:56.847 に答える