You are here: Re: my Script Dies during fgetcsv « All PHP « IT news, forums, messages
Re: my Script Dies during fgetcsv

Posted by Jim Michaels on 02/28/06 02:49

"MS" <nospamplaesegr8t_ukuk@yahoo.co.uk> wrote in message
news:dtskqn$7g7$1@nwrdmz02.dmz.ncs.ea.ibs-infra.bt.com...
> It is part of a contribution i am writing (trying to write) for
> oscommerce.
> Unfortunately I can not give you a page as it is all set up in a protected
> area.
>
> The Full function is....(with the set_time_limit removed)
>
> function datafeed_affwin($feed_url){
> $rowcount = 1;
> // open the csv for reading
> //$handle = fopen(HTTP_CATALOG_SERVER . DIR_WS_CATALOG . "feeds/" .
> DATAFEED_FILENAME_AW , "r");
> $handle = fopen($feed_url , "r");
>
> while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {

the example in the manual uses 1000 rather than 2000. I have seen
truncation problems in various posts when a file buffer gets too large, but
usually that's when the buffer was >=8K. odd. try 1000 and see if it does
anything for you. just how much memory does your data take up (what's your
filesize)?


> if((DATAFEED_SKIP_AW == 'true') && ($rowcount == 1)){
> //Skip first Row
> }else{
> // make sure all required fields are set.
> $continue = true;
> $id = array('0','6','7','8','9','10','11','14','15','16','17');
> foreach($id as $fieldid){
> if(!isset($data[$fieldid])) $continue = false;
> }
> if($continue === true){
> // Work out Price with 2 decimal places
> // as some of affwin prices show as GBP13.5
> $decpos = strrpos($data[16],'.');
> if($decpos === false){
> $displayprice = $data[16] . ".00";
> }elseif(strlen($data[16])-$decpos == 1){
> $displayprice = $data[16] . "00";
> }elseif(strlen($data[16])-$decpos == 2){
> $displayprice = $data[16] . "0";
> }else{
> $displayprice = $data[16];
> }
>
> $insert_sql_data2 = array('df_affiliate_company' => 'Affiliate Window',
> 'df_advertiser' => $data[0],
> 'df_product_name' => $data[6],
> 'df_manufacturer_name' => $data[7],
> 'df_promotional_text' => $data[8],
> 'df_product_description' => $data[9],
> 'df_deep_link' => $data[10],
> 'df_image_url' => $data[11],
> 'df_image_thumb' => '',
> 'df_expires' => $data[14],
> 'df_currency' => $data[15],
> 'df_display_price' => $displayprice,
> 'df_search_price' => $data[17]);
> tep_db_perform(TABLE_DATAFEED, $insert_sql_data2);
> }
> }
> $rowcount++;
> }
> fclose($handle);
> }
> // End
>
> As I say.. This function is repeated multiple times....
>
> if(DATAFEED_ACTIVE_AW == 'true') {
> $merchant = explode("," , DATAFEED_AW_MERCHANTS);
> foreach($merchant as $merchid){
>
> datafeed_affwin('http://products.affiliatewindow.com/csvproductoutput.php?mi
> d='. $merchid . '&user=' . DATAFEED_AW_USERID . '&password=' .
> DATAFEED_AW_PASSWORD . '&nozip=1'); // Affiliate Window datafeed
> }
> }
>
> --
> ----------------------------------------------------------------------------
> http://www.myclubweb.co.uk - The Home of Club Websites
> ----------------------------------------------------------------------------
>
>
> "DXTrim" <dXtrim@nospam.no> wrote in message
> news:44008e5a$0$13890$ba620e4c@news.skynet.be...
>> Hi MS,
>>
>> Please show me a page with the error and post the full code so we are
>> able
>> to better help you.
>>
>> Cheers,
>>
>> DXTrim
>>
>>
>> "MS" <nospamplaesegr8t_ukuk@yahoo.co.uk> wrote in message
>> news:dtnb81$do9$1@nwrdmz03.dmz.ncs.ea.ibs-infra.bt.com...
>> >
>> > > Put the time limit only on top of the script and take it outside the
>> loop.
>> > > If that does not help, something is causing the time out, but it is
>> > dificult
>> > > to say without seeing the code and the information is getting
> retrieved.
>> >
>> > I have moved the set_time_limit to the top of the function, also moved
> it
>> to
>> > the top of the calling scripts, I have also put the line in every
> calling
>> > script and any combination in between, but unfortunately the script is
>> > stopping around the usual place.
>> >
>> > Im at a loss. I thought it maybe a bad record, I was reading but it
>> passes
>> > this point if I reorder the URLs being read, but the script again falls
>> over
>> > at around the 12000 records.
>> >
>> > Any ideas about how to get a miracle?
>> >
>> > Alex
>> >
>> >
>>
>>
>
>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация