2012-09-13 16 views
0

好吧,我使用的是PHP編輯表單(以前的人建),其將數據提交到MSSQL數據庫,但是當信息被提交到數據庫中能正常工作並在稍後檢索到表單頁面(用於編輯)時,在文本的開頭處有一個<br>。如果字段以沒有插入<br><ul>開頭。我一直在想如何制止這一點。我嘗試過的一件事結束了刪除文本中的所有<br>,這使得格式化消失,我怎樣才能避免在頂部插入<br>,但在其他地方保留<br>?這裏是我的代碼:(我給你的一切行動的地方,我有這個問題的第一場出現的)表單提交的表單開始文本前增加了<br>

function fromhtml ($x) { 
    $x = preg_replace("/<p>/i","\n\n",$x); 
    //$x = preg_replace("/<br>/i","\n",$x); 
    $x = preg_replace("/<li>/i","\n<li>",$x); 

    return $x; 
} 

$PHP_SELF = $_SERVER['PHP_SELF']; 


$course_id = @$_GET["course"]; 

if ($course_id == "") { 

$sqlquery = "SELECT id, title, goals, outline, reference, deliverymode, updated2 = CONVERT(VARCHAR(19), updated, 120) 
FROM courses WHERE division_id = '$division_id' ORDER by id"; 


$result = mssql_query($sqlquery); 
$number = mssql_num_rows($result); 

print "<table border=1 id=\"content_table\"><tr><th>ID</th><th>Title</th><th>Status</th><th>Last modified</th></tr>\n"; 

$i = 0; 
while ($number > $i) { 

     $course_id = mssql_result($result,$i,"id"); 
    $reference = mssql_result($result,$i,"reference"); 
    $updated = mssql_result($result,$i,"updated2"); 

    print "<tr><td>"; 
    if ($reference == "") { 
      print "<a href=$PHP_SELF?division=$division_id&course=$course_id>$course_id</a>"; 
    } else { 
      print "$course_id"; 
    } 
    print "</td><td>"; 
     print mssql_result($result,$i,"title"); 
    print "</td><td>"; 
    if ($reference == "") { 
     if ((mssql_result($result,$i,"goals")=="") and (mssql_result($result,$i,"outline")=="")) { 
      print "<b>No syllabus, or incomplete</b></td>"; 
     } 
    } else { 
     print "Based on $reference"; 
    } 
    print "</td><td>$updated</td>\n"; 
     print "</tr>\n"; 
     $i++; 
} 

print "</table>"; 

    exit; 
} 

$sqlquery = "SELECT * FROM courses WHERE id = '$course_id'"; 

$result = mssql_query($sqlquery); 
$number = mssql_num_rows($result); 

if ($number == 0) { 
print "<html><body>"; 
print "No course with the ID \"$course_id\" exists in the course database."; 
print "</body></html>"; 
exit; 
} 

$i = 0; 

$description = fromhtml(mssql_result($result,$i,"description")); 
print "<html><head><title>DACC Course Syllabus - $course_id</title>"; 

print "<script language=\"JavaScript\" type=\"text/javascript\" src=\"/rte/richtext2.js\"></script>"; 
?> 

<script language="JavaScript" type="text/javascript"> 
<!--  
initRTE("/rte/images/", "/rte/", ""); 
//--> 

function submitForm() { 
    updateRTEs(); 
    document.edit-course.submit(); 
    return false; 
} 
</script> 
<?php 
print "</head><body>\n"; 

//Begin Form 
print "<form name=\"edit-course\" id=\"edit-form\" method=\"post\" action=\"write.php?course=$course_id\" onSubmit=\"return submitForm()\">\n"; 


print "<fieldset>"; 
print "<label for=\"description\">Course Description</label>"; 
$description=addslashes(preg_replace('`[\r\n]`','',$description)); 
    ?> 
    <script language="JavaScript" type="text/javascript"> 
<!-- 
    writeRichText('description', '<?php print $description; ?>', 200, 300, true, false); 
//--> 
</script> 
    <?php 

    print "</fieldset>"; 

回答

0

這是BR在串的非常非常年初然後用這個

$x = preg_replace("/^<br(\/|)>/i","\n",$x); 

的而不是註釋行

+0

Minimihi你是天才!非常感謝你,我一直在努力爭取好幾個月! – Inky1231

+0

哇!你讓我臉紅 – Minimihi

0

preg_replace有第四個參數,$limit。將其設置爲1會將preg_replace限制爲第一次出現。或者,您可以使用正則表達式^<br>。這隻會在字符串開始時替換<br>

編輯:對不起,我誤解了你的問題。使用$variable=preg_replace("/^<br>/i", "", $variable);去除第一個<br>