在C中,字符串的最后一个字符始终为'\ 0',PHP也是如此吗?如果没有,那么PHP中字符串的最后一个字符是什么?
答案 0 :(得分:3)
PHP中的字符串是二进制安全的,这意味着它们也可以包含\0
。因此,没有可以使用的终止字符。
相反,字符串的长度分别存储在PHP的internal variable representation中。这也使字符串长度计算更快。
我有一个csv文件,其中包含数据库的一些数据。现在我必须转换sql格式的每一行数据。 csv文件中的数据如下:“abc,abc,1243,abc”我必须使它们像'abc','abc',123,'abc'“。
首先,您应该使用fgetcsv()
;它将整行(或某些情况下的行)转换为一个数组。
我猜你想把这些值存储到数据库中;你可以用这个:
if ($arr = fgetcsv($f)) {
$stmt = $db->prepare('INSERT INTO tablename VALUES (?, ?, ?, ?)');
$stmt->execute($arr);
}
这假设您的CSV中的每一行都有四个项目;为了使其更通用,您可以使用$arr
的长度来构建要在查询中添加的占位符数。
答案 1 :(得分:1)
要遍历字符串中的字符,请编写:
for (i = 0; i < strlen($string); i++) {
$char = substr($string, $i, 1);
// Do stuff with $char
}
答案 2 :(得分:1)
我认为应该这样做
$lastChar = substr($string, -1);
答案 3 :(得分:0)
for( $i = 0, $len = strlen( $string ); $i < $len; $i++ )
{
$char = $string[ $i ];
// do something with $char
}
......是一种方法。
另一种方法是简单地使用PHP函数str_split()
(它创建字符串各个字符的数组(除非你传递第二个参数$split_length
,其长度不同于默认值)) :
foreach( str_split( $string ) as $char )
{
// do something with $char
}
......等等。
编辑:
作为对你的问题的评论的附录;使用fgetcsv()
解析csv文件。