这个问题看起来很简单也很容易。貌似换个行<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的空格。
搞定。。。。