Xữ lý chuỗi lưu trong MySQL

309 views
Skip to first unread message

nhakhtn

unread,
Nov 27, 2008, 10:30:01 PM11/27/08
to PHPVietnam
Mình cần xuất dữ liệu trong database ra CSV tuy nhiên bị dính cái
xuống hàng làm hư định dạng CSV. Ai có cách giải quyết chỉ mình với.
Cụ thể như sau:
trong database lưu một field dạng text (unicode) như sau

Hôm qua em đi chùa hương.<br />
Hoa cỏ còn mờ hơi sương.

Khi nhập liệu cái editor tự thêm vào <br /> và "xuống hàng", Hông biết
cái "xuống hàng" ở đâu ra (tất nhiên không thể bắt người dùng view
html source và xóa nó đi).
Mong các bạn chỉ mình cách xóa nó đi khi xuất ra file CSV, mình dùng
các hàng trim, str_replace rồi mà hông ăn thua.

Quang Nguyễn Đăng

unread,
Nov 27, 2008, 10:38:52 PM11/27/08
to phpvi...@googlegroups.com
bạn chú ý coi nó là \n hay <br/> nếu bạn không thích thì có thể replace nó truớc khi show ra csv thôi mà

2008/11/28 nhakhtn <nha...@gmail.com>



--
____________________________
Best Regard,

(Mr.) Nguyễn Đăng Quang
Website developer, Team Leader
0986991741

nhakhtn

unread,
Nov 27, 2008, 10:52:24 PM11/27/08
to PHPVietnam
Cảm ơn bạn, dữ liệu ở trên là trong field text của database.
Mình đã dùng các hàm sau để xữ lý:
function strip_breakline($text) {
$text = str_replace("<br>", " ", $text);
$text = str_replace("<br/>", " ", $text);
$text = str_replace("<br />", " ", $text);
$text = str_replace("<p>", " ", $text);
$text = str_replace("</p>", " ", $text);
$text = str_replace("\n", " ", $text);
$text = str_replace("\\n", " ", $text);
return $text;
}
Nhưng vẫn không được, chỉ xóa được các <br>...</p> mà thôi, còn "xuống
hàng" vẫn nằm đó và mình xuất ra file CSV thì nó vẫn xuống hàng làm hư
định dạng.

--
____________________________
Best Regard,

(Mr.) Nguyễn Đoàn Đức Nhã
Website developer
0909282426

Quang Nguyễn Đăng

unread,
Nov 27, 2008, 10:58:44 PM11/27/08
to phpvi...@googlegroups.com
bạn replace cái này '\n' thay cho chuoi rong chú ý là  '\n' chu ko phai "\n" chuc thanh cong

2008/11/28 nhakhtn <nha...@gmail.com>



--
____________________________
Best Regard,

Ngo Duc Lien

unread,
Nov 27, 2008, 11:03:23 PM11/27/08
to phpvi...@googlegroups.com

Bạn thử dùng preg_replace xem sao! 

$text = preg_replace( "{\n+}", '', $text );

nhakhtn

unread,
Nov 27, 2008, 11:06:18 PM11/27/08
to PHPVietnam
function strip_breakline($text) {
$text = str_replace('<br>', ' ', $text);
$text = str_replace('<br/>', ' ', $text);
$text = str_replace('<br />', ' ', $text);
$text = str_replace('<p>', ' ', $text);
$text = str_replace('</p>', ' ', $text);
$text = str_replace('\n', ' ', $text);
return $text;
}
Vẫn không chạy :(

nhakhtn

unread,
Nov 27, 2008, 11:09:41 PM11/27/08
to PHPVietnam
$text = str_replace('<br>', ' ', $text);
$text = str_replace('<br/>', ' ', $text);
$text = str_replace('<br />', ' ', $text);
$text = str_replace('<p>', ' ', $text);
$text = str_replace('</p>', ' ', $text);
$text = str_replace('\n', ' ', $text);
$text = preg_replace( "{\n+}", '', $text );

Tất cả đều không thể xóa "xuống hàng".

Thanks all.

Do Nam Khanh

unread,
Nov 27, 2008, 11:11:39 PM11/27/08
to phpvi...@googlegroups.com
Bạn phải để \n trong dấu nháy kép thì mới có hiệu lực => "\n"

Thử chạy đoạn này sẽ thấy:
$str1 = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\nMorbi ac magna quis velit rutrum iaculis.\nNam iaculis, nisl vitae condimentum sagittis';

$str2 = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\nMorbi ac magna quis velit rutrum iaculis.\nNam iaculis, nisl vitae condimentum sagittis";
echo nl2br($str1);
echo nl2br($str2);

Đoạn 1 sẽ không xuống dòng :)

2008/11/28 nhakhtn <nha...@gmail.com>



--
__________________________
Mobile: +84983391868
Website: http://donamkhanh.com
Blog: http://my.opera.com/namkhanh

nhakhtn

unread,
Nov 27, 2008, 11:22:39 PM11/27/08
to PHPVietnam
Cảm ơn bạn, mình làm được rồi.

On Nov 28, 11:11 am, "Do Nam Khanh" <donamkh...@gmail.com> wrote:
> Bạn phải để \n trong dấu nháy kép thì mới có hiệu lực => "\n"
>
> Thử chạy đoạn này sẽ thấy:
> $str1 = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\nMorbi ac
> magna quis velit rutrum iaculis.\nNam iaculis, nisl vitae condimentum
> sagittis';
>
> $str2 = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\nMorbi ac
> magna quis velit rutrum iaculis.\nNam iaculis, nisl vitae condimentum
> sagittis";
> echo nl2br($str1);
> echo nl2br($str2);
>
> Đoạn 1 sẽ không xuống dòng :)
>
> 2008/11/28 nhakhtn <nhak...@gmail.com>
Reply all
Reply to author
Forward
0 new messages