php - 在 PHP 中使用 sprintf 时添加\n 换行符

标签 php newline printf

我正在尝试将现有数据从 MySQL 数据库导出到我可以使用 rake db:seed 运行的 ruby​​ 命令。

这是我的代码。

# Generate db:seed data for proveedores.
$proveedores = R::findAll('tbproveedores');
$proveedoresE = R::exportAll($proveedores);

foreach ($proveedoresE as &$p) {

    $line = 'BookSupplier.create(company: "%s", city: "%s", country: "%s", address: "%s", telephone: "%s", contact: "%s", email: "%s", website: "%s"\n';
    $exportedLine = sprintf($line, $p['empresa'], $p['ciudad'], $p['pais'], $p['direccion'], $p['telefono'], $p['personacontacto'], $p['email'], $p['website']);
    var_dump($exportedLine);
    fwrite($seeds, $exportedLine);
    echo "<br />";
}

请注意 $line 变量末尾的 \n 换行符。我在网上看到这就是使用换行符所需的全部内容。

我上面的代码的输出是(vertabim, a long line):

BookSupplier.create(company: "Pearson", city: "Lima", country: "Peru", address: "Av. Limon", telephone: "4673535421", contact: "Javier", email: "", website: ""\nBookSupplier.create(company: "Project Management Institute - PMI", city: "Pennsylvania", country: "Estados Unidos", address: "Newtown Square, Pennsylvania", telephone: "1", contact: "Limberg Morales", email: "", website: "http://www.pmi.org/"\nBookSupplier.create(company: "UVirtual - Centro de Excelencia", city: "Santa Cruz", country: "Bolivia", address: "Av. Irala 585", telephone: "1", contact: "Limberg Morales", email: "", website: ""\nBookSupplier.create(company: "Ábaco de Rodolfo Depalma", city: "Buenos Aires", country: "Argentina", address: "Viamonte 1336, 4° (C1053 ACB) Buenos Aires", telephone: "5411-43711675", contact: "Limberg Morales", email: "", website: "http://www.abacoeditorial.com.ar/"\nBookSupplier.create(company: "Pablo Lledó - ProjectManagement", city: "Canadá", country: "Estados Unidos", address: "Victoria, BC, Canadá", telephone: "1", contact: "Limberg Morales", email: "", website: ""\n

我希望每个调用都在它自己的行中,在我插入换行符之后。对我做错了什么有什么建议吗?

最佳答案

换行符 \n 仅在包含在 引号中时才会被解释:"。像这样:

$line  = '...............';
$line .= "\n";

您还应该了解 PHP_EOL 它是一个包含系统换行符的常量,它在多个操作系统上是不同的。例如,在 Linux 上它将是 \n 但在 Windows 上它将是 \r\n。最便携的代码如下所示:

$line  = '.....';
$line .= PHP_EOL;

关于php - 在 PHP 中使用 sprintf 时添加\n 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091831/

相关文章:

php - 使用一个 SQL 请求更新多行

javascript - 匹配行首时 JavaScript V8 正则表达式引擎中的错误?

text - 如何查看文件中使用了哪些行结束字符?

vim - 在编辑器中查看换行符和回车符

c - 不会以我的形象阅读

c - 为什么 fgets 返回错误的字符串?

javascript - $.getJSON 使用数据参数修改 HTML 元素上的文本

javascript - 如何将数据库/表数据转换为文件名?

Java printf 格式化以打印表或列中的项目

php - 基于用户输入的MySQL查询