Maison  >  Questions et réponses  >  le corps du texte

Afficher uniquement les noms dans la même variable

<p>J'ai une variable en PHP : </p> <pre class="brush:php;toolbar:false;"><p><?php echo $this->userInfo->name;?></p></pre> <p>Cela affichera leur prénom et leur nom (c'est-à-dire Joe Bloggs)</p> <p>Je souhaite uniquement afficher le premier caractère de son prénom et de son nom (c'est-à-dire Joe B)</p> <p>Je peux afficher le premier caractère de leur nom et masquer le reste en procédant comme suit en CSS : </p> <pre class="brush:php;toolbar:false;">p { visibilité : cachée ; } p::première lettre { visibilité : visible ; }</pré> <p>Je pensais pouvoir utiliser une fonction en PHP, quelque chose comme ceci : </p> <pre class="brush:php;toolbar:false;">function abbreviateName($this->userInfo->name) { si($this->userInfo->name == "") retour ""; $tmp = exploser(" ", $this->userInfo->name, 2) si(compte($tmp)<=1) { return ucwords($tmp[0])."."; } autre { $fn = ucwords($tmp[0]); $ln = ucwords(substr($tmp[1],0,1); return $fn.". ".$ln."."; } }</pré> <p>Mais ça ne marche pas</p>
P粉899950720P粉899950720434 Il y a quelques jours586

répondre à tous(2)je répondrai

  • P粉642920522

    P粉6429205222023-09-06 00:55:37

    En supposant qu'il y a toujours un espace, vous pouvez passer du début de la chaîne à une sous-chaîne après l'index de l'espace.

    substr($this->userInfo->name, 0, strpos($this->userInfo->name, " ") + 2);
    

    répondre
    0
  • P粉680487967

    P粉6804879672023-09-06 00:32:08

    D'accord, j'ai donc trouvé une solution simple et agréable :

    [$first_name, $last_name] = explode(' ', $this->userInfo->name);
    
    echo  $first_name . " " . substr($last_name, 0, 1);

    On dirait que ça marche très bien !

    répondre
    0
  • Annulerrépondre