Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #14484
| From | Matthew Carter <m@ahungry.com> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Purpose for a str_replace with an embedded print_r return |
| Date | 2014-11-05 22:35 -0500 |
| Organization | Ahungry (http://ahungry.com) |
| Message-ID | <87wq79xap0.fsf@ahungry.com> (permalink) |
| References | <bad4f2c1-102e-4115-94ea-c8f8efdaca0b@googlegroups.com> <m3deem$dhn$1@dont-email.me> <m3dgqc$vk3$1@dont-email.me> <8761etz7yv.fsf@ahungry.com> <m3e6lk$140$2@dont-email.me> |
Jerry Stuckle <jstucklex@attglobal.net> writes:
> On 11/5/2014 3:51 PM, Matthew Carter wrote:
>> Jerry Stuckle <jstucklex@attglobal.net> writes:
>>
>>> On 11/5/2014 10:07 AM, Denis McMahon wrote:
>>>> On Tue, 04 Nov 2014 06:20:24 -0800, Dave Patoch wrote:
>>>>
>>>>> I'm cleaning up a legacy code base and I've been trying to figure out
>>>>> what the functional difference (other then a few cpu ticks and a bit of
>>>>> memory) is between:
>>>>>
>>>>> foreach(
>>>>> explode("\n", str_replace("\r\n", "\n", print_r($message, true))) as
>>>>> $msg)
>>>>>
>>>>> and
>>>>>
>>>>> foreach(
>>>>> explode("\n", str_replace("\r\n", "\n", $message)) as $msg)
>>>>
>>>> I've not managed to find an edge case that is handled differently by the
>>>> two cases, tried feeding a mixture of single and multi line strings into
>>>> the explodes and used !== to check if the resulting arrays were different.
>>>>
>>>> #!/usr/bin/php
>>>> <?php
>>>>
>>>> $test = array(
>>>> "This is a single line string",
>>>> "This is a multi line string\nThis is line 2 of the string\nAnd here
>>>> is line 3",
>>>> "This is another multi line string\r\nThis is line 2 of the string\r
>>>> \nAnd here is line 3",
>>>> "This is a multi line string\nWith a blank line\n\nAnd here is line
>>>> 4",
>>>> "This is another multi line string\r\nWith a blank line\r\n\r\nAnd
>>>> here is line 4",
>>>> <<<EOT
>>>> Blah Blah Blah
>>>> Blah bloody blah
>>>> Pointy eared blah
>>>> EOT
>>>> );
>>>>
>>>> foreach ($test as $t) {
>>>> $r1 = explode("\n", str_replace("\r\n", "\n", print_r($t, true)));
>>>> $r2 = explode("\n", str_replace("\r\n", "\n", $t));
>>>> if ($r1 !== $r2) echo "\n\n{$t}\n\n differs\n";
>>>> }
>>>>
>>>> echo "Tests complete\n";
>>>>
>>>> ?>
>>>>
>>>
>>> Denis,
>>>
>>> You won't. The code generates the same result in both cases because
>>> you're dealing with string.
>>>
>>> Now if it were a complex type such as an array or object, the results
>>> would differ. But the OP already indicated it's a string, so the extra
>>> call to print_r() is superfluous (and confusing).
>>
>> I added to the other thread, but try your tests with:
>>
>> chr(980);
>>
>> Under the UTF-8 character set (assuming this is coming from a
>> browser/over mod_php).
>>
>
> Yes, and as I said in the other post. This is not a difference in the
> output from the code - it is how it is interpreted by the browser.
Jerry - this is not a case of browser encoding it differently - put the
snippet in a page and do a curl call via CLI to the page.
You will see it is simply never sent in the page source (although the
invalid character is shown in the page render/source itself as the black
diamond with a question in the plain "echo" occurence, it is omitted
entirely when done through print_r (no black diamond or any character of
any sort is sent).
--
Matthew Carter (m@ahungry.com)
http://ahungry.com
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Purpose for a str_replace with an embedded print_r return Dave Patoch <earthlydilemma@gmail.com> - 2014-11-04 06:20 -0800
Re: Purpose for a str_replace with an embedded print_r return "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-04 16:08 +0100
Re: Purpose for a str_replace with an embedded print_r return Dave Patoch <earthlydilemma@gmail.com> - 2014-11-04 07:27 -0800
Re: Purpose for a str_replace with an embedded print_r return Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-04 16:58 +0100
Re: Purpose for a str_replace with an embedded print_r return "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-04 18:58 +0100
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-04 13:54 -0500
Re: Purpose for a str_replace with an embedded print_r return Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-05 14:27 +0100
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 08:46 -0500
Re: Purpose for a str_replace with an embedded print_r return Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-05 15:32 +0100
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 10:44 -0500
Re: Purpose for a str_replace with an embedded print_r return Matthew Carter <m@ahungry.com> - 2014-11-05 15:50 -0500
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 16:59 -0500
Re: Purpose for a str_replace with an embedded print_r return "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-05 23:56 +0100
Re: Purpose for a str_replace with an embedded print_r return Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-06 04:30 +0100
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 22:53 -0500
Re: Purpose for a str_replace with an embedded print_r return Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-05 15:07 +0000
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 10:47 -0500
Re: Purpose for a str_replace with an embedded print_r return Matthew Carter <m@ahungry.com> - 2014-11-05 15:51 -0500
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 17:00 -0500
Re: Purpose for a str_replace with an embedded print_r return Matthew Carter <m@ahungry.com> - 2014-11-05 22:35 -0500
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 22:55 -0500
Re: Purpose for a str_replace with an embedded print_r return Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-06 04:26 +0000
Re: Purpose for a str_replace with an embedded print_r return Matthew Carter <m@ahungry.com> - 2014-11-06 00:09 -0500
Re: Purpose for a str_replace with an embedded print_r return Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-06 23:59 +0000
Re: Purpose for a str_replace with an embedded print_r return "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-06 18:43 +0100
Re: Purpose for a str_replace with an embedded print_r return Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-06 02:39 +0000
Re: Purpose for a str_replace with an embedded print_r return Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-06 02:44 +0000
Re: Purpose for a str_replace with an embedded print_r return Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 22:56 -0500
csiph-web