我有一个字符串,我从xcode检索包含一些坐标,当字符串插入数据库时显示为:
(
"37.351701,-122.105898",
"37.351945,-122.106109",
"37.352183,-122.106338"
)
我需要字符串:
37.351701,-122.105898,
37.351945,-122.106109,
37.352183,-122.106338
我使用str_replace,它删除了()但是留下了一个空行:
//empty line
37.351701,-122.105898,
37.351945,-122.106109,
37.352183,-122.106338
//empty line
我正在使用的代码,如何删除空行?
<?php
$conn = mysql_connect($host, $user, $pass);
@mysql_select_db($db) or die("Unable to find database");
$trackArray = $_GET["trackArray"];
$trackArrayOutput = str_replace( array('"', '(' , ')', ' ', '\n', '\r', '\n\r'), '', $trackArray);
$query = "INSERT INTO routes VALUES ('', '$trackArrayOutput')";
mysql_query($query) or die (mysql_error("error"));
mysql_close();
?>
答案 0 :(得分:2)
$myvar = " cool huh ? ";
//trim it
$myvar = trim($myvar);
//now echo
echo $myvar ; //result will be
cool huh?
答案 1 :(得分:2)
您遇到了 PHP问题。
从以下位置更改您的替代品:
array('"', '(' , ')', ' ', '\n', '\r', '\n\r')
为:
array('"', '(' , ')', ' ', "\n", "\r")
'\n'
未向您提供newline
字符。您需要"
让PHP评估字符串。
澄清:var_dump('\n' === "\\n"); // true
请注意,输出将为:
37.351701,-122.105898,37.351945,-122.106109,37.352183,-122.106338
所以一切都在一条线上。
答案 2 :(得分:1)
\n\r
不是有效的结尾行;你的意思是CRLF - \r\n
。 trim()
对于删除开始/尾随空格和换行符非常有用:
$trackArrayOutput = str_replace( array('"', '(' , ')'), '', $trackArray);
$trackArrayOutput = trim($trackArrayOutput);
答案 3 :(得分:1)
单引号之间CRLF无效。
要替换它们,请使用:“\ r \ n”不是'\ r \ n'。
这是一个可以帮助的肮脏黑客:
function noNl($string){
return str_replace("<br />","",nl2br($string));
}
答案 4 :(得分:1)
$trackArray = trim($_GET["trackArray"]);
$query = "INSERT INTO routes VALUES ('', '$trackArrayOutput')";
答案 5 :(得分:1)
将问题分成不同的步骤:
// convert all newlines to '\n'
$str = str_replace( array("\n","\r","\r\n"), "\n", $str);
// remove first line
$str = substr($str, strpos($str, "\n")+1 );
// remove last line
$str = substr($str, 0,strrpos($str, "\n")-1);
// remove the spaces
$str = str_replace(' ', '', $str);