问题标签 [php-7.3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
877 浏览

heroku - 部署在 Heroku 中的 Laravel 应用程序中的 FTP 文件上传错误 - 使用未定义的常量 FTP_BINARY

Heroku 的 php 版本是 7.3。当我尝试将任何文件从我的应用程序(部署在 heroku 中)上传到 ftp 时,它会在 FilesystemManager.php 中出现此错误 - Use of undefined constant FTP_BINARY - 假定为 'FTP_BINARY' (这将在 PHP 的未来版本中引发错误)。但是在php版本为7的localhost中,它工作正常。需要做什么来解决这个错误?我在这里看到了一个类似的问题,PHP 7.0.5: Use of undefined constant FTP_BINARY - 假定为 'FTP_BINARY'

但答案适用于 Windows 操作系统,我有点迷失如何在 heroku 云中实现解决方案,即根据接受的答案在 php 版本中打开 ftp。

0 投票
2 回答
2853 浏览

sqlsrv - 无法加载动态库 php_sqlsrv_73_nts_x86.dll 不是有效的 Win32 应用程序

所以我安装php_sqlsrv_73_nts_x86.dllphp_pdo_sqlsrv_73_nts_x86.dll进入我的 ext 文件夹,并将以下行添加到我的 php.ini:

我在运行的每个 php 脚本上都会收到此警告:

我究竟做错了什么?

一些附加信息;

我已经提到了这个Unable to load dynamic library php_sqlsrv_7_nts.dll is not a valid Win32 application但它对我没有帮助

编辑 1,我也尝试在我的扩展中删除 _x86 标记,但这对我没有帮助。

0 投票
1 回答
203 浏览

php - 与 PHP 正则表达式匹配行尾的差异

给定代码:

在 PHP 7.3.2 (XAMPP) 中,我得到了意外的输出

而在PHPFiddle中,在 PHP 7.0.33 上,我得到了我的预期:

谁能告诉我为什么会出现这种差异,7.0.33 之后 REGEX 行为是否发生了变化?

0 投票
0 回答
858 浏览

php - PHP 7.3、Zend 3 框架 - SQLite PDO 连接错误

我刚开始为我的新工作涉足 PHP 和 Zend 3 框架。我想在框架中训练自己,因为这是他们使用的。

我已按照此处的教程进行操作,您将在其中为框架创建模块。在他们的示例中,他们将 SQLite 用于设置任务的简单数据库操作。我的问题就在这里。我已经实现了示例代码,直到我应该首先看到所有专辑都插入到数据库中。那是我收到错误的时候:

文件: .../vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Connection.php:282

信息: Connect Error: could not find driver

公平 - 然后我用谷歌搜索并发现在我的php.ini文件中我必须取消注释该extension=pdo_sqlite行。我已经做到了。我还安装了 packagephp7.3-sqlite包和我能找到的所有东西,这是运行它所必需的。

我没有为此使用 apache 或 nginx,我只是在这个简单的教程中使用 PHP 自己的内置网络服务器。

当我运行我的命令时:php -S me.localhost:1337 -t public public/index.php从我的工作区目录中,我得到:

和:

我检查了我的文件系统和文件路径:/usr/lib/php/20180731/pdo_sqlite.so确实存在。

如您所见,ls -la输出表明文件存在。我真的不知道从这里做什么。我尝试了很多东西,甚至清除了我的 php 安装并只安装了 php 7.3。希望你能帮忙。

0 投票
1 回答
331 浏览

php - 使用 MacPorts PHP-FPM 而不是从构建

我使用 MacPorts 安装apache2,php73php73-fpmMacOS Mojave。我已经更新,.bash_profile以反映新的 MacPorts 路径,如下所示:

.bash_profile通过运行刷新了我的:

运行which phpwhich httpd终端都输出正确的路径:

php -v和runninghttpd -v都表明 MacPorts Apache 和 PHP 正在运行。

但是,我无法切换到php73-fpm我安装的 MacPorts。which php-fpm仍然返回默认的操作系统构建路径:

如何让 MacPortsphp73-fpm运行而不是构建php-fpm

0 投票
1 回答
1741 浏览

php - TCPDF each() 在 PHP 7.3 下是不推荐使用的函数

使用 TDPDF 您可能会遇到错误,错误提示

each() 函数已弃用,fpdi.php 第 562 行出错

0 投票
1 回答
653 浏览

php - empty() 和 isset() 为对象的属性返回不正确的结果 - PHP 7.3、Laravel 5.6

环境: PHP 7.3,Laravel 5.6

问题: empty()当代码在浏览器中isset()运行时返回错误的结果,但在 Tinker 命令行会话中运行时返回正确的结果。


预期行为:

  • isset()true当属性存在时返回,false当它不存在时
  • empty()true当属性存在和不存在时返回nullfalse否则

例子:empty()

!empty总是评估为false,即使$practiceArea->hero_video已设置并且我可以通过echoor看到它的值var_dump

并且empty($practiceArea->hero_video) 总是评估为true,正如我在尝试替代方案失败后了解到的那样:


例子:isset()

isset($practiceArea->hero_video)总是错误地返回false


当前的 Hacky 解决方法:

这完全符合预期 -$video获取 的值,然后如果我们有一个值并且该值是$practiceArea->hero_video,则!empty($video)返回。truefalsenull


Tinker 会话中的预期结果示例:

isset()在 Tinker 中也可以按预期工作:


复制:

我假设我们的PracticeArea类正在使用魔法 getter,因为它扩展了 Laravel 5.6 的Model类,它确实包含__get__isset方法。

下面是删节PracticeArea课。很高兴发布整个内容,但没有与此相关的方法或属性。


var_dump($practiceAreas)

0 投票
3 回答
3485 浏览

homebrew - 安装具有自制软件和 php 7.3 的 ssh2 扩展

尝试ssh2使用 pecl 安装扩展时遇到以下错误:

这是我所做的:

那安装了 php 7.3.3、libssh2 1.8.0 并且无法安装 ssh2-1.1.2。
有没有人有解决这个问题的方法?谢谢!

相关链接:
https ://github.com/docker-library/php/issues/767
为 PHP 安装 PECL SSH2 扩展

0 投票
0 回答
29 浏览

phpstorm - 更新 Ubuntu 后,在 PhpStorm Xdebug 中启用监听器时请求开始挂起

所有设置都正常。我浏览了https://xdebug.org/wizard.php。phpize 匹配。我决定重新安装它。我使用 PHP 7.3 的 phpize 与向导不谋而合。在phpinfo()Xdebug 中显示。php -v也在。更重要的是,在 PhpStorm 中它会捕获连接。

问题是,当我向服务器发送请求时,在侦听器打开的情况下,我的请求没有到达断点,请求只是挂起,没有任何反应。

可能是什么问题呢?有人知道吗?

一般来说,我不知道可能是什么问题。我真的需要你的帮助,帮助谁知道可能是什么麻烦。

  1. 我浏览了来自https://xdebug.org/wizard.php的所有提示
  2. 在 phpinfo() 输出中一切正常。
  3. PhpStorm 设置中的一切似乎也都很好。我没有改变他们,我总是和现在站着的人一起工作。
0 投票
1 回答
1329 浏览

nginx - Laravel & Valet:无法打开流

我正在尝试在 Valet 上设置一个 Laravel 项目。

我收到此错误:

尝试链接项目根目录或/public文件夹会导致上述错误,而不是 Laravel 的默认欢迎屏幕。

我该如何解决这个问题?