我正在尝试将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可以实现,但我似乎无法找到我需要的组合。
答案 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);
答案 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()
感谢您的帮助