在PHP中使用引号和逗号转换新行

时间:2017-06-28 18:31:56

标签: php

我正在尝试将textarea文本转换为我可以放入postcodes.io检查器API的字符串

textarea的例子:

TW7 8PX
TW14 8NU
W3 7JW

然后需要转换为:

"TW7 8PX", "TW14 8NU", "W3 7JW"

目前我正在使用手动字符串:

$query = '"TW7 8PX", "TW14 8NU", "W3 7JW"';
$postcode = new Postcode();
$lookup = $postcode->bulkLookup(array($query));

我想用preg_replace可以实现,但我似乎无法找到我需要的组合。

6 个答案:

答案 0 :(得分:3)

您只需使用一行代码即可实现此目的:

$result = '"' . implode('", "', explode("\n", $inputString)) . '"';

答案 1 :(得分:3)

正则表达式用于匹配模式,如果您的模式只是一个字符(在这种情况下是换行符),则它们是过度的。

$query = '"'.str_replace("\n", '", "', $_POST['textarea']).'"';

会做你想做的事。

答案 2 :(得分:3)

似乎每个人都错过了明显的 - 这是一个想要json的REST api的输入。

以下是解决方案:

<?php

$input = <<< EOT
TW7 8PX
TW14 8NU
W3 7JW
EOT;

$output['postcodes'] = explode("\n", $input);
echo json_encode($output);

Tested

答案 3 :(得分:2)

这是一个可能的解决方案:

<?php
$input = <<< EOT
TW7 8PX
TW14 8NU
W3 7JW
EOT;
foreach (explode("\n", $input) as $line) {
  $output[] = '"' . $line . '"';
}
var_dump(implode(', ', $output));

另一种选择是:

<?php
$input = <<< EOT
TW7 8PX
TW14 8NU
W3 7JW
EOT;
$output = '"' . implode('", "',explode("\n", $input)) . '"';
var_dump($output);

明显的输出是:

string(31) ""TW7 8PX", "TW14 8NU", "W3 7JW""

答案 4 :(得分:1)

尝试一下:

$textAreaText = //whatever the field the value resides
$convertedText = '"' . implode('", "',explode("\n", $textAreaText)) . '"';

<强>输出 &#34; TW7 8PX&#34;,&#34; TW14 8NU&#34;,&#34; W3 7JW&#34;

在PhpFiddle上测试

答案 5 :(得分:1)

事实证明这很简单,我只是以错误的方式看待它:

$query = explode("\n", str_replace("\r", "", $_POST["postcodes"])); //Use Explode
$postcode = new Postcode();
$lookup = $postcode->bulkLookup($query); // Remove array()

感谢您的帮助