我的PHP应用程序具有要求,包括" MySQL 5.7+或Mariadb 10.2+ ".我该如何确定这些选择中的哪个? 我知道如何比较版本号,也知道从数据库中获取版本号,但我不知道如何确定它是哪种数据库. 我尝试了 select version() 仅返回版本编号和服务器OS信息,但不返回数据库类型. 解决方案 在VARIABLES中查看aria_block_size.它的存在几乎可以肯定意味着某种版本的Mariadb和不是Mysql,也不是Percona. (至少在不久的将来.) version的开始部分: " 5.7"和" 8.0"表示mysql或percona;它不会暗示Mariadb. " 10.2"意味着Mariadb; MySQL和Percona长时间到达" 10"不太可能. 您需要什么功能? Percona有可能在来自MySQL之前从Mariadb 10.2进行改造. 即使version是5.1.53-rel11.7
以下是关于 version 的编程技术问答
我有Ubuntu 12.04 LTS"精确",PHP 5.3.10(来自APT-GET),Fresh Phpbrew 1.17.2和php 5.4.35使用Phpbrew安装.但它仅适用于CLI. $ php -v # 5.3.10-1ubuntu3.11 $ phpbrew install 5.4.35 +default +fpm $ phpbrew switch 5.4.35 $ nginx -s reload $ service php5-fpm restart $ php -v // PHP 5.4.35 $ curl -IL example.com | grep Powered # still 5.3.10-1ubuntu3.11 ! Why? 我尝试了从BRER中尝试的新FPM绑定到另一个PID /var/run/php54-fpm.pid并重新配置fastcgi_pass unix:/var/run/php54-fpm.pid;>的某些服务器. $ phpbrew
在每个版本的PHP中,都添加了一些新功能并停止了某些功能. 示例: 将需要PHP 5.4.0及以上,因为Hex2bin在PHP 5.4.0中引入. 对于PHP代码中使用的每个内置功能,在PHP.NET中手动检查版本依赖性是很乏味的.是否需要任何自动化/半自动化方法来识别执行任何给定的PHP代码的最低版本(以及最大版本(如果适用))? 解决方案 查看phpCompatibility project: https:/https://github.com/wimg/phpcompcompatible 这可以测试您的代码与5.2、5.3、5.4和5.5(撰写时的alpha2) 其他解决方案 不知道是否需要检查PHP WICH版本,但是您可以使用" function_exists"来查看您的版本PHP是否具有该函
我正在使用此代码来检测用户的操作系统: 'windows nt 10.0', 'Windows 8.1 (Windows NT 6.3)' => 'windows nt 6.3', 'Windows 8 (Windows NT 6.2)' => 'windows nt 6.2', 'Windows 7 (Windows NT 6.1)' => 'windows nt 6.1', 'Windows Vista (Windows NT 6.0)' => 'windows nt 6.0', 'Windows Server 2003 (Windows NT 5.2)' => 'windows nt 5.2', 'Windows XP (Windows NT 5.1)' => 'windows nt 5.1', 'Windows 2000 sp
所以我有一个脚本需要在多个站点上运行.我有一个脚本的一个版本,它已通过一些新的PHP 5.3功能进行了优化,但是有些网站是5.2等. . 此代码: if (version_compare(PHP_VERSION, '5.3.0') >= 0) { Do the optimised 5.3 code (Although 5.2 throws syntax errors for it) } else { do the slower version of code } 但是,在5.2服务器上,它将在第一个条件中检测到"语法错误",即使从技术上讲应该跳过该内容,我知道PHP仍在扫描整个文件. 如果完全完全忽略第一个(我知道我可以使用"@"来忽略错误,但这感觉就像作弊?) 解决方案 您可以根据版本包含不同的脚本,那么该版本中永远不会包含在5.2中的语法脚本. if (version_compare(PHP_VERSION, '5.3.0') >= 0)
当我使用匿名函数时(但另请参见下面的注释)如下: $f = function() use ($out) { echo $out; }; 它在PHP年龄大于5.3.0的服务器上产生解析错误. 我的软件需要与未知服务器兼容,但是与此同时,我也想使用新功能,因此我认为我会添加某种版本检查, if (o99_php_good() != true){ $f = function() use ($out) { echo $out; }; } 其中o99_php_good()简单 function o99_php_good(){ // $ver= ( strnatcmp( phpversion(),'5.3.0' ) >= 0 )? true:false; $ver= ( version_compare(PHP
我惊讶地发现,当我的开发框运行5.3.x时,我的许多托管站点仅支持5.1.6.这是一个巨大的失望,因为我一直在使用名称空间(5.3+)和其他似乎很棒的功能,即使不是严格必要的. 无论如何,当编写设计为便携式的代码(例如:WordPress等流行平台的插件)时,我应该针对哪种版本的PHP来定位,该版本是基于大多数Web主机支持的最低版本. 有人知道吗?怎么能找到答案? 解决方案 检查 http://w3techs.com/technologies/details/pl-php/all/all 强>出去. 它包含许多PHP统计数据. 截至2012年12月12日, 版本5均由所有使用php的网站的96.4%使用. 版本5.3均由所有使用PHP版本5 的网站的42.3%使用 版本5.2均由所有使用PHP版本5 的网站的52.8%使用 其他解决方案 我的Godaddy托管帐户持续了5.2.17.如果您希望代码是可移植的,那么我将使用5.0功能的一般基准
我正在尝试使用PHP SDK v4.0来获得页面管理的长期访问令牌. 我正在从用户的登录名中获取访问令牌(是的,我正在抓取特定于页面的访问令牌).然后将其发送到文档中指定的端点,但我没有得到任何结果,也没有遇到任何错误. 我可以知道要使用的正确代码段是什么? 这是我到目前为止使用的代码 $endpoint = '/oauth/access_token?'; $endpoint .= 'grant_type=fb_exchange_token&'; $endpoint .= 'client_id='.$this->app_id.'&'; $endpoint .= 'client_secret='.$this->app_secret.'&'; $endpoint .= 'fb_exchange_token='.$access_token; try { $response = (new FacebookRequest(
我们在Symfony2框架之上构建了Web应用程序. 现在,我们需要在前端显示我们软件的当前版本,以便用户查看.版本编号当前是Git存储库中的标签. 现在是实现这一目标的最佳实践?作曲家文档劝阻composer.json composer.json composer.json 的版本字段的使用/p> Symfony本身似乎在app/bootstrap.php.cache文件中设置了版本字符串: const VERSION ='2.7.6'; 这个问题有什么最佳做法吗?有没有办法直接访问git标签名称?还是我应该使用常数或composer.json方式? 解决方案 您可以尝试 dodenting-bundle-bundle .从他们的文档: 将其他参数添加到您的参数.yml文件并将其保留 与您当前的应用程序版本内联. 基本版本处理程序 为手动和git标签版本实施 其他解决方案 在此示例中,您可以做所有事情: \Symfony\Comp
让我们假设我们有一个带有依赖项的PHP项目 a 和 b 每个都取决于php库 x ,但在不同的版本中./p> 通常,人们会使用PHP依赖管理器,例如作曲家,它可以通过在 x 中包括 a 和 b的版本中解决这一冲突. 或如果无法解决冲突,请显示错误. 现在,许多PHP应用程序允许其用户仅通过上传预捆绑软件包并将其提取到特定的插件目录来安装插件. 如果 a 和 b 是这样的预捆插件,并且两个都会带来自己的库 x ,我们可能会遇到问题由于没有依赖管理器可用于为我们选择兼容 x 或显示错误,以防万一. 为防止PHP无法使库 x 在同一名称空间中加载两次的任何此类冲突,我们可以将 a 's x 和 b 's x 进入不同的名称空间(这可能很难自动做到,因为我们需要PHP解析器...) . 我的问题是: 您将如何解决这个问题?您可以推荐这种方法还是有更好的解决方案? 解决方案 没有更改代码就没有解决方案.如果文件系统中确实存在两个版本的" \ vendor \
我不想在命令提示符(php artisan --version)中检查我的laravel版本,但在视图本身中. 这样: 在视图中: {{ $laravel_version }} 有人知道我该怎么做吗?也许是不可能的..? 解决方案 $laravel = app(); $version = $laravel::VERSION; 其他解决方案 这是在Command Explorer中查看Laravel版本的方式: php artisan --version 其他解决方案 这是从文件夹手动检查它的最简单方法 转到项目文件夹 d:\ xampp \ htdocs \ your-project-folder \ vendor \ laravel \ framework \ src \ src \ iLlumina
是否有任何方法可以获取我可以使用 phpinfo()找到直接从代码获得该值的任何其他方法. 我试图在最后几个小时找到解决方案,但这是没有希望的. 到目前为止,我可以在变量中获得完整的phpinfo()输出,并从那里拉出PCRE版本/发布日期,但我想知道是否可以更轻松地解决方案? 解决方案 我认为 ReflectionExtension ReflectionExtension 班级是为此做的,尽管我似乎无法直接从中获得版本(getVersion() 返回null ).此确实有效但是: $pcreReflector = new ReflectionExtension("pcre"); ob_start(); $pcreReflector->info(); $pcreInfo = ob_get_clean(); // Version and release date can be parsed from here 您仍然必须对其进行解析,但至少它只是相关部分,而不
我已经安装了ZF3.但是我在一家仅使用ZF2的公司工作,我也必须能够使用学说.由于版本3无法使用学说,因此我必须降级它或安装旧版本. 但我看不到该怎么做,因为 http://framework.zend.zend.com/download/档案不再存在了吗? 我尝试使用composer install并将Composer.json更改为: { "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "repositories": [ { "type": "composer", "url":
我为我的PHP项目制作了一个备份文件,然后卸载旧xampp(php 5.x.x).之后,我尝试安装最新的xampp version(php 7.0.1),并将备份文件从旧的XAMPP中放入新的XAMPP,包括其数据库(包括其数据库).问题是,当我尝试运行旧文件时,我会遇到很多错误.似乎有很多代码已过时,这是新的PHP版本.再次运行旧文件的最佳方法是什么?我想我可能会重新安装旧的XAMPP,但我也想使用最新的PHP版本.理想的事情是什么?我已经阅读了一些文章,但是我没有找到有关此的明确解释.请帮助. 解决方案 我找到了一种解决方案,可以快速将PHP版本从 5.6 , 7.0 和 7.1 中,只有一个XAMPP安装. 我目前正在使用它在Windows的本地开发而没有问题,数据库保持不变,并且Apache httpd-vhosts.conf 配置文件:这允许快速更改PHP版本很容易. 从官方Apachefriends网站下载 Windows Portable版本的XAM
我正在尝试创建一个PHP脚本以从Android APK文件中获取应用程序版本. 从APK(zip)文件中提取XML文件,然后解析XML是一种方法,但我想这应该更简单.诸如 php手册,示例#3. 有什么想法如何创建脚本? 解决方案 如果您在服务器上安装了Android SDK,则可以使用PHP的EXEC(或类似)执行aapt工具(in $ANDROID_HOME/platforms/android-X/tools). $ aapt dump badging myapp.apk ,输出应包括: package: name='com.example.myapp' versionCode='1530' versionName='1.5.3' 如果您无法安装Android SDK,无论出于何种原因,您都需要解析Android的二进制XML格式. apk zip结构内的AndroidManifest.xml文件是不是纯文本. 您需要移植从Java到Php. 其他
正确的方法是处理2.4或2.4.0.9等的版本控制指标. php说,1.3.4不是一个有效的整数,而是一个非valid号码. array('2.4','2.3.4','2.4.0.9') 解决方案 php具有 version_compare 函数.使用 usort 对其进行排序.喜欢以下. :) $a = array('2.4','2.3.4','2.4.0.9'); usort($a, 'version_compare'); 其他解决方案 或,只需使用 >: $array = array('2.4','2.16.6','2.3.4','2.4.0.9'); natsort($array); print_r($array); #Array ( [2] => 2.3.4 [0] => 2.4 [3] => 2.4.0.9 [1] => 2.16.6 ) 其他解决方案 将其存储为字符串,您可以使用 version_compare() 函数: $v
我只是试图从Windows命令键入中知道我的PHP版本, C:\> php -v 但这是行不通的.它说php is not recognized as internal or external command. 解决方案 在命令提示符下方类型下方 set PATH=%PATH%;C:\path\to\php 其中c:\ path \ to \ php是您php.exe文件所在的文件夹.此次运行 C:\>php -v 您会看到 之类的东西 PHP 7.3.6 (cli) (built: May 29 2019 12:11:00) 更新: 如果您发现重新启动计算机时,此解决方案将不再起作用: 设置路径如下: 步骤1 - 单击Windows图标 步骤2 - 单击Settings图标 步骤3 - 单击System 步骤4 - 单击About 步骤5 - 单击System info 步骤6 - 单击Advance
我在本地机器上使用php 5.3.在我们的网络服务器上,我们有php 4.8.我们的服务器是共享服务器.因此,我想通过.htaccess文件更改服务器上的PHP版本.有可能吗?如果是,该怎么做? 解决方案 切换到PHP 4.4: AddHandler application/x-httpd-php4 .php 切换到PHP 5.0: AddHandler application/x-httpd-php5 .php 切换到PHP 5.1: AddHandler application/x-httpd-php51 .php 切换到PHP 5.2: AddHandler application/x-httpd-php52 .php 切换到PHP 5.3: AddHandler application/x-httpd-php53 .php 切换到PHP 5.4: AddHandler application/x-httpd-php5