When working with text in PHP, you may need to separate a string into lines. Traditionally, this has been done using the explode function with a newline character as the delimiter. However, this approach can lead to unexpected results if the input string contains variations in newline characters.
The provided code:
$skuList = explode('\n\r', $_POST['skuList']);
is meant to split the skuList input on both Windows-style (rn) and UNIX-style (n) newlines. However, this approach is not system-independent, and may fail on systems that use different newline characters.
To ensure system independence, consider using the PHP_EOL constant:
$skuList = explode(PHP_EOL, $_POST['skuList']);
PHP_EOL represents the current system's newline character, ensuring consistent behavior. Alternatively, you can use preg_split for finer control:
$skuList = preg_split('/\r\n|\r|\n/', $_POST['skuList']);
This regex matches all possible newline variations, ensuring comprehensive splitting.
Using system-independent constants makes your code portable, but it's important to note that issues may arise when moving data between systems with different newline conventions. To avoid this, parse data thoroughly before storage and remove any system-dependent elements.
The above is the detailed content of How Can I Reliably Split Strings into Lines in PHP, Handling Various Newline Characters?. For more information, please follow other related articles on the PHP Chinese website!