www.webdeveloper.com
Results 1 to 4 of 4

Thread: Odd behavior adding strings.

  1. #1
    Join Date
    Aug 2012
    Posts
    15

    Odd behavior adding strings.

    I don't even know how to phrase this problem so I can search for it.

    What I am doing is searching a string array for a match and if found, I replace it. If not found, I add a new element to the array then save it all in a text file.

    The string that I use to replace or add to this array is a CSV string created from an array.

    The problem, the resulting string has a large number of non-printing characters in it. In Notepad they are not visible and in DreamWeaver they appear as hundreds of carriage returns that generally appear before the string. In addition often one <CR> will be inserted after the one integer element in the array. Also, additional text is appended to the string.

    Using print_r none of this nonsense shows up in the original array.

    Note, $dw_AuthorList is an array of CSV-formatted strings. Each string is supposed to look like this:

    "James","dw2012_031","Jon","sdf","414 K Street","530-297-XXXX","ert@qwe.woe","http://www.23j2.com","Yes","Yes","Yes","King 2011.mov","Junk.pdf","Yes","0","Nope. None. Never. Maybe 333353edz."

    Actually, this one had 64 <CR> before the first character and over 300 after it.

    The $dw_Data array contains strings except element 14 which is an integer.

    I'm not having any problems reading and writing other text files.

    Here's the code. Search/replace itself is working fine. The conversion to a CSV string is not.

    PHP Code:
    function UpdateAuthorList()
    {
        global 
    $dw_AuthorList$dw_Data;

        
    $j = -1;
        if (
    count($dw_AuthorList) == 0)
        {
            
    $j 0;
        }
        else
        {
            for (
    $i=0$i <= count($dw_AuthorList)-1$i++)
            {
                if (
    strpos($dw_AuthorList[$i],$dw_Data[0],0) == 1) { $j $i; }
            }
            if (
    $j == -1) { $j count($dw_AuthorList); }
        }

        
    // First try at a function
        // $dw_AuthorList[$j] = GetCSVStr2($dc_Data);

        // Second try at a function
        // $dw_AuthorList[$j] = GetCSVStr($dc_Data);

        // Give up and do the conversion locally.
        
    $CSV '"'.$dw_Data[0];
        for (
    $i=1$i <= count($dw_Data)-1$i++)
        {
            
    $X = (string) $dw_Data[$i];
            
    $CSV $CSV.'","'.$X;
        }
        
    $dw_AuthorList[$j] = $CSV.'"';
    }

    function 
    GetCSVStr($S)
    {
        
    $CSV '"'.$S[0];
        for (
    $i=1$i <= count($S)-1$i++)
        {
            
    $X = (string) $S[$i];
            
    $CSV $CSV.'","'.$X;
        }
        
    $CSV $CSV.'"';
        
    $S='';
        return 
    $CSV;
    }

    function 
    GetCSVStr2($S)
    {
        
    $S str_replace('"','""',$S);
        
    $CSV "\"".implode("\",\"",$S)."\"";
        return 
    $CSV;
    }

    function 
    WriteAuthorListFile()
    {
        global 
    $dw_AuthorList;
        
        
    $Fn "XXXXX";
        
    $file fopen($Fn,"w");
        for (
    $i 0$i<= count($dw_AuthorList)-1$i++)
        {
            
    fwrite($file,$dw_AuthorList[$i]."\n");
        }
        
    fclose($file);

    Thanks again for taking a look.
    Mike

  2. #2
    Join Date
    Oct 2009
    Posts
    658
    I always recommend put csv which is native to php
    Good Luck

    Santos Systems

  3. #3
    Join Date
    Jan 2009
    Posts
    3,346
    Might also want to trim() your strings...

  4. #4
    Join Date
    Aug 2012
    Posts
    15
    Thanks. trim() helped.

    fputcsv() looked useful but I gave up trying to get it to write to separate lines in the file. I'm sure I was close to solving it but decided to move on.

    There were still problems and I solved that my making every element on the array a string. That took care of the last problem.

    Now I need to figure out how to upload files, hopefully with a progress bar, and I expect php won't be very helpful here.

    I'm almost done here. For now.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles