Comment puis-je diviser uniquement sur la première correspondance? p> Exemple: p> preg_match () code> donne une correspondance.
Preg_Match_All () CODE> retourne tous les matchs.
Preg_split () Code> retourne tous les scissions.
array(
0 => 'first piece',
1 => 'the rest of the string
without any further splits'
)
4 Réponses :
Définissez simplement $ limiter à J'ai testé et ça fonctionne bien. P> L'argument limite: P> Si spécifié, seules les sous-chaînes jusqu'à la limite sont renvoyées avec le reste de la chaîne placée dans la dernière sous-chaîne. Une limite de -1, 0 ou null signifie "Aucune limite" et, comme c'est standard sur PHP, vous pouvez utiliser NULL pour passer au paramètre Flags. Em> p>
blockQuote> p> 2 code> pour 2 parties du tableau. Merci à @benjames de mentionner:
Ajoutez simplement le drapeau de la limite à partir du manuel p> Si spécifié, alors seulement sous-chaînes
Limiter sont retournés avec le reste
de la chaîne étant placée dans le dernier
Substrage. P>
blockQuote> p>
Vous ne pouvez pas, parce que ça sous-chaîne.
Mauris: Le sens de votre commentaire n'est pas clair, veuillez expliquer
Je n'ai pas de serveur pour tester cela. Essayez:
preg_split("~\n~",$string,1);
Il sous-chaînes, vous ne pouvez pas utiliser le drapeau $ limite.
Une limite de 1 ne divisera pas du tout la chaîne.
@Ben: Je pourrais évidemment avoir tort, mais lors de l'application du manuel à Albus 'demandé, et en supposant une limite d'une, elle se lirait comme indiqué: "Si spécifié, seules les soustractions jusqu'à 1 sont renvoyées avec le reste de la chaîne étant placé dans la dernière sous-chaîne. " Pour moi, cela implique que peu importe la limite que vous spécifiez (par exemple, $ limite), il y aura toujours une sous-chaîne résultante avec une valeur de $ limite + 1 qui contient le reste du contenu.
Basé sur la réponse acceptée de RMCLIDED, je réussis la défaite sur celle-ci. Même "RTFM" ne fonctionne pas avec moi, car je comprends mal comprendre :-)
Il existe une bonne quantité de nuance à une tâche aussi simple. Différentes techniques peuvent échouer ou offrir des résultats asymétriques dans des scénarios de frange. Il est important de comprendre la qualité de la chaîne d'entrée et de votre sortie souhaitée pour les étuis de franges lors de la décision d'une technique.
La longue histoire courte, j'utiliserais probablement couper () code> pour assainir tout Personnages d'espaces de pointe ou de traînant. J'utiliserais
preg_split () code> avec
\ r code> dans le motif pour correspondre systématiquement à différentes séquences de nouvelles lignes dans différents environnements. Un quantificateur de
+ code> (un ou plusieurs) fournira une stabilité supplémentaire au cas où il existe des caractères de nouvelle ligne consécutifs. P>
var_export(
preg_split('~\R+~', trim($string), 2)
);
Si vous faites simplement utiliser \ N pour se diviser dans un tableau, vous pouvez utiliser exploser. C'est légèrement plus rapide que Preg_split.