這個問題看起來很簡單也很容易。貌似換個行<br />不就可以了嘛,但是,真沒想象中的那麼簡單啊啊啊啊啊!!!
一、換行
老做法:基於THINKPHP ,就是從redis中將數組取出來,顯示在前臺,但是要換行。
後臺:
- function tags_keywords(){
- $this->showheadertitle('tags_keywords');
- $redis = D("Redis");
- $keywords_list = $redis->sMembers("Budou:segmentation:sourse"); //獲取數據,在前臺textarea中換行顯示。
- $this->assign('keywords_list',$keywords_list);
- $this->display();
- }
前臺:
- <textarea name="keywords_area" style="overflow: auto; display: inline; width: 884px; height: 298px;" rows="4" cols="170">
- <volist name='keywords_list' id='key'>
- {$key}\r\n //沒用
- </volist>
- </textarea>
最後發現不管是加\r\n 還是<br /> 都不管用。我瘋了。徹底。
原來,這個\r\n要加到php代碼中。前臺只需要讀就可以了。擦。
再來:
- function tags_keywords(){
- $this->showheadertitle('tags_keywords');
- $redis = D("Redis");
- $keywords_list = $redis->sMembers("Budou:segmentation:sourse");
- $textarea = "";
- foreach($keywords_list as $value){
- $textarea.= $value."\n";
- }
- $this->assign('keywords_list',$textarea);
- $this->display();
- }
- <textarea name="keywords_area" style="overflow: auto; display: inline; width: 884px; height: 298px;" rows="4" cols="170">{$keywords_list}</textarea>
直接這樣就好了嘛。還有一點<textarea>內容</textarea>。裏面的內容最後在一行寫,不然,在頁面顯示會有空格。
二、PHP獲取texteara 中換行的內容
在前臺texteara中換號行之後,提交,PHP通過$_POST['texterea'] 獲取字符串後,是要經過處理的,不然獲取到的就是一整個字符串。
- function modify_keywords_list(){
- $keywords_post = $_POST['keywords_area'];
- $keywords_post = nl2br($_POST['keywords_area']); //將換行換成 <br / >
- $keywords_post = explode("<br />",$keywords_post); // 然後再用<br />作爲分隔符,變成數組。雖然變成數組了,還是value還是有空格的,要去空格
- foreach($keywords_post as $key){
- if(trim($key)){ //去空格。
- $redis->sadd("Budou:segmentation:sourse", trim($key)); //去空格。
- }
- }
- }
1. 先用PHP 函數: nl2br( ) ,將換行轉換成<br />
2.用PHP 函數: explode('<br />',$data) 分割成數組。
3. 再用PHP 函數:trim( );去掉每一個value的空格。
搞定。。。。
轉自:https://blog.csdn.net/think2me/article/details/8127528