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
    Location
    Ohio
    Posts
    3,356
    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

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.10732 seconds
  • Memory Usage 2,892KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates