Comment obtenir les 5 premiers caractères de la chaîne


Réponses:


549

Pour les chaînes à un octet (par exemple US-ASCII, famille ISO 8859, etc.) substret pour les chaînes à plusieurs octets (par exemple UTF-8, UTF-16, etc.), utilisez mb_substr:

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);

2
Merci, c'est pour ça que j'en avais besoin:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban

1
Vous n'avez vraiment besoin que de str_replace ('www.', '', $ Url); Pas besoin de vérifier s'il existe.
Doug Cassidy

8
@DougCassidy: et si $url = "www.subwww.myweirddomainwww.com"? Sans le chèque initial substr($url, 0, 4), le retour $urlest ruiné !!
Fr0zenFyr

46

Utilisation substr():

$result = substr($myStr, 0, 5);

substr("Häagen-Dazs", 0, 5) == "Häag"- Qu'est-ce que je fais mal?
user187291

12
@stereofrog: Vous utilisez probablement un codage de caractères multi-octets comme UTF-8. Dans ce cas, utilisez mb_substr.
Gumbo

20

Une façon alternative d'obtenir un seul personnage.

$str = 'abcdefghij';

echo $str{5};

7
C'est la bonne réponse à la mauvaise question. Voté.
mickmackusa

Parce qu'il faut plus que copier-coller?
Robert Pounder

REMARQUE: pour les jeux de caractères multi-octets tels que UTF-8, vous devez utiliser mb_substr(i, 1)à la place pour obtenir ile caractère. @RobertPounder - car il ne s'étend pas à l'obtention de plusieurs caractères.
ToolmakerSteve

1
@ToolmakerSteve, si vous le dites; $string = "Häagen-Dazs"; $stringFirstChars = function($amount, $string) { $i=0;$done=false;$return = '';while($done == false) {$return.=$string{$i};if($amount===$i)$done=true;$i++;}return $return;}; var_dump($stringFirstChars(5, $string)); (copiez-collez cela dans phptester.net ou nous)
Robert Pounder

Oui je sais. Je ne l'ai pas personnellement dévalorisé; Je viens de voir en quoi cela ne répond pas à la question. Ce que vous avez écrit - ce serait une réponse complète: montrer à un débutant comment en php on peut passer d'un caractère à plusieurs caractères. Ajout utile aux questions et réponses - merci.
ToolmakerSteve

15

Vous pouvez utiliser la substrfonction comme ceci:

echo substr($myStr, 0, 5);

Le deuxième argument de substrest à partir de quelle position vous voulez commencer et le troisième argument est le nombre de caractères que vous voulez retourner.


-4

Vous pouvez obtenir votre résultat en utilisant simplement substr () :

Syntaxe substr (chaîne, début, longueur)

Exemple

<?php
$myStr = "HelloWordl";
echo substr($myStr,0,5);
?>

Production :

 Hello

16
Ce message TRÈS tardif n'ajoute aucune valeur et gonfle simplement la page car tout ce qu'il dit a déjà été dit (des années plus tôt). Veuillez ne pas poster de réponse à moins que vous ayez quelque chose d'unique et de précieux à ajouter. A rejeté cette réponse pour décourager les messages inutiles et tardifs.
mickmackusa

Vous avez posté une réponse 7 ans plus tard? Sérieusement?
Varin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.