2017-04-20 103 views
0
<?php 
    $servername="localhost"; 
    $username="root"; 
    $password=""; 
    $dbname="abc"; 
    $sql=mysqli_connect($servername,$username,$password,$dbname) 
    $get=mysqli_query($sql,"SELECT * FORM table_name") 

    $dta=array(); 
    while($fetch=mysqli_fetch_assoc($get)){ 
     array_push($dta,$fetch); 
    } 

    $dta=preg_replace("/<br>/",'\n',$dta); 
    $json=json_encode($dta); 
    echo $json; 
    exit; 
?> 

我想从数据库中替换数据。想从
用php中的<n>替换<br>阵列

例如替换列值:

  1. 我有像A,B,C
  2. 列A具有类似于qwe <br> qu
  3. 我想塔A的结果数据的某些列会像qwe <n> qu

注意:上面的小例子有超过20列。

+0

还有一个叫做'nl2br功能()'http://php.net/manual/e n/function.nl2br.php – JustOnUnderMillions

+0

我想我不适用于阵列 –

+0

和提取数据 –

回答

0

你的代码有这么多的错误。

  1. $fetchモ阵列(未字符串)
  2. $dta然后数组的数组。
  3. preg_replace仅适用于不是数组的字符串。

你有第一个解决这个问题。

替换该行

array_push($dta,$fetch); 

与此:

//update all columns from the current fetched row 
$fetch = array_map(function($a){ 
     return str_replace(['<br/>','<br>','<br />'],"\n",$a); 
},$fetch); 
//add the data 
array_push($dta,$fetch); 

并删除preg_match线。

什么是['<br/>','<br>','<br />'] in str_replace?

如果您有一个数组作为第一个参数,那么每个条目将搜索替换。在这个例子中,我们真的不知道如何在代码中编写<br>。可以是<br/> <br> <br />,所以我在这里添加了所有的案例。

更多的相关信息:

http://php.net/manual/en/function.str-replace.php使用str_replace函数的

http://php.net/manual/en/function.array-map.php使用array_map

http://php.net/manual/en/functions.anonymous.php使用function(){}

https://stackoverflow.com/a/10304027/4916265更多function()use(){}

+0

ok取代了代码,但
未被替换为“\ n” –

+0

@banuprakash更新。请不要只复制和粘贴,提高我们给你的:-) – JustOnUnderMillions

+0

我在while循环中取代它 –

0

变化:

$dta=preg_replace("/<br>/",'\n',$dta); 

要:

array_walk($dta, function(&$val){ 
    $val = str_replace("<br>", "\r\n", $val); 
}); 

&牢记:

  • 对于\n使用双引号",而不是单引号'
  • 如果有新的生产线的结果字符串将在Windows中使用,更换\r\n,而不是仅仅\n
  • 没有必要为preg_replacestr_replace将完全适合
  • 作为$dta是一个数组,我们必须使用array_walk或数组中的循环。
+0

显示通知:数组到字符串转换 –

+0

$ dta =一个数组。你将不得不循环和更换。 –

+0

为它写代码 –