Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #14780

Re: PHP CSV

From "M. Strobel" <sorry_no_mail_here@nowhere.dee>
Newsgroups comp.lang.php
Subject Re: PHP CSV
Date 2014-12-20 00:35 +0100
Message-ID <cfjr2iFok9qU1@mid.uni-berlin.de> (permalink)
References (8 earlier) <m702rq$1a9$1@dont-email.me> <191220140943102761%timstreater@greenbee.net> <m717q6$ka4$1@solani.org> <m71i0c$ht4$1@dont-email.me> <87y4q3wilr.fsf@ahungry.com>

Show all headers | View raw


On 19.12.2014 20:21, Matthew Carter wrote:
> Jerry Stuckle <jstucklex@attglobal.net> writes:
>
>> On 12/19/2014 8:05 AM, Christoph M. Becker wrote:
>>> Tim Streater wrote:
>>>
>>>> In article <m702rq$1a9$1@dont-email.me>, Jerry Stuckle
>>>> <jstucklex@attglobal.net> wrote:
>>>>
>>>>> On 12/18/2014 11:22 AM, Joydeep Chakrabarty wrote:
>>>>>
>>>>>> <?php
>>>>>>      $file = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'x.csv';
>>>>>>      echo $file . "<br />\n";
>>>>>>      $fp = fopen ($file, "r") or die("Unable to open file");
>>>>>>      fclose($fp);
>>>>>> ?>
>>>>>
>>>>> You should never use die() (or exit() on a production server.  It
>>>>> terminates processing of the script immediately, which produces invalid
>>>>> (x)html.  Plus it looks like crap to the user.
>>>
>>> While I absolutely agree that it is a very bad idea to terminate the
>>> script in the middle of the output, prohibiting die or exit in a
>>> production environment is too hard and fast a rule, IMO.  It's like
>>> forbidding return, unless as the last statement of a function.
>>>
>>
>> return does not create invalid output.  die() and exit() do.
>>
>> I have *never* found a need for either one in a properly constructed
>> script.
>>
>>>> I dunno why the OP doesn't read the documentation. What I do is:
>>>>
>>>>   $fp = fopen ($file, "r")
>>>>   if  ($fp===false)
>>>>        {
>>>>        // Perform error processing here, log the error in my log file
>>>>        // and notify the remote end appropriately
>>>>        exit ();
>>>>        }
>>>
>>> What I would do is something like:
>>>
>>>    read_the_file();
>>>    generate_output();
>>>
>>> IOW: I would separate the presentation code from the domain code.
>>>
>>
>> I don't think it's necessarily a good idea to do this.  If the functions
>> are only called one from one place, it upsets the flow of the script,
>> making the reader go back and forth to follow processing.  It also means
>> you have to read the entire script in before generating any output,
>> instead of completely processing the input line by line.
>>
>> I prefer something like:
>>
>>   $fp = fopen ($file, "r")
>>   if  ($fp) {
>>      // Read the file and process it
>>   }
>>   else {
>>     // Perform error processing here, log the error in my log file
>>     // and notify the remote end appropriately
>>   }
>
> Exceptions work pretty well (instead of many if/else blocks).  Then you
> can handle your output at the end if the process fails (and line by line
> if it doesn't).
>

I think so as well. In another language (ocaml) they use exceptions for end of file 
and other "regular" conditions, so one gets to understand that it is just another 
structure tool. Provided they are cheap (in Java they are not so cheap).

In PHP, for example when using PDO, it saves you the need to check every return code. 
But you should take care to capture the exception only at the level where you can 
decide if/how to continue.

/Str.

Back to comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 17:09 +0530
  Re: PHP CSV Markus Heinz <markus.heinz@uni-dortmund.de> - 2014-12-18 13:11 +0100
    Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-12-18 13:27 +0100
      Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 18:26 +0530
        Re: PHP CSV Markus Heinz <markus.heinz@uni-dortmund.de> - 2014-12-18 14:43 +0100
          Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2014-12-18 09:24 -0500
          Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 20:56 +0530
            Re: PHP CSV Markus Heinz <markus.heinz@uni-dortmund.de> - 2014-12-18 16:57 +0100
              Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-12-18 17:04 +0100
              Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 21:52 +0530
                Re: PHP CSV Markus Heinz <markus.heinz@uni-dortmund.de> - 2014-12-18 17:38 +0100
                Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 16:49 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2014-12-18 21:34 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2014-12-19 09:43 +0000
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-12-19 14:05 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2014-12-19 10:59 -0500
                Re: PHP CSV Matthew Carter <m@ahungry.com> - 2014-12-19 14:21 -0500
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2014-12-19 18:17 -0500
                Re: PHP CSV "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-12-20 00:35 +0100
                Re: PHP CSV Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-02-04 13:19 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 08:03 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2015-02-04 13:29 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 09:06 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2015-02-04 15:26 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 10:40 -0500
                Re: PHP CSV Paul Herber <paul@pherber.com> - 2015-02-04 16:11 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 11:23 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2015-02-04 17:08 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 12:48 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2015-02-04 17:05 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 12:49 -0500
                Re: PHP CSV Tim Streater <timstreater@greenbee.net> - 2015-02-04 18:14 +0000
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 13:37 -0500
                Re: PHP CSV Matthew Carter <m@ahungry.com> - 2015-02-04 15:23 -0500
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-04 21:54 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 16:32 -0500
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 16:31 -0500
                Re: PHP CSV Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-02-04 16:39 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 10:57 -0500
                Re: PHP CSV Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-02-04 18:07 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-04 12:55 -0500
                Re: PHP CSV Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-06 23:26 +0100
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 01:38 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-06 19:44 -0500
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 14:49 +0100
                Re: PHP CSV Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-07 14:28 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-06 19:42 -0500
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 04:33 +0100
                Re: PHP CSV Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-07 14:26 +0100
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 14:45 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-07 08:54 -0500
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 16:54 +0100
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-07 11:00 -0500
                Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-07 08:51 -0500
                Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-02-07 14:55 +0100
        Re: PHP CSV Olaf Schmitt <thesys@gmx.de> - 2014-12-19 01:16 +0100
        Re: PHP CSV Denis McMahon <denismfmcmahon@gmail.com> - 2014-12-19 02:14 +0000
    Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 18:13 +0530
      Re: PHP CSV Derek Turner <frderek@cesmail.net> - 2014-12-18 12:55 +0000
        Re: PHP CSV Joydeep Chakrabarty <chalao.adda@gmail.com> - 2014-12-18 18:33 +0530
          Re: PHP CSV Derek Turner <frderek@cesmail.net> - 2014-12-18 13:10 +0000
      Re: PHP CSV Jerry Stuckle <jstucklex@attglobal.net> - 2014-12-18 08:17 -0500
      Re: PHP CSV "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-12-18 15:16 +0100

csiph-web