Autor Zpráva
shiny
Profil *
Ahojte, je mozne zrychlit a zjednodusit nizsie uvedenu funkciu ? Tato funkcia je plne funkcna, len sa pytam, ci vidite miesto na jej zrychlenie a sprehladnenie.
$vstup: lubovolny retazec
$znak: znak, ktory sa ma doplnit pred, alebo za $vstup
$umiestnenie: 1-doplname pred $vstup, 2-doplname za $vstup
$dlzka: dlzka celeho retazca. Ak dlzka $vstup je uz vacsia ako $dlzka, tak sa nedoplni nic

priklad: addChars("214", "0", 1, 8); vygeneruje: 00000214

function addChars($vstup, $znak, $umiestnenie, $dlzka)
{
	if(strlen($vstup) >= $dlzka)  // ak vstupny retazec je dlhsi ako pozadovana dlzka tak nerobime nic
	{
		return $vstup;
	}
	else
	{
		$pz = $dlzka-strlen($vstup);  // pocet znakov, ktory budeme doplnat
		$doplnok = "";

		for($i=0; $i<$pz; $i++)
		{
			$doplnok .= $znak[0];
		}

		switch($umiestnenie)
		{
			case '1':  // doplname znaky pred zaklad
				return ($doplnok.$vstup);
				break;
			case '2':  // doplname znaky za zaklad
				return ($vstup.$doplnok);
				break;
		}
	}
}
Majkl578
Profil
/**
 * @param string input string
 * @param string character to be added
 * @param int    1 - beginning | 2 - end
 * @param int    final length
 *
 */
function addChars($s, $ch, $pos, $len)
{
	return str_pad($s, $len, $ch, $len === 1 ? STR_PAD_RIGHT : STR_PAD_LEFT);
}

$x = 'foo';
echo addChars($x, '_', 1, 6); //___foo

co takhle jednoduse? ;)
shiny
Profil *
Hehe, diky, jednoduchsie to uz asi neide :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: