On 12 April 2011 13:29, Eli Orr <eli....@logodial.com> wrote:
> Hi Richard,
>
> Thanks.
> I've already got a solution to simply use Notes++ and save the PHP script
> with Save As encoding set to ANSI (It was UTF-8 indeed that creates the 
> BOM...).
>
> Thanks again
>
> Eli
>
> -----Original Message-----
> From: Richard Quadling [mailto:rquadl...@gmail.com]
> Sent: Tuesday, April 12, 2011 2:59 PM
> To: Eli Orr
> Cc: php-general@lists.php.net
> Subject: Re: [PHP] Eliminatimg PHP UTF-8 BOM in a returned stream to a Mobile 
> App
>
> On 12 April 2011 12:50, Richard Quadling <rquadl...@gmail.com> wrote:
>> On 12 April 2011 11:59, Eli Orr <eli....@logodial.com> wrote:
>>>
>>> Hi Richard,
>>>
>>> Thanks.
>>> Indeed, that is the case - I've included a code that has UTF-8 string
>>> contants -so I guess the PHP parser set the UTF-8 mode to ON so that the 
>>> returned string to the client has the UTF-8 BOM.
>>>
>>> It is not a big issue as the mobile app guys aware of this and make the 
>>> proper 3 bytes offset.
>>> Anyhow I was looking for a service to control that behaviour.
>>>
>>>  Thanks
>>>
>>> Eli
>>>
>>> -----Original Message-----
>>> From: Richard Quadling [mailto:rquadl...@gmail.com]
>>> Sent: Tuesday, April 12, 2011 12:45 PM
>>> To: Eli Orr
>>> Cc: php-general@lists.php.net
>>> Subject: Re: [PHP] Eliminatimg PHP UTF-8 BOM in a returned stream to
>>> a Mobile App
>>>
>>> 2011/4/12 Eli Orr <eli....@logodial.com>:
>>>> Dear PHP Gurus,
>>>>
>>>> I would like to Eliminate the 3 UTF-8 BOM enforced on my returned BLOB:
>>>>
>>>> The PHP server adds  utf-8 BOM (UTF-8 Byte Order Mark  - in the
>>>> beginning of
>>>> UTF-8  files) which
>>>> consists of three bytes: EF BB BF.
>>>>
>>>> The Mobile App served by the server Does not need that. How can I
>>>> eliminate it??
>>>>
>>>> Thanks.
>>>>
>>>> UTF-8 Byte Order Mark – BOM:
>>>> http://unicode.org/faq/utf_bom.html#BOM
>>>>
>>>> Best Regards,
>>>>
>>>> Eli  Orr
>>>> CTO & Founder
>>>> Mimmage.com
>>>> My virtual vCard
>>>> LogoDial Ltd.
>>>> M:+972-54-7379604
>>>> O:+972-74-703-2034
>>>> F: +972-77-3379604
>>>>
>>>> Plaut 10, Rehovot, Israel
>>>> Email:   eli....@logodial.com
>>>> Skype:  eliorr.com
>>>>
>>>>
>>>> -----
>>>>
>>>>
>>>>
>>>> --
>>>> PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
>>>> http://www.php.net/unsub.php
>>>>
>>>>
>>>
>>> Can you show us the PHP script that DOES output the BOM?
>>>
>>> Normally, PHP doesn't do this automatically (AFAIK). The main reason being 
>>> is that it is often the case that the BOM appears in the source code file 
>>> before the <?php opening tag, so would block headers (session cookie for 
>>> example).
>>>
>>> If a BOM is being issued by PHP, it is being done programmatically, or is 
>>> being missed due to the initial source code file having the BOM set.
>>>
>>> See http://docs.php.net/manual/en/function.session-start.php#102431,
>>> http://docs.php.net/manual/en/function.header.php#95864, etc.
>>>
>>> Now. Having said all of that, you may find you are using some sort of 
>>> output buffering and that is setting the BOM after the headers are sent.
>>>
>>> But, as it stands, PHP will not be generating the BOM for you.
>>>
>>> --
>>> Richard Quadling
>>> Twitter : EE : Zend
>>> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
>>> http://www.php.net/unsub.php
>>>
>>>
>>>
>>
>> No. The parser does not _ADD_ the BOM.
>>
>> The bom already exists in your source code. Nothing to do with PHP.
>>
>> The file you included that has the UTF-8 constants has the BOM.
>>
>> You need to edit that file and remove the BOM. The actions you need to
>> take will depend upon your editor.
>>
>> --
>> Richard Quadling
>> Twitter : EE : Zend
>> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
>>
>
> To be a bit more specific...
>
> The BOM is the 3 bytes you correctly identified earlier.
>
> Most editors won't show these when you edit the files.
>
> But, for the sake of argument, let's just pretend they are visible and look 
> like ...
>
> #@&
>
> In the php script that contains some UTF-8 constants, the file would look 
> like ...
>
> #@&<php
> echo '₩'; // The Fullwidth Won sign.
> ?>
>
> As PHP will only actually parse the content between <?php and ?>, the #@& 
> string (the BOM) is simply sent straight through to the web server
> -> the client with no interruption.
>
> Now, if your code was ...
>
> #@&<php
> session_start();
> ?>
>
> you would see the headers already sent error message, as the BOM tells the 
> webserver that data is now being received and to send any headers it already 
> has.
>
> So when the session_start() wants to send the session cookie (which is done 
> as a HTTP Header), PHP already knows some content has gone (the
> BOM) and reports the error.
>
> To iterate, PHP is NOT generating the BOM. You already did that in your code. 
> Well, the editor did it for you.
>
> Ideally, you want to turn off the BOM in your editor.
>
> --
> Richard Quadling
> Twitter : EE : Zend
> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
>
> --
> PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: 
> http://www.php.net/unsub.php
>
>
>

Hmmm. You really want to save the code as UTF-8 without BOM.

What is the editor? The references for Notes++ I can find is for a
post-it notes app.






-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to