2009-03-22 4 views
3

Il s'agit davantage d'une question d'exécution PHP sous-jacente.Définition de Substr à une longueur supérieure à la longueur de la chaîne

Quels sont les positifs ou négatifs aux deux méthodes suivantes pour limiter la taille de la chaîne?

function max_length($string, $length) { 
    return (strlen($string) > $length)?substr($string, 0, $length):$string; 
} 

substr($string, 0, $length); 

Le cas, je suis inquiet lorsque la chaîne est est inférieure à la longueur demandée. Peut-il provoquer des erreurs de dépassement de tampon? Espace supplémentaire? Des caractères répétés?

La seule chose que je sais est que, en termes de vitesse, substr est au moins 2x plus rapide que la fonction personnalisée fournie.

Répondre

3

Comme vous pouvez le voir dans http://us2.php.net/substr

 
If length is given and is positive, the string returned will contain 
at most length characters beginning from start (depending on the 
length of string). 

Cela signifie que vous n'aurez pas de caractères supplémentaires, seulement ceux que vous demandez.

2

Non, rien à craindre. Si l'argument longueur spécifié est supérieur à la longueur de la chaîne - la chaîne entière, et rien d'autre - sera retournée. Il suffit donc de:

$maxString = substr($string, 0, $length); 
Questions connexes