Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:61855 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16990 invoked from network); 28 Jul 2012 07:37:19 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Jul 2012 07:37:19 -0000 Authentication-Results: pb1.pair.com header.from=lester@lsces.co.uk; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=lester@lsces.co.uk; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain lsces.co.uk from 213.123.20.131 cause and error) X-PHP-List-Original-Sender: lester@lsces.co.uk X-Host-Fingerprint: 213.123.20.131 c2bthomr13.btconnect.com Received: from [213.123.20.131] ([213.123.20.131:24446] helo=mail.btconnect.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3E/A4-23870-DA693105 for ; Sat, 28 Jul 2012 03:37:18 -0400 Received: from host81-138-11-136.in-addr.btopenworld.com (EHLO _10.0.0.5_) ([81.138.11.136]) by c2bthomr13.btconnect.com with ESMTP id ILY38941; Sat, 28 Jul 2012 08:37:14 +0100 (BST) Message-ID: <501396A9.9080400@lsces.co.uk> Date: Sat, 28 Jul 2012 08:37:13 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120604 Firefox/13.0 SeaMonkey/2.10 MIME-Version: 1.0 To: PHP internals References: <5010138D.5050804@ajf.me> <501015B9.6050704@ajf.me> <501085FE.7070406@lerdorf.com> <501382B3.2090702@lerdorf.com> <50138DD1.1090009@lsces.co.uk> <5013903A.6030009@lerdorf.com> In-Reply-To: <5013903A.6030009@lerdorf.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mirapoint-IP-Reputation: reputation=Fair-1, source=Queried, refid=tid=0001.0A0B0302.501396A9.00C5, actions=tag X-Junkmail-Premium-Raw: score=7/50, refid=2.7.2:2012.7.28.63627:17:7.944, ip=81.138.11.136, rules=__MOZILLA_MSGID, __HAS_MSGID, __SANE_MSGID, __HAS_FROM, __USER_AGENT, __MIME_VERSION, __TO_MALFORMED_2, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __CT, __CT_TEXT_PLAIN, __CTE, __ANY_URI, __URI_NO_MAILTO, __URI_NO_WWW, __C230066_P3_5, __CP_URI_IN_BODY, BODY_ENDS_IN_URL, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_1600_1699, __MIME_TEXT_ONLY, RDNS_GENERIC_POOLED, HTML_00_01, HTML_00_10, BODY_SIZE_5000_LESS, RDNS_SUSP_GENERIC, RDNS_SUSP, BODY_SIZE_2000_LESS, BODY_SIZE_7000_LESS X-Junkmail-Status: score=10/50, host=c2bthomr13.btconnect.com X-Junkmail-Signature-Raw: score=unknown, refid=str=0001.0A0B0205.501396AA.0058:SCFSTAT14830815,ss=1,re=-4.000,fgs=0, ip=0.0.0.0, so=2011-07-25 19:15:43, dmn=2011-05-27 18:58:46, mode=multiengine X-Junkmail-IWF: false Subject: Re: [PHP-DEV] Re: Generators in PHP From: lester@lsces.co.uk (Lester Caine) Rasmus Lerdorf wrote: >>> I don't think this generator question is any different. We need to >>> >>explain generators in the simplest way possible. The simplest way to >>> >>explain generators is to not even worry about them being generators at >>> >>all. Simply say that functions can now return arrays one element at a >>> >>time using the new yield keyword. That's all. >> > >> >It's this 'concept' that I am having trouble seeing in the general >> >process that is required using PHP to generate web pages. At the end of >> >the day I have to generate the finished page or sub-page so I need all >> >the results anyway. > Sure, but that doesn't mean it has to all be in memory at the same time. > You can read lines from a large file line-by-line, process that line and > output the result before you move onto the next line. Exactly ... when uploading the NLPG csv files I process them line at a time and store to the database. I always have ... which is why I don't recognise the initial 'complaint' that justified adding this. These files can be 100Mb+ so there is no way one would process them by reading the whole lot in as the 'example' gave. You just call the function that processes the particular type of line which is based on the first two characters ... after reading the line. -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk