Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
172 views
in Technique[技术] by (71.8m points)

php - Fatal error: Cannot redeclare fputcsv()

I have found a php inventory http://inventory-management.org/ easy but was written in PHP4? and I run now on PHP5. I have found some errors that I have already managed to fix but they are keep coming up so I would like to see if I can managed to run at the end. (As it is really simple script only has 5-7 php files).

Could someone help me please how to fix this error?

Fatal error: Cannot redeclare fputcsv() in C:xampphtdocsInventorylibcommon.php on line 935

which is:

function fputcsv ($fp, $array, $deliminator=",") {
    return fputs($fp, putcsv($array,$delimitator));
}#end fputcsv()

here is the full code:

<?php
/*
*/

    /**
    * description returns an array with filename base name and the extension
    *
    * @param filemane format
    *
    * @return array
    *
    * @access public
    */
    function FileExt($filename) {

        //checking if the file have an extension
        if (!strstr($filename, "."))
            return array("0"=>$filename,"1"=>"");

        //peoceed to normal detection

        $filename = strrev($filename);

        $extpos = strpos($filename , ".");

        $file = strrev(substr($filename , $extpos + 1));
        $ext = strrev(substr($filename ,  0 , $extpos));

        return array("0"=>$file,"1"=>$ext);
    }

/**
* description
*
* @param
*
* @return
*
* @access
*/
function UploadFile($source, $destination , $name ="") {
    $name = $name ? $name : basename($source);
    $name = FileExt($name);
    $name[2]= $name[0];

    $counter = 0 ;
    while (file_exists( $destination . $name[0] . "." . $name[1] )) {
        $name[0] = $name[2] . $counter;
        $counter ++;
    }

    copy($source , $destination . $name[0] . "." . $name[1] );
    @chmod($destination . $name[0] . "." . $name[1] , 0777);
}

function UploadFileFromWeb($source, $destination , $name) {
    $name = FileExt($name);
    $name[2]= $name[0];

    $counter = 0 ;
    while (file_exists( $destination . $name[0] . "." . $name[1] )) {
        $name[0] = $name[2] . $counter;
        $counter ++;
    }

    SaveFileContents($destination . $name[0] . "." . $name[1] , $source);
    @chmod($destination . $name[0] . "." . $name[1] , 0777);
}


/**
* returns the contents of a file in a string
*
* @param string $file_name  name of file to be loaded
*
* @return string
*
* @acces public
*/
function GetFileContents($file_name) {
//  if (!file_exists($file_name)) {
//      return null;
//  }

    //echo "<br>:" . $file_name;
    $file = fopen($file_name,"r");

    //checking if the file was succesfuly opened
    if (!$file)
        return null;

    if (strstr($file_name,"://"))
        while (!feof($file))
            $result .= fread($file,1024);
    else
        $result = @fread($file,filesize($file_name));

    fclose($file);

    return $result;
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function SaveFileContents($file_name,$content) {
//  echo $file_name;
    $file = fopen($file_name,"w");
    fwrite($file,$content);
    fclose($file);
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function Debug($what,$pre = 1,$die = 0) {
    if (PB_DEBUG_EXT == 1) {
        if ($pre == 1)
            echo "<pre style="background-color:white;">";

        print_r($what);

        if ($pre == 1)
            echo "</pre>";

        if ($die == 1)
            die;
    }
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function SendMail($to,$from,$subject,$message,$to_name,$from_name) {    
    if ($to_name)
        $to = "$to_name <$to>";

    $headers  = "MIME-Version: 1.0
";
    $headers .= "Content-type: text; charset=iso-8859-1
";
    if ($from_name) {
        $headers .= "From: $from_name <$from>
";
        $headers .= "Reply-To: $from_name <$from>
";
    }
    else {
        $headers .= "From: $from
";
        $headers .= "Reply-To: $from
";
    }

    $headers .= "X-Mailer: PHP/" . phpversion();

    return mail($to, $subject, $message,$headers);      
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function FillVars($var,$fields,$with) {
    $fields = explode (",",$fields);

    foreach ($fields as $field)
        if (!$var[$field])
            !$var[$field] = $with;

    return $var;
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function CleanupString($string,$strip_tags = TRUE) {
    $string = addslashes(trim($string));

    if ($strip_tags)
        $string = strip_tags($string);

    return $string;
}

define("RX_EMAIL","^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,}$");
define("RX_CHARS","[a-z ]");
define("RX_DIGITS","[0-9]"); 
define("RX_ALPHA","[^a-z0-9_]");
define("RX_ZIP","[0-9-]"); 
define("RX_PHONE","[0-9-+()]");

/**
* description
*
* @param
*
* @return
*
* @access
*/
function CheckString($string,$min,$max,$regexp = "",$rx_result = FALSE) {
    if (get_magic_quotes_gpc() == 0)
        $string = CleanupString($string);

    if (strlen($string) < $min)
        return 1;
    elseif (($max != 0) && (strlen($string) > $max))
        return 2;
    elseif ($regexp != "")
        if ($rx_result == eregi($regexp,$string))
            return 3;

    return 0;
}

/**
* description
*
* @param
*
* @return
*
* @access
*///  FIRST_NAME:S:3:60,LAST_NAME:S...
function ValidateVars($source,$vars) {
    $vars = explode(",",$vars);

    foreach ($vars as $var) {
        list($name,$type,$min,$max) = explode(":",$var);

        switch ($type) {
            case "S":
                $type = RX_CHARS;
                $rx_result = FALSE;
            break;

            case "I":
                $type = RX_DIGITS;
                $rx_result = TRUE;
            break;

            case "E":
                $type = RX_EMAIL;
                $rx_result = FALSE;
            break;

            case "P":
                $type = RX_PHONE;
                $rx_result = TRUE;
            break;

            case "Z":
                $type = RX_ZIP;
                $rx_result = FALSE;
            break;

            case "A":
                $type = "";
            break;

            case "F":
                //experimental crap
                $type = RX_ALPHA;
                $rx_result = TRUE;
                //$source[strtolower($name)] = str_replace(" ", "" , $source[strtolower($name)] );
            break;

        }
        //var_dump($result);
        if (($result = CheckString($source[strtolower($name)],$min,$max,$type,$rx_result)) != 0)
            $errors[] = $name;

    }   

    return is_array($errors) ? $errors : 0;
}

/**

* description
*
* @param
*
* @return
*
* @access
*/
function ResizeImage($source,$destination,$size) {
    if (PB_IMAGE_MAGICK == 1)
        system( PB_IMAGE_MAGICK_PATH . "convert $source -resize {$size}x{$size} $destination");
    else
        copy($source,$destination);
}

/**
* uses microtime() to return the current unix time w/ microseconds
*
* @return float the current unix time in the form of seconds.microseconds
*
* @access public
*/
function GetMicroTime() {
    list($usec,$sec) = explode(" ",microtime());

    return (float) $usec + (float) $sec;
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function GetArrayPart($input,$from,$count) {
    $return = array();
    $max = count($input);

    for ($i = $from; $i < $from + $count; $i++ ) 
        if ($i<$max)
            $return[] = $input[$i];

    return $return; 
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function ReplaceAllImagesPath($htmldata,$image_path) {
    $htmldata = stripslashes($htmldata);
    // replacing  IE formating style
    $htmldata = str_replace("<IMG","<img",$htmldata);
    // esmth, i dont know why i'm doing
    preg_match_all("'<img.*?>'si",$htmldata,$images);

//<?//ing edit plus

    foreach ($images[0] as $image)
        $htmldata = str_replace($image,ReplaceImagePath($image,$image_path),$htmldata);

    return $htmldata;//implode("
",$html_out);
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function ReplaceImagePath($image,$replace) {
    // removing tags
    $image = stripslashes($image);
    $image = str_replace("<","",$image);
    $image = str_replace(">","",$image);

    // exploging image in proprietes
    $image_arr = explode(" ",$image);
    for ($i = 0;$i < count($image_arr) ;$i++ ) {
        if (stristr($image_arr[$i],"src")) {
            // lets it :]
            $image_arr[$i] = explode("=",$image_arr[$i]);
            // modifing the image path
            // i doing this

            // replacing ',"
            $image_arr[$i][1] = str_replace("'","",$image_arr[$i][1]);
            $image_arr[$i][1] = str_replace(""","",$image_arr[$i][1]);

            //getting only image name
            $image_arr[$i][1] = strrev(substr(strrev($image_arr[$i][1]),0,strpos(strrev($image_arr[$i][1]),"/")));

            // building the image back
            $image_arr[$i][1] = """ . $replace . $image_arr[$i][1] . """;
            $image_arr[$i] = implode ("=",$image_arr[$i]);
        }       
    }   
    // adding tags
    return "<" . implode(" ",$image_arr) . ">";
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function DowloadAllImages($images,$path) {  
    foreach ($images as $image)
        @SaveFileContents($path ."/".ExtractFileNameFromPath($image),@implode("",@file($image)));   
}


function GetAllImagesPath($htmldata) {
    $htmldata = stripslashes($htmldata);
    // replacing  IE formating style
    $htmldata = str_replace("<IMG","<img",$htmldata);
    // esmth, i dont know why i'm doing
    preg_match_all("'<img.*?>'si",$htmldata,$images);

//<?//ing edit plus

    foreach ($images[0] as $image)
        $images_path[] = GetImageName($image);

    return $images_path;
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function GetImagePath($image) {
    // removing tags
    $image = stripslashes($image);
    $image = str_replace("<","",$image);
    $image = str_replace(">","",$image);

    // exploging image in proprietes
    $image_arr = explode(" ",$image);
    for ($i = 0;$i < count($image_arr) ;$i++ ) {
        if (stristr($image_arr[$i],"src")) {
            // lets it :]
            $image_arr[$i] = explode("=",$image_arr[$i]);
            // modifing the image path
            // i doing this

            // replacing ',"
            $image_arr[$i][1] = str_replace("'","",$image_arr[$i][1]);
            $image_arr[$i][1] = str_replace(""","",$image_arr[$i][1]);

            return strrev(substr(strrev($image_arr[$i][1]),0,strpos(strrev($image_arr[$i][1]),"/")));;
        }       
    }   
    // adding tags
    return "";
}

/**
* description
*
* @param
*
* @return
*
* @access
*/
function GetImageName($image) {
    // removing tags
    $image = stripslashes($image);
    $image = str_replace("<","",$image);
    $image = str_replace(">","",$image);

    // exploging image in proprietes
    $image_arr = explode(" ",$image);
    for ($i = 0;$i < count($image_arr) ;$i++ ) {
        if (stristr($image_arr[$i],"src")) {
            // lets it :]
            $image_arr[$i] = explode("=",$image_arr[$i]);
            // modifing the image path
            // i doing this

            // replacing ',"
            $image_arr[$i][1] = str_rep

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

fputcsv() is a built in PHP function. This means you cannot name your own function the same thing.

If you need this code to work with PHP4, just check to see if the function exists first, then if not, create your own.

if (!function_exists('fputcsv')) {
     // Your definition here
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...