我讀http://github.github.com/github-flavored-markdown/如何在PHP Markdown中將單行換行視爲真正的換行符?
我想實現的是「換行修改」,在PHP降價:
我能想到的最好的是:
$my_html = Markdown($my_text);
$my_html = preg_replace("/\n{1}/", "<br/>", $my_html);
但這運行速度非常不可預料的。
我讀http://github.github.com/github-flavored-markdown/如何在PHP Markdown中將單行換行視爲真正的換行符?
我想實現的是「換行修改」,在PHP降價:
我能想到的最好的是:
$my_html = Markdown($my_text);
$my_html = preg_replace("/\n{1}/", "<br/>", $my_html);
但這運行速度非常不可預料的。
尋找在你的降價文件行:
function doHardBreaks($text) {
和改變它下面預浸模式:
return preg_replace_callback('/ {2,}\n/', array(&$this, '_doHardBreaks_callback'), $text);
到:
return preg_replace_callback('/ {2,}\n|\n{1}/', array(&$this, '_doHardBreaks_callback'), $text);
或者你可以只需擴展降級類,重新聲明'doHardB reaks'功能,變回成類似上面的代碼
的問候,艾哈邁德
PHP的nl2br功能不會削減它?
nl2br - 插入HTML行中的所有換行符之前中斷在一個字符串
http://php.net/manual/en/function.nl2br.php
如果您也想刪除所有換行符(nl2br插入< BR/>),你可以這樣做:
str_replace('\n', '', nl2br($my_html));
如果不是,請詳細說明您的解決方案如何失敗以及您想要解決的問題。
nl2br或我的preg_replace傾向於添加太多換行符,例如。外部段落 – Lauri 2010-01-19 12:33:58
我想出了以下解決方案,模仿gfm換行符的大部分部分。它通過原始帖子中提到的頁面上的所有相關測試。請注意,下面的代碼預處理降價並輸出風味降價。
正如你所運行的降價腳本
$text = preg_replace_callback("/^[\w\<][^\n]*\n+/msU",function($x){
$x = $x[0];
$x = preg_match("/\n{2}/",$x,$match)? $x: trim($x)." \r\n";
return $x;
},$text);
$my_html = Markdown($text);
之前,你的字符串只是運行此一個特設的腳本基於github flavored markdown
text.gsub!(/^[\w\<][^\n]*\n+/) do |x|
x =~ /\n{2}/ ? x : (x.strip!; x << " \n")
end
PS我不是最好的正則表達式,我不知道什麼編程語言github使用,所以我即興
可能重複的[如何從字符串中刪除換行符(無字符!)](http:// stackoverflow .com/questions/10757671/how-to-remove-line-breaks-no-characters-from-the-string) – kenorb 2015-03-03 00:29:16