Toon posts:

Script output blijft hangen op server?

Pagina: 1
Acties:
  • 476 views

  • BLACKfm
  • Registratie: maart 2004
  • Laatst online: 22-09 21:50
Hallo,

Ik gebruik een script van het net om een textarea om te zetten naar een CSV bestand,
http://www.phpclasses.org...nt-to-the-CSV-format.html

(login voor download noodzakelijk).

Als ik dit script draai dan gaat dat in eerste instantie goed, als ik echter nogmaals een invoer opgeef dan wordt het bestand wel geupdate, maar de inhoud lijkt een soort spookinhoud te zijn.

Stel dat ik de eerste keer dat ik het script draai en als invoer "Dit is een stukje tekst als voorbeeld" opgeef dan krijg ik dat in een csv bestand op de server met die inhoud.
Vul ik het form (textarea) voor de 2e keer in met minder tekens, bijv. "Dit stuk is korter" dan zie ik in het csv bestand dat aangemaakt wordt "Dit is een stukje te". De zelfde tekst als eerst dus, maar dan met ongeveer het zelfde aantal tekens van de 2e tekst. Wat ik daarna ook invoer, het houd toch de eerste waarde vast.

Nu was ik gisteren ook al aan het stoeien met dit script, ik vraag me af of er op de server (shared hosting) niet ergens een cache ofzo is die de gegevens vasthoud.

Ook als ik het bestand op de server (csv) eerst verwijder en de browser opnieuw opstart blijft de oude tekst toch bewaard. Pas als ik het op een andere locatie zet (nieuwe map) dan is de eerste invoer wel nieuw, maar ook daarna herhaalt het zich.

En voor als je niet wilt registeren/inloggen op die site; dit zijn de 2 bestanden/scripts achter de downloadknop.

example.textarea2csv.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require_once('class.textarea2csv.php');
/*
 * 1) initiate the class passing the $_POST data
 * 2) optional: set a different divider than comma (default) with function set_divider(';') or set_divider(chr(9)); options are: ; and tab
 * 3) call the function save_data() without parameter to get the data returned OR call the function save_data('filename') with a parameter to save the data with the given filename
 */

if(isset($_POST['xls']) && trim($_POST['xls']) != ''){
        
    $csv = new textarea_2_csv($_POST);
    
    // possibility to set the divider to another format
    // $xls->set_divider(';');
    // $xls->set_divider(chr(9));

    // process data and save it with filename output
    $data = $csv->save_data('output');

}
?>
<html>
    <h2>Example of class "Textarea 2 csv"</h2>
    <p>Copy the the content of an excel sheet, paste it in the textarea and click on "Send".</p>
    <form method="post">
        <p><textarea name="xls" style="width: 800px; height: 400px"></textarea></p>
        <p><input type="submit" value="Send" /></p>
    </form> 
</html>


class.textarea2csv.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php 
class textarea_2_csv{
    
    var $arrLines;
    var $data;
    var $divider;
    
    function __construct($postedData){
        
        $this->arrLines = explode("\r\n",$postedData['xls']);
        $this->data = NULL;
        
    }
    
    // process the posted data
    function set_data(){
            
        if(is_array($this->arrLines)){
            
            if($this->divider == NULL) $this->set_divider(); // default divider setting if no other option is passed
            
            foreach($this->arrLines as $key=>$line){
            
                // if more than 1 field
                if(strpos($line, chr(9)) !== FALSE){
                    
                    $arrFields = explode(chr(9),$line);
                    
                    foreach($arrFields as $c=>$val){
                        
                        $this->data .= $val.$this->divider;
                        
                    }
                    
                    $this->data = trim($this->data,$this->divider);
                    $this->data .= "\r\n";
                    
                }
                // if only 1 field
                else{
                    
                    $this->data .= $line."\r\n";
                    
                }
            
            }       
        
        }
    
    }
    
    // saves the data as file or returns it back
    function save_data($write = false){
        
        $this->set_data();
        
        if(!$write == false){
            
            // write file (.txt if divider is tab)
            ($this->divider == chr(9)) ? $ext = '.txt' : $ext = '.csv';
            if(file_put_contents($write.$ext, $this->data)) echo('<h3>Data saved in file: '.$write.$ext.'</h3>');
            return(NULL);
            
        }
        else{
            
            // return de data
            return($this->data);
            
        }
        
    }   
    
    // set the divider as default to a comma
    function set_divider($opt=','){
        
        $this->divider = $opt;
        
    }
    
}

Litebit.eu voorraad check :).


Dit topic is gesloten.



Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee