我可以使用byte[] imageBytes = rs.getBytes("doctimg");
if (rs.wasNull()) {
System.out.println("It was null!"); // or some more robust treatment
} else {
// Wasn't null, let's use it
String imageBase64 = DatatypeConverter.printBase64Binary(imageBytes);
}
读取一行中的整个字符串,但fgets()
没有这样做。
根据PHP手册
fscanf - 根据格式
解析文件中的输入函数
fscanf()
类似于fscanf()
,但它从与handle相关联的文件中获取其输入,并根据指定的格式解释输入,这在{{1}的文档中有所描述。 }}fgets - 从文件指针
获取行从文件指针获取一行。
由于sscanf()
支持上述格式,因此我可以使用sprintf()
来读取整行,但只读取一个字。
答案 0 :(得分:3)
fscanf()
和sscanf()
的PHP文档不完整。格式类似于printf()
使用的格式,但它们并不完全相同。当您打印时,%s
将打印任何字符串,但是当您扫描它时,它只会读取一个单词。要获得更完整的信息,您需要阅读C
fscanf()
函数的文档。其中一些信息也在文档网页的评论部分。
要使用fscanf()
阅读整行,请使用"%[^\\n]"
。在fscanf()
中,$[^characters]
表示匹配括号内不在集合中的任何字符序列(在正则表达式中类似于[^characters]*
)。所以这匹配除换行之外的任何字符序列。见http://php.net/manual/en/function.sscanf.php#56076