2010-07-25 110 views
1

我試圖在全名後面顯示撇號's,例如Samuel L. Jackson’s,但如果省略姓或中間名's不能正確顯示,例如Samuel ’s有人可以幫我解決這個問題?PHP編碼問題

謝謝

這裏是PHP代碼。

if(!empty($first_name) || !empty($middle_name) || !empty($last_name)) { 
    echo = $first_name . ' ' . $middle_name . ' ' . $last_name . ' \'s'; 
} 

回答

5
$text = array(); 
if(!empty($first_name)) { 
    $text[] = $first_name; 
} 
if(!empty($middle_name)) { 
    $text[] = $middle_name; 
} 
if(!empty($last_name)) { 
    $text[] = $last_name; 
} 

if(count($text) > 0) { 
    echo implode(' ', $text).'\'s'; 
} 
1
echo trim($first_name . ' ' . $middle_name . ' ' . $last_name). ' \'s'; 

應該做的伎倆?

還有一個問題:如果你有名字和姓氏,中間會有兩個空格......在某個點上會有問題嗎?

+0

如果沒有中間名,那麼就會有名字和姓氏 – marvin 2010-07-25 12:23:58

+0

@marvin HTML之間的兩個空格將更正這個問題止跌」除非有更好的方法嗎? – meta 2010-07-25 12:24:33

0
echo trim($first_name . ' ' . $middle_name . ' ' . $last_name) . '\s'; 

裝飾將擺脫任何尾隨空格。

0

爲什麼使用單引號? 你可以簡單地使用「's」不需要轉義。

echo $first_name.(empty($middle_name) ? '' : $middle_name.' ').$last_name."'s"

替代

$names = array($first_name); 
if(!empty($middle_name)) 
    $names[] = $middle_name; 
$names[] = $last_name; 
echo implode(' ', $names)."'s"; 
0
$full_name = trim($first_name.' '.$middle_name); 

if(!empty($full_name) && !empty($last_name)){ 
    $full_name .=' '.$last_name."'s"; 
    echo $full_name; 
} 
+0

$ full_name不能爲空,因爲$ first_name和$ last_name不能爲空。 – 2010-07-25 12:39:24

+0

現在編輯:) – Sadat 2010-07-25 14:47:31

0
$a = "" 
if (!empty($first_name) 
    $a .= $first_name . " " 
if (!empty($middle_name) 
    $a .= $middle_name . " " 
if (!empty($last_name) 
    $a .= $last_name . " 's" 

這應該做的伎倆。

0
echo 
    (empty($first_name) ? '' : $first_name) . 
    (empty($middle_name) ? '' : ' ' . $middle_name) . 
    (empty($last_name) ? '' : ' ' . $last_name) . "'s"; 

如果這些變量將始終被設置:

echo str_replace(
    ' ', 
    ' ', 
    $first_name . ' ' . 
    $middle_name . ' ' . 
    $last_name . "'s"); 

要顯示在HTML適當的單引號,所述'’,其中顯示作爲’替換。

0

可能

echo htmlspecialchars($full_name, ENT_QUOTES); 

就能解決問題