2014-06-18 3 views
1

나는 내 데이터베이스에 저장하고 나는 그것을 완벽하게 표시지고 nl2br를 사용하여 프론트 엔드에 그들을 표시하고 때 두 단락PHP에서 첫 번째 단락을 굵게 만드는 방법은 무엇입니까?

first paragraph 
second paragraph 

에 데이터베이스에 텍스트를 입력하고있다.

내 첫 번째 단락을 굵게 표시하고 두 번째 단락을 정상적으로 처리해야합니다.

nl2br 뒤에 <br> 태그의 위치를 ​​찾기 위해 strpos을 사용해 보았지만 첫 번째 단락을 잘라내는 데 성공하지 못했습니다.

실패한 코드가

echo strpos(nl2br($row['article']), "<br>"); 

입니다하지만 난 에디에서 올바른 대답을 얻었다

<br> 태그의 위치를 ​​받고 있지 않다, 그는 그것을 삭제하지만 난 여기

을 답을 갱신하고
$str='first paragraph 
     second paragraph'; 
foreach(explode("\n",) as $key => $val) { 
if($key == 0){ 
echo'<b>'; 
}  
echo $val; 
echo'<br>'; 
if($key == 0){ 
echo '</b>'; 
} 
} 
+5

하는 공동 되세요 드, 여행 할거야. –

+1

코드는 어디에 있습니까? 실패한 시도조차도? – JakeGould

+1

CSS를 사용하지 않는 이유는 무엇입니까? – j08691

답변

0

찾고있는 결과 유형에 nl2br을 사용하지 마십시오. preg_split과 함께 정규식 규칙을 사용하여 문자열을 배열로 분할 한 다음 배열의 첫 번째 항목에 대해 작업하십시오.

Array 
(
    [0] => first paragraph 
    [1] => second paragraph 
) 

그리고 HTML 현명한 일이 있었는지 보여 htmlentities를 사용하여 테스트 출력을 :

// Set the test data. 
$test_data = <<<EOT 
first paragraph 
second paragraph 
EOT; 

// Split the test data into an array of lines. 
$line_array = preg_split('/(\r?\n){1,2}/', $test_data); 

// Roll through the line array & act on the first line. 
$final_text = ''; 
foreach ($line_array as $line_key => $line_value) { 
    if ($line_key == 0) { 
    $line_value = "<b>" . $line_value . "</b>"; 
    } 
    $final_text .= $line_value . "<br />\n"; 
} 

// Dump the line array for debugging. 
echo '<pre>'; 
print_r($line_array); 
echo '</pre>'; 

// Echo the final text. 
echo '<pre>'; 
echo htmlentities($final_text); 
echo '</pre>'; 

die(); 

이 될 것이다 라인 어레이의 덤프의 출력 : 다음은 테스트 코드입니다

<b>first paragraph</b><br /> 
second paragraph<br /> 
0

시도 :

$first_line = explode(PHP_EOL, $str)[0]; 
$new_str = str_replace($first_line,'<b>'.$first_line.'</b>',nl2br($str)); 
관련 문제