Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP创建CSV文件(并上传)_Php_File_Csv_File Upload - Fatal编程技术网

如何使用PHP创建CSV文件(并上传)

如何使用PHP创建CSV文件(并上传),php,file,csv,file-upload,Php,File,Csv,File Upload,例如,我有一个变量“$foo”,它包含我希望在CSV中显示的所有数据: $foo = "some value,another value,last value"; 我的目标是: 创建一个名为“some.CSV”的CSV文件,其内容等于$foo 将“some.csv”上载到我的服务器 如何做到这一点 更新:以下是对我有效的确切代码。 $foo = "some value,another value,last value"; $file = 'some_data.csv'; file_put_co

例如,我有一个变量“$foo”,它包含我希望在CSV中显示的所有数据:

$foo = "some value,another value,last value";
我的目标是:

  • 创建一个名为“some.CSV”的CSV文件,其内容等于$foo

  • 将“some.csv”上载到我的服务器

  • 如何做到这一点

    更新:以下是对我有效的确切代码。

    $foo = "some value,another value,last value";
    $file = 'some_data.csv';
    file_put_contents($file, $foo);
    

    如果$foo已经是csv格式的。你可以用

    您没有指定上载方法。以下是使用ftp(不安全)的示例:

    第一:

    file_put_contents("foobar.csv", $yourString);
    
    第二点:

    $c = curl_init("http://"...);  
    curl_setopt($c, CURLOPT_POSTFIELDS, array('somefile' => "@foobar.csv"));
    $result = curl_exec($c);
    curl_close($c);
    print_r($result);
    

    注意文件名前的@如果您已经有了变量,其中包含了所有可用于将其保存为csv的数据

    要创建csv,您需要将字符串拆分为一个数组,然后在其中循环。之后,您可以将文件保存到web服务器帐户有权访问的服务器上的任何目录。这里有一个例子

    //variables for the CSV file
    $directory = '/sampledir/';
    $file = 'samplefile.csv';
    $filepath = $directory.$file;
    
    //open the file
    $fp = fopen("$filepath",'w+');
    
    //create the array
    $foo = "some value,another value,last value";
    $arrFoo = explode(',',$foo);
    
    //loop through the array and write to the file
    $buffer = '';
    foreach($arrFoo AS $value) {
       $buffer .= $value."\r\n";
    } 
    fwrite($fp,$buffer);
    
    //close the file
    fclose($fp);
    
    您的文件现在将被写入
    $directory
    中设置的目录,文件名在
    $file
    中设置


    -Justin

    如何使用PHP上传CSV文件(工作代码

    查询库

    <?php 
    class query{
    
    function mysql_query_string($string){
        $enabled = true;
        $htmlspecialchars = false; # Convert special characters to HTML entities 
        /****************************************************************
        The translations performed are: 
    
        '&' (ampersand) becomes '&amp;' 
        '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set. 
        ''' (single quote) becomes '&#039;' only when ENT_QUOTES is set. 
        '<' (less than) becomes '&lt;' 
        '>' (greater than) becomes '&gt;' 
    
        *****************************************************************/
    
        if($htmlspecialchars){
        # Convert special characters to HTML entities 
        $string = htmlspecialchars($string, ENT_QUOTES);
        }
        else{
        /****************************************************************
        '"' (double quote) becomes '&quot;' 
        ''' (single quote) becomes '&#039;' 
        ****************************************************************/
        //$string = str_replace('"',"&quot;",$string);
        //$string = str_replace("'","&#039;",$string);
        }
    
        if($enabled and gettype($string) == "string"){
            # Escapes special characters in a string for use in a SQL statement
            return mysql_real_escape_string(trim($string));
        }
        elseif($enabled and gettype($string) == "array"){
        $ary_to_return = array();
        foreach($string as $str){
            $ary_to_return[]=mysql_real_escape_string(trim($str));
        }
            return $ary_to_return;
        }
        else{
            return trim($string);
        }
       }
     }
     ?>
    
    如果您使用的是Codeignitor框架,因此此代码太容易集成,没有硬性规定,您也可以使用此代码纯PHP以及

    塔克斯
    AbdulSamad

    那么你在家里运行php,你想把它上传到你的服务器上吗?不,我正在把我的php脚本上传到服务器上,服务器将由chron作业运行。脚本应该创建一个csv文件并将其添加到同一托管空间/服务器上的目录中。不要忘记检查以确保安装了cURL扩展。
    <?php 
    class query{
    
    function mysql_query_string($string){
        $enabled = true;
        $htmlspecialchars = false; # Convert special characters to HTML entities 
        /****************************************************************
        The translations performed are: 
    
        '&' (ampersand) becomes '&amp;' 
        '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set. 
        ''' (single quote) becomes '&#039;' only when ENT_QUOTES is set. 
        '<' (less than) becomes '&lt;' 
        '>' (greater than) becomes '&gt;' 
    
        *****************************************************************/
    
        if($htmlspecialchars){
        # Convert special characters to HTML entities 
        $string = htmlspecialchars($string, ENT_QUOTES);
        }
        else{
        /****************************************************************
        '"' (double quote) becomes '&quot;' 
        ''' (single quote) becomes '&#039;' 
        ****************************************************************/
        //$string = str_replace('"',"&quot;",$string);
        //$string = str_replace("'","&#039;",$string);
        }
    
        if($enabled and gettype($string) == "string"){
            # Escapes special characters in a string for use in a SQL statement
            return mysql_real_escape_string(trim($string));
        }
        elseif($enabled and gettype($string) == "array"){
        $ary_to_return = array();
        foreach($string as $str){
            $ary_to_return[]=mysql_real_escape_string(trim($str));
        }
            return $ary_to_return;
        }
        else{
            return trim($string);
        }
       }
     }
     ?>
    
     public function csvFileSubmitData(){
    
        $this->load->library('query');
        $query=new query();
        $root = DIR_PATH.'public/administrator/csv/';
    
        $fileToUpload= (isset($_FILES['fileToUpload']) and $_FILES['fileToUpload']['size'] > 0 and
        $_FILES['fileToUpload']['error'] == 0) ? $_FILES['fileToUpload'] : "";
    
           if(is_array($fileToUpload)){ # CHECK UPLOADED FILE 1 FOR VALIDATION
                $fileToUpload['name'] = str_replace(" ","_",$fileToUpload['name']);
                $fileToUpload['name'] = str_replace("&","and",$fileToUpload['name']);
                # CHECK FILE TYPE IF IT IS IMAGE JPG,GIF,PNG ETC
                $fnarr = explode(".", $fileToUpload['name']);
            }   
    
        $rand = rand(1000,10000);
        $filecsv = $rand."_".$fileToUpload['name'];
        $file1  =   $root.$filecsv;
        move_uploaded_file($fileToUpload['tmp_name'],$file1);
    
        $fieldseparator = ",";
        $lineseparator = "\n";
        $csvfile = $file1;
        $addauto = 0;
        $save = 0;
        $outputfile = "output.sql";
        if(!file_exists($csvfile)) {
            echo "File not found. Make sure you specified the correct path.\n";
            exit;
        } 
       $file = fopen($csvfile,"r");
    
        if(!$file) {
            echo "Error opening data file.\n";
            exit;
        }
    
        $size = filesize($csvfile);
    
        if(!$size) {
            echo "File is empty.\n";
            exit;
        }
    
        $csvcontent = fread($file,$size);
    
        fclose($file);
    
        $lines = 1;
        $queries = "";
        $linearray = array();
        $values = "";
        $m =0;
        $linestext = split($lineseparator,$csvcontent);
    
        foreach($linestext as $line){
        if($m++==0){
          continue;
        }
    
        $lines++;
        $line = trim($line," \t");
        if($line  == ''){
          break;
        }
        $linearray = explode($fieldseparator,$line);
    
        $topicname = $linearray[0];
        $question = $linearray[1];
        $answer1 = $linearray[2];
    
        if(isset($linearray[1]) and $linearray[1] != ''){
    
                    $topicname = $query->mysql_query_string($linearray[0]);
                    $question = $query->mysql_query_string($linearray[1]);
                    $answer_type = $query->mysql_query_string($linearray[2]);
        }
        //Save Csv data in your table like this
        //query(insert into topics SET `topic`='".$topicname."',`question`='".$question."');
      }}