Maison > développement back-end > Problème PHP > Convertir la chaîne php en tableau basé sur une nouvelle ligne

Convertir la chaîne php en tableau basé sur une nouvelle ligne

PHPz
Libérer: 2023-05-05 22:14:09
original
1207 Les gens l'ont consulté

PHP est un langage de programmation largement utilisé, notamment dans le domaine du développement web. En PHP, nous devons souvent traiter des chaînes. Un besoin courant est de convertir une longue chaîne contenant des nouvelles lignes au format tableau.

Dans cet article, nous présenterons comment utiliser PHP pour convertir une chaîne contenant des nouvelles lignes en tableau, et montrerons quelques conseils et méthodes utiles dans le processus.

Nouvelle ligne de chaîne

Tout d'abord, examinons comment les nouvelles lignes apparaissent dans les chaînes. Dans les systèmes Unix/Linux, le caractère de nouvelle ligne à la fin de la ligne est un caractère n ; dans les systèmes Windows, le caractère de nouvelle ligne à la fin de la ligne est un caractère rn. personnage. Lorsque nous éditons ou lisons des fichiers texte, nous rencontrons ces différentes nouvelles lignes de fin de ligne. Par exemple, la chaîne suivante contient plusieurs instances de différents retours à la ligne de fin de ligne : n字符;在 Windows 系统中,行末的换行符是一个rn字符。当我们在编辑或读取文本文件时,就会遇到这些不同的行末换行符。例如,下面的这个字符串就包含了多个不同行末换行符的实例:

Hello\nworld\r\ndoing things
Copier après la connexion

将这个字符串转换为数组,我们需要考虑如何正确地切分这个字符串,并且如何处理其中的不同行末换行符。

利用 explode 函数

PHP 中的 explode() 函数可以通过指定分隔符来将一个字符串切分成数组。对于一个包含不同换行符的字符串,我们可以使用正则表达式来描述分隔符。

例如,下面的代码可以将一个包含rnn换行符的字符串转换为数组:

$str = "Hello\nworld\r\ndoing things";
$array = preg_split('/\r?\n/', $str);
print_r($array);
Copier après la connexion

输出结果如下:

Array
(
    [0] => Hello
    [1] => world
    [2] => doing things
)
Copier après la connexion
Copier après la connexion

在这个例子中,我们使用了正则表达式/r?n/,它可以匹配rnn两种行末换行符。因此,我们可以将整个字符串切分成了三个元素的数组。

值得注意的是,由于正则表达式本身也有一些特殊字符,因此在使用之前需要对其进行转义。在 PHP 中,我们可以使用 preg_quote() 函数来快速转义正则表达式中的特殊字符。

$delimiter = "/".preg_quote("\r\n")."|".preg_quote("\n")."/";
$array = preg_split($delimiter, $str);
Copier après la connexion

处理行末空格

除了行末换行符之外,我们还需要考虑到行末可能会有空格或其他不可见字符。这些空格并不会影响字符串的显示,但可能会对字符串转换成数组产生影响。例如,下面的字符串包含了换行符和一些空格:

Hello   \nworld \r\n doing things     
Copier après la connexion

对这个字符串进行切分,我们将得到一个包含了空字符串和空格的数组:

$array = preg_split('/\r?\n/', $str);
print_r($array);
Copier après la connexion

输出结果:

Array
(
    [0] => Hello   
    [1] => world 
    [2] =>  doing things     
)
Copier après la connexion

这并不是我们想要的结果。为了避免这个问题,我们需要在切分字符串之前清除行末的空格。可以通过 trim() 函数来删除字符串两端的空白字符。例如,下面的代码可以将行末空格去掉并将字符串转换为数组:

$array = preg_split('/\r?\n/', $str);
foreach ($array as $key => $line) {
    $array[$key] = trim($line);
}
print_r($array);
Copier après la connexion

输出结果:

Array
(
    [0] => Hello
    [1] => world
    [2] => doing things
)
Copier après la connexion
Copier après la connexion

结论

将包含换行符的字符串转换为数组是 PHP 中常见的处理需求。在本文中,我们介绍了如何使用 preg_split()rrreee

Pour convertir cette chaîne en tableau, nous devons réfléchir à la manière de diviser correctement la chaîne et à la manière de gérer les différents retours à la ligne de fin de ligne. dans ce symbole. 🎜🎜Utilisez la fonction exploser🎜🎜La fonction explode() en PHP peut diviser une chaîne en un tableau en spécifiant le délimiteur. Pour une chaîne contenant différents caractères de nouvelle ligne, nous pouvons utiliser des expressions régulières pour décrire le délimiteur. 🎜🎜Par exemple, le code suivant peut convertir une chaîne contenant rn et n nouvelles lignes en un tableau : 🎜rrreee🎜Le résultat est le suivant : 🎜rrreee🎜Dans cet exemple , nous utilisons l'expression régulière /r?n/, qui peut correspondre à deux caractères de fin de ligne, rn et n. Par conséquent, nous pouvons diviser la chaîne entière en un tableau de trois éléments. 🎜🎜Il convient de noter que, puisque l'expression régulière elle-même comporte également des caractères spéciaux, ils doivent être échappés avant utilisation. En PHP, nous pouvons utiliser la fonction preg_quote() pour échapper rapidement les caractères spéciaux dans les expressions régulières. 🎜rrreee🎜Gestion des espaces en fin de ligne🎜🎜En plus de la nouvelle ligne en fin de ligne, nous devons également prendre en compte le fait qu'il peut y avoir des espaces ou d'autres caractères invisibles en fin de ligne. Ces espaces n'affecteront pas l'affichage de la chaîne, mais peuvent affecter la conversion de la chaîne en tableau. Par exemple, la chaîne suivante contient des nouvelles lignes et des espaces : 🎜rrreee🎜 Divisez cette chaîne, nous obtiendrons un tableau contenant des chaînes vides et des espaces : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Ceci ne donne pas le résultat souhaité. Pour éviter ce problème, nous devons supprimer les espaces à la fin de la ligne avant de diviser la chaîne. Vous pouvez utiliser la fonction trim() pour supprimer les caractères d'espacement aux deux extrémités d'une chaîne. Par exemple, le code suivant peut supprimer les espaces à la fin de la ligne et convertir la chaîne en tableau : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Conclusion🎜🎜La conversion d'une chaîne contenant des nouvelles lignes en tableau est un besoin de traitement courant dans PHP. Dans cet article, nous avons présenté comment utiliser la fonction preg_split() et les expressions régulières pour diviser des chaînes, et vous avons montré comment gérer les espaces de fin. J'espère que ces conseils vous seront utiles dans vos efforts de programmation PHP. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal