vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Couple o php questions (https://vborg.vbsupport.ru/showthread.php?t=33286)

Mincer 12-17-2001 03:02 PM

1) Is there an easy way to strip "'s from a text file using php?

It's not really feasible to do a s/r using a text editor as the files will be uploaded by a user and actioned directly rather than them passing through my control first.


2) How can I read a line at a time from a csv file before exploding it?

Say grab all characters into a string until \n and then process, then repeat in a loop until EOF

(I could do this in c++ - albeit a bit rusty now - but not really sure in php)

Any solutions greatly appreciated. :)

Matt.

--------------------------

If there's no way of easily reading the file a line at a time, is it a really bad idea to read a 1000+ line file in to an array in one go, and then exploding it into lines on \n, and then exploding each line at a time on the delimiter?

Lastly, if I do this, is this a good way of exploding a line at a time until EOF??

PHP Code:


$filename 
"file.txt";
$fp fopen($filename"r");
$file_contents fread($fpfilesize($filename));
fclose($fp);

$lines explode("\n"$file_contents); 

// loop for as long as $lines is not EOF

while($i <= sizeof($lines)) {        

    
// explode to get each field from line
    
$data explode(";"$lines[$i]);

    
// do some stuff to enter fields into DB

    // increment to continue looping
    
$i++;
    


I know that this will work ok for small files, but what would be a cut-off for 'small file' ??

Mark Hensler 12-17-2001 03:17 PM

1) try this:
PHP Code:

$text str_replace("'s"''$text); 

2) try this:
PHP Code:

$fd fopen ("file.txt""r");
// loop until EOF
while (!feof ($fd)) {
    
// read one line, up to 4KB
    
$buffer fgets($fd4096);
    
    
// explode to get each field from line
    
$data explode(";"$buffer);
    
    
// do some stuff to enter fields into DB
    
}
fclose ($fd); 

PHP DOCS: fgets(), fopen(), feof(), str_replace

Mincer 12-17-2001 03:37 PM

Thanks for the quick response. :)

The first question, I needed to replace the quotation char " with nothing. I guess the principal is the same though. Can I just use \" ??

PHP Code:

$text str_replace("\""''$text); 

EDIT: Yes it is. :D :D

-----------------

Secondly, just so I understand correctly... (always a bonus in my case ;))... fgets() reads one line up to endline?? (nix or win or both??)

Thanks. :)

Mincer 12-17-2001 03:59 PM

In case anyone cares....

I added:

PHP Code:

$fd fopen ("data.csv""r");

// loop until EOF
while (!feof ($fd)) {

    
// read one line, up to 4KB
    
$buffer fgets($fd4096);
    
    if (
$buffer == '') exit();  // 2 single quotes
    
else {
    
        
// explode to get each field from line
        
$data explode(";"$buffer);

        
$data str_replace("\""''$data);
    
        
// do some stuff to enter fields into DB
    
    
}
    
}

fclose ($fd); 

To stop it outputting garbage if there are empty lines at the end of the file. (in my case empty lines will not occur in the file up till then).

Mark Hensler 12-18-2001 03:20 AM

fgets() will read up to the number of bytes you specify, until it reads a EOL, or until EOF (which ever comes first). PHP is wise to the win/unix differences, and will watch for \n on unix and \r\n on win for EOL.


All times are GMT. The time now is 12:35 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02091 seconds
  • Memory Usage 1,741KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete