RE: [PHP] break up variable and put each element in an array
| From: | Fokkema, I.F.A.C. \(HKG\) | Date: | Tue, 08 Aug 2006 20:47:06 +0000 |
| Subject: | RE: [PHP] break up variable and put each element in an array | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-240342@lists.php.net to get a copy of this message | ||
>>> try this:
>>>
>>> $string = "3/01/2005 29/12/2005 2/01/2006 20/02/2006 28/12/2006
>>> 1/01/2007
>>> 15/02/2007";
>>> $array = explode(' ', $string);
>>> foreach ($array as $value) echo "Date: $value<br />";
>>
>> If the user separates the dates by an enter in the textarea, you need
>> to
>> explode on "\r\n". To be able to handle both, you need to use split()
>> or
>> preg_split().
>>
>>
>> When I use
>> $datelist=$_POST[datelist];
>> $string=explode('\r\n',$datelist);
>
> '\r\n' and "\r\n" are not anything alike...
>
> \r\n only have special meaning inside of ", not '
>
> If you want to cover all browser/OS combinations, you'd want to
> pre-treat the text area input like:
> $datelist = $_POST['datelist'];
> $datelist = str_replace("\r\n", "\r", $datelist);
> $datelist = str_replace("\r", "\n", $datelist);
>
> Now all the date are separated by "\n" and you can reliably use
> explode("\n", $datelist); on them.
Actually, I know that both Windows and Linux send a linebreak in a textarea as "\r\n", not
"\n". I assume it's all the same for all platforms, and that Mac would send
"\r\n", too.