精华内容
下载资源
问答
  • linux安装php扩展json

    千次阅读 2012-02-23 18:42:24
    今天给一台CentOS系统的服务器上传...PHP Fatal error: Call to undefined function json_decode() 这是典型的PHP组件未安装出现的提示,错误信息就是找不到某个函数XXX。经查,这个函数是PHPjson扩展包含的。接下来

    今天给一台CentOS系统的服务器上传了一个新的程序之后,发现部分页面显示不出来,或者不完整。查看Apache的错误日志的时候发现了大量的PHP报错提示:

    PHP Fatal error: Call to undefined function json_decode()

    这是典型的PHP组件未安装出现的提示,错误信息就是找不到某个函数XXX。经查,这个函数是PHP的json扩展包含的。接下来就简单了,只需要安装好json扩展即可消除这个错误,从而使网页恢复正常。

    首先尝试最简单的方法,输入yum指令进行安装:yum install php-json,结果提示没有这个扩展包;再次尝试输入yum install json也不行。于是输入yum search php-,列出所有的PHP扩展包进行查找。结果还是没有找到跟json有关的扩展包。

    既然yum自己不带,那么就得拿出Linux下的杀手锏——编译了。网上搜索了下相关的文章并自己实战操作了下,发现其实编译个json也并不是很难的事情。于是整理心得如下:

    1、切换到tmp目录下载json源码包。进行临时的下载操作进入到tmp目录是个很好的习惯,因为Linux系统在开机的时候会自动清空tmp目录,从而保持硬盘文件的整洁。当然如果你要保留这个源码包的话,可以下载到自己喜欢的目录。

    #cd /tmp

    #wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2

    2、解压缩下载得到的文件:

    #tar xvjf php-json-ext-1.2.1.tar.bz2

    3、进入源码目录:

    #cd php-json-ext-1.2.1

    4、准备编译环境。这一步可以先不做直接进行第5步操作,如果遇到问题后再进行本步检查也无所谓。不过为了避免不必要的麻烦,我们还是检查下编译环境是否准备好了吧!

    #yum install php-devel automake autoconf libtool gcc

    5、准备PHP模块的编译环境:

    #phpize

    6、开始编译json模块:

    #./configure

    #make

    #make install

    7、配置php.ini。首先打开php.ini文件:

    #vim /etc/php.ini

    注:这里我的php.ini是在/etc目录下,如果你的php.ini不在这里,请修改路径为你的php.ini所在的路径。

    直接在最后一行加上下面这段话:

    extension=json.so

    然后输入:wq保存退出。

    8、重启Apache服务:

    #/etc/init.d/httpd restart

    成功重启之后,可以利用phpinfo()去查看是否有json的信息。我试着打开之前报错的页面,已经完全能正常打开了,一切OK。

    资料参考:http://hi.baidu.com/zhujinyu/blog/item/3d2915121ed51659f919b852.html
    资料参考:http://zhangpeng.me/?p=210
    http://blog.csdn.net/helen_shw/article/details/6756135


    展开全文
  • 今天用PHP写一个接口文件出现了一个非常奇葩的问题,首先我的json字符串绝对没有问题,然后使用json_encode编码后echo出去作为接口的返回值。前端使用JS获取接口返回的json对象时,返回的是一个字符串,不是Object...

    今天用PHP写一个接口文件出现了一个非常奇葩的问题,首先我的json字符串绝对没有问题,然后使用json_encode编码后echo出去作为接口的返回值。前端使用JS获取接口返回的json对象时,返回的是一个字符串,不是Object(正常应该返回JSON的Object)。而且这个字符串还被Unicode转码过。

    0818b9ca8b590ca3270a3433284dd417.png

    (截图只贴了一部分json值)

    我以为Unicode转码的问题,就在网上找了一些文章看看,可以通过

    json_encode("中文", JSON_UNESCAPED_UNICODE);

    或者

    mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE")等方法不让json_encode转码或者如果转码了想办法解码。

    我使用了上述的办法依然无法解决我出现的问题。我的问题有几个奇葩点:

    1、我的json字符串格式绝对没有问题;

    2、我写了很多接口,接口文件的模板格式都是一致的,为什么其它接口文件没有问题,偏偏这个有问题;

    3、我的开发环境在windows,使用XAMPP环境,PHP版本是5.6.28,这个接口在windows下执行没有问题;

    4、我的生产环境是Linux,PHP版本5.4,出现了这个问题。

    就是因为这个原因很奇葩,搞的我一个上午各种查资料才解决问题,而且导致问题的原因也很简单和奇葩。

    0818b9ca8b590ca3270a3433284dd417.png

    仔细看看返回值,除了返回的是一个字符串不是Object之外,在json值之前有一些空格,但是不知道这个空格哪来的,导致JSON解析失败。又在网上查找一通,大部分人说因为BOM的原因,但是为啥发布到Linux之后其它接口文件没有出现,而这个接口文件就有这个问题。所以我肯定不是BOM问题。最后终于定位了问题:代码文件要顶格写代码(心中一万个草泥马飞过……)

    0818b9ca8b590ca3270a3433284dd417.png

    看到上图中的第一行代码没,一定要顶格写,不要在代码文件开头留下空格。之所以我会出现这个问题是,我在这个文件全选了所有文字,并使用eclipse的format功能格式化了一下代码格式,就没留意这个小细节。而且代码不顶格在windows下执行是没有问题的,但是在Linux环境下就出现了问题,也可能是PHP版本的问题,这个没有细究。

    今天也算是长见识了,从来没想过代码不顶格写,会导致json返回值错误,而且数一数前端返回的json字符串前面出现的空格数,还真跟接口文件头部没顶格留下的空格数一样,我戳~

    不知道是不是只有新手才会出现这个问题,还是写下来作为记录吧,以防后面再犯。

    展开全文
  • 在CentOS下安装phpjson扩展

    千次阅读 2012-01-19 10:03:03
    今天给一台CentOS系统的服务器...PHP Fatal error: Call to undefined function json_decode() 这是典型的PHP组件未安装出现的提示,错误信息就是找不到某个函数XXX。经查,这个函数是PHPjson扩展包含的。接下来

    今天给一台CentOS系统的服务器上传了一个新的程序之后,发现部分页面显示不出来,或者不完整。查看Apache的错误日志的时候发现了大量的PHP报错提示:

    PHP Fatal error:  Call to undefined function json_decode()

    这是典型的PHP组件未安装出现的提示,错误信息就是找不到某个函数XXX。经查,这个函数是PHP的json扩展包含的。接下来就简单了,只需要安装好json扩展即可消除这个错误,从而使网页恢复正常。

    首先尝试最简单的方法,输入yum指令进行安装:yum install php-json,结果提示没有这个扩展包;再次尝试输入yum install json也不行。于是输入yum search php-,列出所有的PHP扩展包进行查找。结果还是没有找到跟json有关的扩展包。

    既然yum自己不带,那么就得拿出Linux下的杀手锏——编译了。网上搜索了下相关的文章并自己实战操作了下,发现其实编译个json也并不是很难的事情。于是整理心得如下:

    1、切换到tmp目录下载json源码包。进行临时的下载操作进入到tmp目录是个很好的习惯,因为Linux系统在开机的时候会自动清空tmp目录,从而保持硬盘文件的整洁。当然如果你要保留这个源码包的话,可以下载到自己喜欢的目录。

    #cd /tmp

    #wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2

    2、解压缩下载得到的文件:

    #tar xvjf php-json-ext-1.2.1.tar.bz2

    3、进入源码目录:

    #cd php-json-ext-1.2.1

    4、准备编译环境。这一步可以先不做直接进行第5步操作,如果遇到问题后再进行本步检查也无所谓。不过为了避免不必要的麻烦,我们还是检查下编译环境是否准备好了吧!

    #yum install php-devel automake autoconf libtool gcc

    5、准备PHP模块的编译环境:

    #phpize

    6、开始编译json模块:

    #./configure

    #make

    #make install

    7、配置php.ini。首先打开php.ini文件:

    #vim /etc/php.ini

    注:这里我的php.ini是在/etc目录下,如果你的php.ini不在这里,请修改路径为你的php.ini所在的路径。

    直接在最后一行加上下面这段话:

    extension=json.so

    然后输入:wq保存退出。

    8、重启Apache服务

    #/etc/init.d/httpd restart

    成功重启之后,可以利用phpinfo()去查看是否有json的信息。我试着打开之前报错的页面,已经完全能正常打开了,一切OK。


    展开全文
  • 而 composer.json 是安装 Composer 后生成的文件,同时也是 composer 在安装组件时必不可少的文件,composer 需要根据这个文件中的信息进行查找、安装、自动加载 PHP 组件。(composer.json 文件的内容必须是有效的 ...

    Composer 是安装 PHP 组件的工具,

    而 composer.json 是安装 Composer 生成的文件,是安装组件时必不可少的文件,Composer需要根据这个文件中的信息进行查找、安装、自动加载 PHP 组件。composer.json 文件内容必须是有效的 JSON 数据

    4-2 某描述器的composer.json

    {
        "name": "modernphp/scanner",
        "description": "Scan URLs from a CSV file and report inaccessible URLs",
        "keywords": ["url", "scanner", "csv"],
        "homepage": "http://example.com",
        "license": "MIT",
        "authors": [
            {
                "name": "Josh Lockhart",
                "homepage": "https://github.com/codeguy",
                "role": "Developer"
            }
        ],
        "support": {
            "email": "help@example.com"
        },
        "require": {
            "php" : ">=5.6.0",
            "guzzlehttp/guzzle": "^6.1"
        },
        "require-dev": {
            "phpunit/phpunit": "^5.0"
        },
        "suggest": {
            "league/csv": "^8.0"
        },
        "autoload": {
            "psr-4": {
                "Oreilly\\ModernPHP\\": "src/"
            }
        }
    }
    
    

    显然,这里内容有不少需要消化,下面我们来详细说明每个属性

    属性说明

    name 这是组件的厂商名和包名,二者之间使用 / 符号分隔。这个属性的值会在 Packagist 中显示。

    	"name":"modernphp/scanner",
    

    description 这个属性的值是几名话,简要说明组件。这个属性的值会在 Packagist (1) 中显示。

    	"description":"Scan URLs from a CSV file and report inaccessible URLs",
    

    keywords 这个属性的值是几个描述组件的关键字。这些关键字用于帮助别人在 Packagist 中找到这个组件。

    	"keywords":["url","scanner","csv"],
    

    homepage 这是组件网站的 URL。

    	"homepage":"http://example.com",
    

    license 这是 PHP 组件采用的软件许可证。记住,发布代码时一定要使用许可证。(http://choosealicense.com 对软件许可做了详细说明)

    	"license":"MIT",
    

    authrs 这是一个数组,包含项目中每个作者的信息。每个作者的信息至少要包含姓名和网站URL。

    	"authors":[
    		{
    		"name": "Josh Lockhart",
    		"homepage":"http://github.com/codeguy",
    		"role":"Developer"
    		}
    	],
    

    support 这是组件的用户获取技术支持的方式。我喜欢设为电子邮件地址和支持讨论组的URL。你也可以列出 IRC频道等。

    	"support":{
    		"email":"help@example.com"
    	},
    

    require 这个属性列出组件自身依赖的组件。我们应该列表每个依赖的厂商名和包名,以及最小版本号。我还喜欢列出组件需要的最小PHP 版本号。在开发环境和生产环境都会安装这个属性中列出的全部依赖。

    	"require":{
    		"php":">=7.2.0",
    		"guzzlehttp/guzzle":"~5.0"
    	},
    

    require-dev 这个属性的值与 require 属性类似,不过列出的是开发这个组件所需的依赖。例如,我通常会把 phpunit 当做开发依赖,以便组件的其他贡献者能编写和运行测试。这些依赖只在开发时安装,在生产环境中使用时不会安装。

    	"require-dev":{
    		"phpunit/phpunit":"~4.3"
    	},
    

    suggest 这个属性的值与 require 属性类似,不过只是建议安装的组件,以防与其他组件合作时需要。与 requeire 属性不同,这个对象的值是自由的文本字段,用于描述这个建议安装的组件。 composer 不会安装这些建议安装的组件。

    	"suggest":{
    		"league/csv":"~6.0"
    	},
    

    autoload 这个属性告诉 composer 的自动加载器如何自动加载这个组件。我建议使用符合 PSR-4 规范的自动加载器,如示例4-2所示。在psr-4属性中,我们要把组件的命名空间前缀与相对组件根目录的文件系统路径对应起来。这样,我们的组件就符合PSR-4自动加载器标准了。在示例-2中,我把 Oreilly\ModernPHP 命名空间与 src/ 目录应对了起来。要对应的命名空间必须以两个反斜线 \\ 结尾,防止与命名空间中有类似字符序列的其他组件冲突。在这个示例中,如果实例化虚构的Oreilly\ModernPHP\Url\Scanner 类,composer 会自动加载 src/Url/Scanner.php 文件。

    	"autoload":{
    		"psr-4":{
    			"Oreilly\\ModernPHP\\":"src/"
    		}
    	}
    

    说明:(1) Packagist : 2. 是查找PHP组件的地方 (https://packagist.org),里面列出大量优秀的 PHP 组件 。而compsoer 是安装PHP组件的工具。

    建议: composer 完整格式参见 http://getcomposer.org

    信息参考 : Modern PHP

    展开全文
  • <pre><code>$parser = new Services_JSON(SERVICE_JSON_LOOSE_TYPE); $jsonobj = $parser->decode(file_get_contents("filename.json", true)); $result = jsonPath($jsonobj , "$..Photo[?(@.ID == 222)]"); //...
  •  安装phalcon7(相关链接:https://github.com/dreamsxin/cphalcon7网上还有有很多,自行查找) 问题  安装完毕验证时,执行命令 # php --ri phalcon7  报错: PHP Warning: PHP Startup: Unable to load....
  • PHP之AJAX,XML,JSON一揽子方案
  • 原文:http://blog.renhao.org/2011/01/install-php-json-on-centos/ 今天给一台CentOS系统的服务器上传了一个新的程序之后,发现部分页面显示不出来,或者不完整。查看Apache的错误日志的时候发现了大量的...
  • 号当前目录查找,绝对路径查找 一、文件输入/输出 open()打开文件,r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件 1 、同一目录中: root @kali :~/python/anquangongji # ls scanerftpbanner.py ...
  •  安装phalcon7(相关链接:https://github.com/dreamsxin/cphalcon7网上还有有很多,自行查找) 问题:  安装完毕验证时,执行命令  # php --ri phalcon7  报错: PHP Warning: PHP Startup: Unable to ....
  • 悲剧的是Lire基于java应用,没有php接口可以调用,于是想以json+struts2开发个jee项目,做为php端的http请求接口来应用。 首先:下载Lire的demo文件(看源码是可以的,只是涉及到的算法,很多对于我这种理论知识特差...
  • composer.json 解析

    2019-03-01 15:26:01
    composer.json 架构可参考:https://docs.phpcomposer.com/04-schema.html。 目录 简介 JSON 格式 根项目 属性 name名称 description描述 version版本 type类型 keywords homepage readme time license...
  • 下面说说我自己提交 到GitHub上的代码中的注意事项   1. 目录结构:  根目录下 创建 src 目录 用来存放 源代码, 创建examples目录存放 示例代码 ...php /** * Created by IcePHP Framework. * User: 蓝冰大...
  • QT读JSON文件步骤,这里把过程记录一下,网上大多都是怎么写json的,对于读的,记录的不多首先JSON文件格式必须为UTF-8(非UTF-8 with BOM),UTF-8 with BOM 即为UTF-8 前加了BOM标识,会导致解析失败,报错内容非法,...
  • php+Jquery+AJAX+JSON错误调试

    千次阅读 2015-06-23 20:46:02
    如果ajax发送请求不对,Request Eror,去查找请求PHP文件的路径对不对。 遇到错误比较多的情况是集中在php文件里的 ajax向php文件发送请求,php文件传回的全部内容就是响应 如果数据格式是以JSON组装的,...
  • XML与JSON

    2021-07-29 14:44:15
    XML与JOSN 文章目录XML与JOSNXML简介学习XML的作用XML文件XML语法格式案例语法进阶CDATAJava解析XML面试题*DOM4J...定义介绍2.xml和json优缺点XML的优缺点JSON的优缺点3.XML和JOSN的优缺点对比 XML 简介 可扩展标记语
  • This article explores JSON_MODIFY() function to modify JSON Data in the SQL Server. 本文探讨了JSON_MODIFY()函数来修改SQL Server中的JSON数据。 介绍 (Introduction) Java Script Object Notation ...
  • 一个图中有很多点,如何求出两点之间的最短距离呢? 这实际上涉及到一个算法问题,如下图所示: 一张图上有从A到G七个... //标记该节点是否已得到最短路径 var $isMarked = false; //标记该节点离起始节点的最短路
  • Mysql之如何使用json

    2019-02-19 14:27:01
    文章目录需求常用函数创建JSON查询JSON修改JSONMETA信息单表单表查询单表新增单表修改多表关联查询多表更新多表详情多表删除 需求 详情页实现自定义功能,可自行拖拽编辑内容; 列表页面可自定义搜索功能 多表业务...
  • 使用 JSONPath 解析 JSON 完整内容详解 JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。 JsonPath提供的json解析非常强大,它提供了类似...
  • 在本教程中,您将学习如何在PHP中使用会话,如何通过DOM处理XML数据以及如何在PHP中创建,使用和读取JSON数据。 关于本教程 本教程通过演示基于Web的工作流应用程序的构建,教您如何使用PHP。 “ 学习PHP,第1...
  • JSON-LD 和知识图谱

    2021-01-04 16:32:03
    该语法的目的是轻松地集成到已经使用 JSON 的部署系统中,并提供从 JSONJSON-LD 的平滑升级路径。它主要支持在基于 Web 的编程环境中使用关联数据,创建可互操作的 Web 服务,并且能够在基于 JSON 的存储引擎中...
  • 优缺点(1).XML的优缺点(2).JSON的优缺点3.XML和JSON的优缺点对比二、语法格式1、写XML文档1、解析XML2、解析网络XML文件案例3、通过路径快速的查找一个或一组元素4、XStream 的使用,快速的将Java中的对象, 转换为 ...
  • json与xml数据格式

    2019-05-18 14:17:22
    数据交互 浏览器端只是负责用户的交互和数据的收集以及展示,真正的数据都是存储在服务器端的。...因此我们会采用通用的数据交换格式(XML、JSON)来进行数据的交互。 XML 什么是XML XML 指可扩展标记语言(...
  • 提供控制台命令以查找其文件路径或类,以及编辑器快捷方式。 code:path输出与类,服务,模板等相对应的symfony路径。 code:locate查找与类,服务,模板等相对应的文件。 code:class输出服务的类。 code:edit编辑...
  • composer.json 架构

    2015-01-05 02:28:22
    JSON schema 我们有一个 JSON schema 格式化文档,它也可以被用来验证你的 composer.json 文件。事实上,它已经被 validate 命令所使用。 你可以在这里找到它: res/composer-schema.json. Root 包 “root 包”是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,227
精华内容 4,890
关键字:

json路径查找php