Problems with JSON and PHP

Doug Hardie bc979 at lafn.org
Fri Feb 1 22:26:17 UTC 2019


> On 1 February 2019, at 07:24, Mark Moellering <markmoellering at psyberation.com> wrote:
> 
> On Fri, Feb 1, 2019 at 10:17 AM <freebsd at boosten.org> wrote:
> 
>>>> test# more /usr/local/www/apache24/data/test.php
>>>> <?php
>>>> print "Hello world";
>>>> 
>>>> $myObj = (object) array();
>>>> $myObj->name = "John";
>>>> $myObj->age = 30;
>>>> $myObj->city = "New York";
>>>> 
>>>> $myJSON = json_encode($myObj);
>>>> 
>>>> echo $myJSON;
>>>> ?>
>>>> 
>>>> 
>>>> I use php and my biggest complaint is the way it handles errors.  I
>> think
>>> what is happening is that your Object Definition has a syntax error but
>> php
>>> is complaining about the json_encode.
>>> I believe (from the php.net docs) that it should be
>>> 
>>> $myObj = new stdClass();
>>>> $myObj->name = "John";
>>>> $myObj->age = 30;
>>>> $myObj->city = "New York";
>>>> 
>>> 
>> 
>> Don’t believe that’s actually the issue, since the supplied test.php works
>> like charm for me, either in my browser (through apache) or via command
>> line.
>> 
>> If it were the declaration, the command line would fail as well.

The initial issue is with a very large package.  The example I provided was the simplest I could come up with that showed the issue.  I ran php -init and the output (partial) was:

Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/etc
Loaded Configuration File => /usr/local/etc/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php
Additional .ini files parsed => /usr/local/etc/php/ext-18-session.ini,
/usr/local/etc/php/ext-20-curl.ini,
/usr/local/etc/php/ext-20-filter.ini,
/usr/local/etc/php/ext-20-gd.ini,
/usr/local/etc/php/ext-20-hash.ini,
/usr/local/etc/php/ext-20-json.ini,
/usr/local/etc/php/ext-20-mbstring.ini,
/usr/local/etc/php/ext-20-mcrypt.ini,
/usr/local/etc/php/ext-20-mysqli.ini,
/usr/local/etc/php/ext-20-openssl.ini,
/usr/local/etc/php/ext-20-xdebug.ini,
/usr/local/etc/php/ext-20-xml.ini,
/usr/local/etc/php/ext-20-zip.ini,
/usr/local/etc/php/ext-20-zlib.ini

running via the web server the info.php file gives (reformatted to look like the above):

Configuration File (php.ini) 
Path	/usr/local/etc
Loaded Configuration File	/usr/local/etc/php.ini
Scan this dir for additional .ini files	/usr/local/etc/php
Additional .ini files parsed	
/usr/local/etc/php/ext-18-session.ini, 
/usr/local/etc/php/ext-20-curl.ini, 
/usr/local/etc/php/ext-20-filter.ini, 
/usr/local/etc/php/ext-20-gd.ini, 
/usr/local/etc/php/ext-20-hash.ini, 
/usr/local/etc/php/ext-20-json.ini, 
/usr/local/etc/php/ext-20-mbstring.ini, 
/usr/local/etc/php/ext-20-mcrypt.ini, 
/usr/local/etc/php/ext-20-mysqli.ini, 
/usr/local/etc/php/ext-20-openssl.ini, 
/usr/local/etc/php/ext-20-xdebug.ini, 
/usr/local/etc/php/ext-20-xml.ini, 
/usr/local/etc/php/ext-20-zip.ini, 
/usr/local/etc/php/ext-20-zlib.ini

They both use the same ini file for json.  I don't see any differences between them.



More information about the freebsd-questions mailing list