Domanda

Sto cercando un senso che posso estrarre la prima lettera di ogni parola da un campo di input e metterlo in una variabile.

Esempio: se il campo di input è "Stack-Overflow Questions Tags Users" poi l'uscita per la variabile dovrebbe essere qualcosa di simile "SOQTU"

È stato utile?

Soluzione

Qualcosa di simile:

$s = 'Stack-Overflow Questions Tags Users';

if(preg_match_all('/\b(\w)/',strtoupper($s),$m)) {
    $v = implode('',$m[1]); // $v is now SOQTU
}

Sto utilizzando la \b(\w) regex per abbinare il word-char immediatamente dopo il limite di parola .

EDIT: Per garantire tutto il vostro Acronimo char sono maiuscolo, è possibile utilizzare strtoupper come mostrato.

Altri suggerimenti

$s = 'Stack-Overflow Questions Tags Users';
echo preg_replace('/\b(\w)|./', '$1', $s);

lo stesso di codaddict di ma più breve

  • unicode sostegno, aggiungere il modificatore u a regex: preg_replace('...../u',
$initialism = preg_replace('/\b(\w)\w*\W*/', '\1', $string);

Giusto per essere completamente diverso:

$input = 'Stack-Overflow Questions Tags Users';

$acronym = implode('',array_diff_assoc(str_split(ucwords($input)),str_split(strtolower($input))));

echo $acronym;

Se sono separati da solo lo spazio e non altre cose. Ecco come si può fare:

function acronym($longname)
{
    $letters=array();
    $words=explode(' ', $longname);
    foreach($words as $word)
    {
        $word = (substr($word, 0, 1));
        array_push($letters, $word);
    }
    $shortname = strtoupper(implode($letters));
    return $shortname;
}

regolare l'espressione di corrispondenza come codaddict dice sopra, o str_word_count ( ) con 1 come il secondo parametro, che restituisce un array di parole trovate. Vedere gli esempi nel manuale. Poi si può ottenere la prima lettera di ogni parola come più ti piace, tra cui substr($word, 0, 1)

Il href="http://www.php.net/manual/en/function.str-word-count.php" rel="nofollow noreferrer"> str_word_count () funzione

$words = str_word_count ('Stack-Overflow Questions Tags Users', 1);
$result = "";
for ($i = 0; $i < count($words); ++$i)
  $result .= $words[$i][0];
function initialism($str, $as_space = array('-'))
{
    $str = str_replace($as_space, ' ', trim($str));
    $ret = '';
    foreach (explode(' ', $str) as $word) {
        $ret .= strtoupper($word[0]);
    }
    return $ret;
}

$phrase = 'Stack-Overflow Questions IT Tags Users Meta Example';
echo initialism($phrase);
// SOQITTUME
scroll top