2010-07-25 9 views
1

J'essaie d'afficher l'apostrophe 's après le nom complet par exemple Samuel L. Jackson’s mais si le nom ou le deuxième prénom est omis le 's n'est pas affiché à droite par exemple Samuel ’s quelqu'un peut m'aider à corriger ce problème ?problème de codage PHP

Merci

Voici le code PHP.

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

Répondre

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'; 

devrait faire l'affaire?

Encore un problème: Si vous avez un prénom et un nom, il y aura deux espaces entre ... Est-ce que ça va être un problème à un moment donné?

+0

s'il n'y a pas de nom du milieu, alors il y aura deux espaces entre le prénom et le nom de famille – marvin

+0

@marvin HTML corrigera le problème n » t-il à moins qu'il y ait un meilleur moyen? – meta

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

couper éliminera tous les espaces de fin.

0

Pourquoi utilisez-vous Single Quote? Vous pouvez simplement utiliser "s" pas besoin d'échapper.

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

alternatif

$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 ne peut pas être vide car $ first_name et $ last_name ne peuvent pas être vides. –

+0

maintenant son édité :) – Sadat

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

Cela devrait faire l'affaire.

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

Si les variables seront toujours fixés:

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

Pour afficher une seule citation appropriée en HTML, remplacer le ' avec ’, qui affiche comme ’.

0

peut être

echo htmlspecialchars($full_name, ENT_QUOTES); 

va résoudre le problème