0
$name = substr($name, 0, -strlen($ext)) . "_medium." . end(explode('.',$name));

the above code report strick standard warning, the small script as below:

  function medium($name) {
    $ext = strrchr($name, '.');
    if($ext !== false) {
        $name = substr($name, 0, -strlen($ext)) . "_medium." . end(explode('.',$name));
    }
    return $name;
  }

  function thumb($name) {
    $ext = strrchr($name, '.');
    if($ext !== false) {
        $name = substr($name, 0, -strlen($ext)) . "_thumb." . end(explode('.',$name));
    }
    return $name;
  }

  function name_remove($name) {
    $name = str_replace("_medium", "", $name);
    $name = str_replace("_thumb", "", $name);
    return $name;
  }

how can i fix this warning? need help :)

jones
  • 631
  • 3
  • 9
  • 20
  • `end()` takes the array by reference, only VARIABLES may be passed by reference. – Federkun May 22 '13 at 17:20
  • possible duplicate of [Strict Standards: Only variables should be passed by reference](http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference) – Lorenz Meyer Jun 21 '14 at 08:12

2 Answers2

0
$blocks = explode('.',$name);
$name = substr($name, 0, -strlen($ext)) . "_medium." . end($blocks);

But why not use pathinfo()

Mark Baker
  • 209,507
  • 32
  • 346
  • 385
0

Change your error reporting to 30719.

silkfire
  • 24,585
  • 15
  • 82
  • 105