Asked  7 Months ago    Answers:  4   Viewed   31 times
// Other variables
$MAX_FILENAME_LENGTH = 260;
$file_name = $_FILES[$upload_name]['name'];
//echo "testing-".$file_name."<br>";
//$file_name = strtolower($file_name);
$file_extension = end(explode('.', $file_name)); //ERROR ON THIS LINE
$uploadErrors = array(
    0=>'There is no error, the file uploaded with success',
    1=>'The uploaded file exceeds the upload max filesize allowed.',
    2=>'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
    3=>'The uploaded file was only partially uploaded',
    4=>'No file was uploaded',
    6=>'Missing a temporary folder'
);

Any ideas? After 2 days still stuck.

 Answers

44

Assign the result of explode to a variable and pass that variable to end:

$tmp = explode('.', $file_name);
$file_extension = end($tmp);

The problem is, that end requires a reference, because it modifies the internal representation of the array (i.e. it makes the current element pointer point to the last element).

The result of explode('.', $file_name) cannot be turned into a reference. This is a restriction in the PHP language, that probably exists for simplicity reasons.

Tuesday, June 1, 2021
 
Manmay
answered 7 Months ago
71

reset is waiting for a variable reference. You are passing it a function result...

$taxonomy_term = taxonomy_get_term_by_name($lead_type, $vocabulary);
$taxonomy_term = reset($taxonomy_term );
Saturday, May 29, 2021
 
SpiderLinked
answered 7 Months ago
43

Store value of hash in a variable and then pass it.

$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt->bindParam(':password', $password);

For more reference: http://php.net/manual/en/pdostatement.bindparam.php

Saturday, May 29, 2021
 
liquidmotion
answered 7 Months ago
41

You can't pass along the return value of a function to end().

Make it:

$arrayVar = explode(".", $file["name"]);
$extension = end($arrayVar);

You would have the same issue with other PHP functions. For example empty(someFunction()) would not work.

Thursday, September 2, 2021
 
Wijden
answered 3 Months ago
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :
 
Share