• [问题求助] composer 安装后php SDK 下载的目录找不到
    【功能模块】composer  php SDK 安装【操作步骤&问题现象】1、composer require huaweicloud/huaweicloud-sdk-php:3.0.54-rc 安装完成后如下图:1  图:2  代码中的依赖库 sdk 文件加载不上HuaweiCloud\SDK\ 这个文件夹加载不上是哪里没有配置好吗?【截图信息】图:1图:2【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【华为云DWS】【ODBC】PHP ODBC连接公有云上的DWS数据库怎么操作啊
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 有人懂php吗
    求助
  • [新手课堂] PHP基础语法1
    ### php标签 php常用标签如下: ?php //这里写php代码 ?> 以上方式是php最常见的使用标签方式。 PHP脚本标签 以上这种方式也是可以的。但是不推荐使用,因为这种方式通常是用来写javascript代码的。 短标签方式 ? //php代码 ?> 以上这种短标签方式也是可以的,但是现在php默认已经不支持了,即要想使用这种短标签方式需要在php的配置文件(php.ini)中找到 short_open_tag = Off //默认这里是关闭 更改为short_open_tag = On 重启服务就可以使用这种短标签方式了。如果是用的一些集成环境 比如:phpstudy 可能默认就已经开启了这种短标签方式。 ### php注释 PHP注释有两大类:单行注释和块注释(多行) 单行注释有两种 双斜杠:// ​ //输出hello world 井号:# ​ \#输出helloworld 块注释:/* 注释内容 */ ​ /* 这里是注释 以下内容是某个业务逻辑 */ 块注释通常在函数(方法)的地方使用,形式如下 ``` /*`` ``* 函数功能`` ``* @param 参数解释`` ``* @return 返回值解释`` ``*`` ``* @author,作者`` ``* @2014-8-10`` ``*/ ``` 注意:PHP在解析PHP代码的时候,会跳过注释,不会保留注释信息。 要求:以后大家写的代码,必须要有注释。凡是有业务逻辑的地方,都必须使用注释详细说明。 ## PHP变量 ## 变量:可以变化值的东西 ### 定义变量 语法:$变量名 ​ $name ​ $school_number ​ $age1 ​ $age2 ​ $3a = 'variable' //报语法解析错误!不合法变量!变量不能以数字开头! 变量命名规则 \1. 必须以$符号开始 \2. 变量名可以由字母,下划线和数字自由组合 \3. 不能以数字开头 \4. 可以是中文 \5. 变量命名通常需要见名之意 \6. 变量名字有多个单词组成的时候,可以使用两种方式 a) 驼峰法:schoolName b) 下划线:school_name \7. php中变量一般是在定义的时候就赋值 ## 常量 ## 一旦被定义,就不能被修改,只能被使用的“量”叫做常量。 语法如下: define('常量名',常量值); 常量使用的语法:直接使用常量名 常量的使用 1.某个值不需要变化的时候。某些数学常量如π 2.用于整个网站使用。 3.凡是能使用常量去做的事情都可以使用变量去替代。常量是用来规范数据保证数据不被修改。 常量命名规则 \1. 常量不能使用$符号 \2. 其他命名规则与变量基本一致 \3. 常量命名通常使用全部大写字母,多单词的常量都是使用下划线方式。 \4. 常量与变量一样都区分大小写 常量不能被修改和删除 PHP脚本执行结束后内存是如何处理的? 1.什么叫做PHP脚本执行结束? 指的是当PHP引擎将用户请求的某个PHP脚本文件(index.php)的最后一行PHP代码执行完毕,称之为脚本执行结束。 2.脚本结束后内存如何处理? PHP脚本所占用的所有内存都会被释放,被操作系统回收。 ## 数据类型 数据类型是针对各种(变量)的值而言,而不是针对变量本身。 PHP有三大数据类型:标量,复合,特殊 标量数据类型(简单数据类型) 整型:int或者integer,整数,包括正整数,负整数和0 $num = 5; //说num变量的数据类型,其实指的是num变量所指向的值5的数据类型 整型在系统内存中占4个字节保存数据。 PHP还支持定义其他进制:八进制和十六进制 八进制:数值以0开始,后面跟八进制序列 $num = 011; //十进制9 十六进制:数值以0x开始,后面跟十六进制序列 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f $num = 0x11; //十进制17 浮点型:float,double,精度 通常,float占用4个字节保存数据,单精度,表示7个精度 double占用8个字节保存数据,双精度,表示15个精度 实际上PHP中float也是占用8个字节保存数据。 $float = 1.0; //普通的带小数的浮点数 $float = 2.3e3;//科学计数法保存的浮点数 因为浮点数会丢失精度,所以通常不用浮点数比较大小。 什么情况下使用浮点型?什么情况下使用整型? 一般对于精度要求不是那么高的,但是数值又非常大的可以使用浮点数,其他情况下基本都不使用。 时间戳:从1970年到当前时间的秒数称之为时间戳(格林威治时间) PHP提供了一个函数:time()获得时间戳 PHP用来保存时间都是使用时间戳来处理,date函数可以将时间戳转化成时间 字符串:string,凡是带引号包好的字符都可以称之为字符串 PHP中字符串的表示方式有三种:单引号,双引号,定界符 //定界符这里暂时先不记录 单引号:将字符串用单引号包裹起来 双引号:将字符串用双引号包裹起来 单引号和双引号的区别? 区别有两点: 1. 双引号中能够使用更多的转义字符\r\n\t单引号:\' 双引号:\"\r\n\t 2. 双引号中能够解析PHP变量 布尔:bool和Boolean,布尔类型只有两个值true和false 哪些数据会被当做FALSE处理? 需要通过比较的形式来判断是否为false 0:整型0 0.0:浮点0 '0':字符串0 null:空 '':空字符串 复合数据类型:数组和对象 特殊数据类型如下: NULL:定义的变量的值为NULL或者变量被删除 资源:所有外部数据的操作全部称之为资源类型数据 如PHP操作数据库中,mysql_connect连接成功返回的一个结果称之为资源(连接资源) ## 系统预定义变量 系统定义的变量称之为预定义变量,预定义变量有9个 如下所示: $_POST:接收用户表单post方式提交的所有数据 $_GET:接收用户表单get方式提交的所有数据 $_REQUEST:接收用户get方式,post方式提交的数据,还有cookie数据 $_FILES:接收用户上传的文件信息 $_SESSION:存放session数据(存放在服务器) $_COOKIE:存放cookie数据(存放在浏览器) $GLOBALS:全局变量 $_SERVER:保存服务器信息 $_ENV:保存系统环境信息 ## 系统预定义常量 PHP_OS:操作系统内核 PHP_VERSION:当前PHP的版本 PHP_INT_SIZE:int类型所占的字节数 PHP_INT_MAX:int类型能表示的最大值 魔术常量:可以自动变化的常量 如下所示: __FILE__:当前脚本的文件路径(绝对路径) __LINE__:当前所在的行数 __DIR__:当前脚本所在的目录(PHP4以后才有) __FUNCTION__:当前函数的名字 __METHOD__:当前方法的名字(类中的函数) ## 可变变量 什么是可变变量? 通过一个得到一个变量的值,将该值再次当做一个变量名从而得到另外一个变量的值。 可变变量demo案例如下: ```shell //可变变量``$name` `= ``'张三疯'``;``$myname` `= ``'name'``;` `echo` `$``$myname``; ``//$myname的值为name name和前边的$符合组合成$name 最终输出上面$name的值为:张三疯 ``` ## 传值 变量间的赋值 变量间的传值分为两种:值传递和引用传递 值传递:将一个变量的值赋值一份,然后赋值给新的变量 传值demo: ```shell //普通传值``$a` `= 1;``//在变量空间开辟一块内存空间存1 存放1之后 会给1分配一个内存地址 假设改内存地址为1001 此时$a指向的内存地址为1001` `$b` `= ``$a``; ``//将$a的内存地址得到,复制出来一份 假设新地址还是1001 此时变量$b指向的内存地址是新复制出来的1001` `unset(``$a``); ``//删除$a之后 只是把一开始$a指向的1001的地址给删掉,$b指向的新的内存地址1001并不受任何影响` `echo` `$b``; ``//所以这里会输出:1 ``` 值传递特点:一个变量的变更不会影响另外一个变量的变更,因为每一个变量指向的内存地址是不一样的,注意:每一个内存地址都指向的值是不同的。 引用传递:将一个变量的地址赋值给新的变量 在给变量赋值的时候,使用地址符号&获得一个变量的地址。 引用传值demo ```shell //传地址``$str` `= 10; `` //内存空间开辟一块内存存放10 随机给10分配了一块内存地址 假设改地址为:10086 $str指向10086这个地址` `$str2` `= &``$str``; `` //$str2的值是引用了$str的内存地址,也就是说 $str2也是指向了$str的内存地址 即10086 此时$str和$str2指向同一个内存地址` `$str2` `= 110;`` //$str2指向的内存地址对应的值改为110之后,所以$str的值也会变成110,因为$str和$str2是指向的同一个内存地址,也就是说更改了其中任何一个变量的值 那么另外的变量的值也会跟着被改变` `echo` `$str``;`` //所以这里输出:110 ```
  • [问题求助] 【SDK for PHP】composer 安装报错
    composer require obs/esdk-obs-php Using version ^3.21 for obs/esdk-obs-php ./composer.json has been updated Running composer update obs/esdk-obs-php Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires obs/esdk-obs-php ^3.21 -> satisfiable by obs/esdk-obs-php[3.21.6]. - obs/esdk-obs-php 3.21.6 requires guzzlehttp/guzzle 6.3.0 -> found guzzlehttp/guzzle[6.3.0] but it conflicts with your root composer.json require (^7.0.1). Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions. Installation failed, reverting ./composer.json and ./composer.lock to their original content.这个问题存在好久了,好多新项目中使用不了SDK,麻烦尽快升级下 guzzlehttp/guzzle 版本吧!
  • [问题求助] 鲲鹏服务器安装PHP5.4时无法加载ZendGuardLoader
    【功能模块】【操作步骤&问题现象】安装PHP5.4,安装对应ZendGuardLoader后,PHP找不到ZendGuardLoader路径;更换PHP5.5版本,依然如此。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] PHP依赖包
    用:composer require huaweicloud/huaweicloud-sdk-php:3.0.41-rc时报如下错误./composer.json has been createdRunning composer update huaweicloud/huaweicloud-sdk-phpLoading composer repositories with package informationUpdating dependenciesYour requirements could not be resolved to an installable set of packages.  Problem 1    - Root composer.json requires huaweicloud/huaweicloud-sdk-php 3.0.41-rc, found huaweicloud/huaweicloud-sdk-php[dev-master, 3.0.1-beta, ..., 3.0.39-rc] but it does not match the constraint.Installation failed, deleting ./composer.json.
  • [问题求助] 电脑win10下载PHP依赖包不成功
    【功能模块】【操作步骤&问题现象】1、电脑win10下载PHP依赖包不成功2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【welink】【回调】能否提供php版本的回调加密、解密算法啊
    【功能模块】welink回调【操作步骤&问题现象】1、回调的加密和解密算法说明太简单了,看不懂具体步骤和具体参数,能否提供详细说明,或者提供php版本的算法代码示例如果能直接提供完整的sdk则是更加美好的事情
  • [技术干货] datax 搭建指南
    ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646988067652978089.png) # 1 软件介绍 MCrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。 MCrypt基于libMCrypt,但libMCrypt自2007年开始没再继续维护,所以mcrypt拓展从PHP7.2之后删除。 # 2 环境配置 硬件配置 ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646987818494254135.png) 软件配置 ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646987804895864481.png) # 3 软件安装 ## 3.1 依赖安装安装 ### 3.1.1 Yum源安装依赖。 yum install –y make gcc-c++ gcc ## 3.2 LibMCrypt编译安装 ### 3.2.1 下载并解压LibMCrypt v2.0.15 wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8 ### 3.2.2 配置编译选项。 ./configure --build=arm ### 3.2.3 编译安装。 make -j96 && make install # 4 软件运行 ## 4.1 运行测试 ### 4.1.1 运行自带的测试套 make check # 5 其他 参考文档: https://blog.csdn.net/nianyixiaotian/article/details/82706927
  • [技术干货] IIS PHP fastcgi模式 pathinfo取值错误任意代码执行漏洞修复方法
    描述:目标存在任意代码执行漏洞。漏洞形成原因:PHP默认配置有误,IS+PHP fastcgi模式在解析PHP文件时存在缺陷,导致任意文件会被服务器以PHP格式解析,从而导致任意代码执行。验证方式:打开目标页面后在原URL后添加/test.php示例:在http://www.xxx.com/123.jpg后输入/test.php并回车,使用抓包工具查看响应头信息,如果包含PHP/x.x.x即可证明漏洞存在。部分浏览器免费抓包工具:360浏览器:工具-->开发人员工具IE浏览器:工具-->F12开发人员工具Firefox:搜索下载Firebug插件-->F12呼出Chrome:点击右上角的菜单-->工具-->开发者工具危害:攻击者可以利用该漏洞直接在网站执行任意代码,可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。最近360提示这个IIS+PHP fastcgi模式 pathinfo取值错误任意代码执行漏洞,这里根据提示修复了漏洞,具体方法如下以下是360给出的解决方案一、更换PHP默认的Fastcgi模式为ISAPI模式(只能运行于Windows环境)1.下载PHP的ZIP文件包,下载地址http://www.php.net(注意版本要对应)2.将sapi目录中的:php4isapi.dll复制到c:\php目录中3.进入虚拟主机管理平台的"网站管理"-"虚拟主机"--服务器设置中,修改PHP的影射,将原来的:.php,C:\PHP\php.exe,5,GET,HEAD,POST,TRACE|改成:.php,C:\PHP\php4isapi.dll,5,GET,HEAD,POST,TRACE|4.(IIS 6才需要)打开IIS管理器,点击Web服务扩展,点击php的属性,“要求的文件”---添中--选中“C:\PHP\php4isapi.dll”,确定后,PHP就可以调用。 脚本之家小编评语:一般不建议变更为ISAPI模式,效率很低.2003 php5.2.17可以使用isapi方式,2008 则建议直接修改php.ini配置文件把cgi.fix_pathinfo值改为0 就行了.二、在条件允许的情况下(咨询网站工程师),更改php.ini中的配置参数cgi.fix_pathinfo值为0建议用这个,但需要用服务器管理权限的,一般是vps或主机脚本之家小编评语:推荐这种方式,不论iis还是apache、nginx都很方便三、针对iis的解决方案此处客户的环境是windows server 2008R2的IIS,这里我在‘处理程序映射’里找到php的双击进入此界面进入‘请求限制’确定后就可以了。测试:在服务器上根目录新建一个phpinfo()的JPG文件test.jpg,访问http://www.xxx.com/test.jpg/1.php(test.jpg后面的php名字随便写),如果有漏洞则可以看到phpinfo()的信息,反之会返回404错误。四、使用360网站卫士Nginx pathinfo取值错误任意代码执行漏洞漏洞形成原因:由于Nginx默认配置有误,从而导致了一个任意代码执行漏洞.受影响版本:nginx 0.5.*nginx 0.6.*nginx 0.7 <= 0.7.65nginx 0.8 <= 0.8.37危害:黑客可以利用该漏洞直接在网站执行任意代码,从而有可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。解决方案:升级Nginx至最新版本,官方网站:http://nginx.org/ 。转载自https://www.jb51.net/hack/552161.html
  • [问题求助] php安装问题
    我现在购买了鲲鹏服务器centos7  for arm 系统,想安装PHP5.6到7.0 版本的服务,需要如何安装,按照网上的方法都不能成功,只能yum安装默认的PHP5.4版本?是否有其它的yum安装方式?或者能把5.4的版本升级到需要版本?
  • [技术干货] 有用php做SparkRTC接入鉴权的吗?
    static String hmacSha(String KEY, String VALUE, String SHA_TYPE) { try { SecretKeySpec signingKey = new SecretKeySpec(KEY.getBytes("UTF-8"), SHA_TYPE); Mac mac = Mac.getInstance(SHA_TYPE); mac.init(signingKey); byte[] rawHmac = mac.doFinal(VALUE.getBytes("UTF-8")); byte[] hexArray = { (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' }; byte[] hexChars = new byte[rawHmac.length * 2]; for (int j = 0; j rawHmac.length; j++) { int v = rawHmac[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; } return new String(hexChars); } catch (Exception ex) { throw new RuntimeException(ex); } } 用php怎么写?
  • [问题求助] php版本sdk的扩展依赖问题,能否提升一下相关依赖扩展版本
    php版本sdk需要以下扩展"require" : { "php" : ">=5.6.0", "guzzlehttp/guzzle" : "6.3.0", "guzzlehttp/psr7" : "1.4.2", "guzzlehttp/promises" : "1.3.1", "psr/http-message" : "1.0.1", "monolog/monolog" : "1.23.0", "psr/log" : "~1.0"},但是guzzlehttp monolog版本都过低,我开发程序是使用了其他的sdk用于微信支付,支付宝支付,腾讯地图等等都用了guzzle,他们允许使用的版本都相对高一些,比如>=6.3.0或者>7.0,但咱的guzzle只能用6.3.0的版本,导致我因为版本依赖问题,无法安装obs的sdk为了使用obs,我只能强行降低guzzle版本,但是有可能导致我其他扩展无法正常使用,还需要去重新测试我的程序,带来很大的不便
  • [技术干货] Php 和ODBC数据库
    创建 ODBC 连接通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。这是创建到达 MS Access 数据库的 ODBC 连接的方法:在控制面板中打开管理工具图标。双击其中的数据源(ODBC)图标。选择系统 DSN 选项卡。点击系统 DSN 选项卡中的添加。选择Microsoft Access Driver。点击完成。在下一个界面,点击选择来定位数据库。为数据库起一个数据源名(DSN)。点击确定。请注意,必须在您的网站所在的计算机上完成这个配置。如果您的计算机上正在运行 Internet 信息服务(IIS),上面的指令将会生效,但是如果您的网站位于远程服务器,您必须拥有对该服务器的物理访问权限,或者请您的主机提供商为您建立 DSN。连接到 ODBCodbc_connect() 函数用于连接到 ODBC 数据源。该函数有四个参数:数据源名、用户名、密码以及可选的指针类型。odbc_exec() 函数用于执行 SQL 语句。实例下面的实例创建了到达名为 northwind 的 DSN 的连接,没有用户名和密码。然后创建并执行一条 SQL 语句:$conn=odbc_connect('northwind','','');$sql="SELECT * FROM customers";$rs=odbc_exec($conn,$sql);取回记录odbc_fetch_row() 函数用于从结果集中返回记录。如果能够返回行,则函数返回 true,否则返回 false。该函数有两个参数:ODBC 结果标识符和可选的行号:odbc_fetch_row($rs)从记录中取回字段odbc_result() 函数用于从记录中读取字段。该函数有两个参数:ODBC 结果标识符和字段编号或名称。下面的代码行从记录中返回第一个字段的值:$compname=odbc_result($rs,1);下面的代码行返回名为 "CompanyName" 的字段的值:$compname=odbc_result($rs,"CompanyName");关闭 ODBC 连接odbc_close() 函数用于关闭 ODBC 连接。odbc_close($conn);ODBC 实例下面的实例展示了如何首先创建一个数据库连接,接着创建一个结果集,然后在 HTML 表格中显示数据。<html><body><?php$conn=odbc_connect('northwind','','');if (!$conn){    exit("连接失败: " . $conn);}$sql="SELECT * FROM customers";$rs=odbc_exec($conn,$sql);if (!$rs){    exit("SQL 语句错误");}echo "<table><tr>";echo "<th>Companyname</th>";echo "<th>Contactname</th></tr>";while (odbc_fetch_row($rs)){    $compname=odbc_result($rs,"CompanyName");    $conname=odbc_result($rs,"ContactName");    echo "<tr><td>$compname</td>";    echo "<td>$conname</td></tr>";}odbc_close($conn);echo "</table>";?></body></html>
总条数:150 到第
上滑加载中