在 PHP 中创建字符串的首字母缩略词
Create an Acronym of a string in PHP
我想根据字符串的值创建字符串的首字母缩略词。例如,如果字符串中有空格,如“Whosebug Community Forum”,首字母缩略词应为“SCF”,但如果字符串中没有空格,则应采用单词的前 3 个字母,如“Whosebug”应为“STA” .
另一部分应该包括如果字符串只有 2 个字符长,它应该添加一个随机的字母数字字母,例如如果字符串是“IT”它应该添加它作为“ITA”
这是我目前所拥有的。尽管如果我去掉空格,我会在第二个 If.
处得到 SSTA
这个想法是,首字母缩略词应该只有 3 个字符,并且应该在后面的示例 STA001 和下一个首字母缩略词 SFC002 等处包含递增的数字。
$s = 'Whosebug Community Forum';
if(preg_match_all('/\b(\w)/',strtoupper($s),$m)) {
$v = implode('',$m[1]);
echo $v;
}
if(!preg_match_all('/^\S.*\s.*\S$/',$s))
{
$v = strtoupper(substr($s,0,3));
echo $v;
}
如有任何帮助,我将不胜感激。谢谢
此代码首先使用相同的正则表达式来匹配每个单词的第一个字符,但随后会检查是否只找到了 1 个值。如果只有 1 个值,它使用整个字符串的前 3 个字符,否则只是内爆匹配的字母。
然后循环直到字符串长度为 3 个字符,每次添加一个随机字符(这允许 1 个字符的字符串)...
// Test Values
$s = 'Whosebug Community Forum';
$s = 'Whosebug Community';
$s = 'Whosebug';
$s = 'IT';
$s = 'I';
$s =strtoupper($s);
if(preg_match_all('/\b(\w)/', $s,$m)) {
if ( count($m[1]) === 1 ) {
$v = substr($s,0,3);
}
else {
$v = implode('',$m[1]);
}
}
else {
$v = '';
}
// Pad to 3 chars long.
while ( strlen($v) < 3 ) {
$v .= chr( ord("A") + rand(0,25) );
}
echo $v;
我想根据字符串的值创建字符串的首字母缩略词。例如,如果字符串中有空格,如“Whosebug Community Forum”,首字母缩略词应为“SCF”,但如果字符串中没有空格,则应采用单词的前 3 个字母,如“Whosebug”应为“STA” . 另一部分应该包括如果字符串只有 2 个字符长,它应该添加一个随机的字母数字字母,例如如果字符串是“IT”它应该添加它作为“ITA”
这是我目前所拥有的。尽管如果我去掉空格,我会在第二个 If.
处得到 SSTA这个想法是,首字母缩略词应该只有 3 个字符,并且应该在后面的示例 STA001 和下一个首字母缩略词 SFC002 等处包含递增的数字。
$s = 'Whosebug Community Forum';
if(preg_match_all('/\b(\w)/',strtoupper($s),$m)) {
$v = implode('',$m[1]);
echo $v;
}
if(!preg_match_all('/^\S.*\s.*\S$/',$s))
{
$v = strtoupper(substr($s,0,3));
echo $v;
}
如有任何帮助,我将不胜感激。谢谢
此代码首先使用相同的正则表达式来匹配每个单词的第一个字符,但随后会检查是否只找到了 1 个值。如果只有 1 个值,它使用整个字符串的前 3 个字符,否则只是内爆匹配的字母。
然后循环直到字符串长度为 3 个字符,每次添加一个随机字符(这允许 1 个字符的字符串)...
// Test Values
$s = 'Whosebug Community Forum';
$s = 'Whosebug Community';
$s = 'Whosebug';
$s = 'IT';
$s = 'I';
$s =strtoupper($s);
if(preg_match_all('/\b(\w)/', $s,$m)) {
if ( count($m[1]) === 1 ) {
$v = substr($s,0,3);
}
else {
$v = implode('',$m[1]);
}
}
else {
$v = '';
}
// Pad to 3 chars long.
while ( strlen($v) < 3 ) {
$v .= chr( ord("A") + rand(0,25) );
}
echo $v;