Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php parse error explode

I am optimizing my website a bit. Tested the page on local, everything is fine. When I upload it, and access it live, it sudently throws a parse error... but it working perfectly locally, like I said.

 Parse error: syntax error, unexpected '[', expecting ',' or ';' in /home/theriff/www/frvideos.php on line 25

the code is the following one:

echo explode('|',$youtube[$i])[2].'<br />'."\r\n";

$youtube[$i] is a line formated like this:

DFHG-LINKYOUTUBE-HJGHJ|french Description|English Description

The youtube link only is the ID so there's no '|' symbol in it for sure, and it's read from a text file I write myself manually, so I am sure of the entry.

Does anyone know why it's working fine on local (EasyPhp Developper) but not on the distant server?

like image 277
user3916429 Avatar asked Aug 24 '14 10:08

user3916429


2 Answers

$results =  explode('|',$youtube[$i]);
echo $results[2].'<br />'."\r\n";

Version of PHP is not the same so there's no array chaining available on the 'distant server'.

like image 106
Ohgodwhy Avatar answered Oct 23 '22 05:10

Ohgodwhy


Old (< 5.4) PHP versions cannot directly dereference arrays of function return values, you have to temporarily store the result in a variable:

$exploded = explode('|',$youtube[$i]);
echo $exploded[2].'<br />'."\r\n";
like image 3
knittl Avatar answered Oct 23 '22 03:10

knittl