<textarea name="email_message" id="email_message" cols="65" rows="15"><?php echo trim($entry['message']);?></textarea>
当我更新上面的html代码时,它使两个空行包含在消息中。
,
Dear Sir
(here is one now now)
How are you?
更新到数据库时保存如下:
Dear Sir
(here is two lines)
How are you?
每次保存都会增加空白行。
PHP代码在这里:function email_template_save()
{
$content = $this->input->post('email_message');
$this->load->model('templates');
$data['msg']=$this->templates->update_email_template($content,$this->session->userdata('username'));
$data['main_content']='message';
$this->load->view('template',$data);
}
function update_email_template($content,$username)
{
$data=array(
'message'=>$this->input->post('email_message'));
$this->db->where('username', $username);
$this->db->update('email_format', $data);
return 'Successfully Updated';
}
我知道这一切,这是最新版本的CI和Windows换行符的问题。
请看这个答案:PHP textarea节省额外的新行到MySQL DB
这是我正在使用的变通方法,输入类的扩展:
<?php defined('BASEPATH') OR exit('No direct script access.');
/**
* CI 2.0 (Reactor version) did something funny to newlines.
* Textareas would $_POST an extra newline, this is a patch for that "feature".
*
* @package Codeigniter
* @subpackage Input
*/
class MY_Input extends CI_Input {
public function __construct()
{
if (PHP_EOL == "'r'n")
{
$this->_standardize_newlines = FALSE;
}
parent::__construct();
}
}
/* end file */
这也与你的另一个问题有关:在windows和linux服务器中爆炸错误'r'n和'n
请看这里的解释:我什么时候使用PHP常量"PHP_EOL"?
是否有可能将空白表示为'r'n
,并且当您打印它们时,'r
和'n
分开?试运行<textarea name="email_message" id="email_message" cols="65" rows="15"><?php echo trim(str_replace("'r'n","'n",$entry['message']));?></textarea>
这是可能的,你是转义值两次,我最近有同样的问题,检查你是否正在转义的值在获得的帖子和保存的数据