我最近尝试通过Composer安装软件包,但是我从一个错误中the requested PHP extension mbstring is missing from your system.
删除了分号php.ini,但它仍然无法正常工作.我该怎么办?
我最近在我的开发服务器上切换到PHP 7,它运行得很好 - 直到现在.
自从我更新到PHP 7.0.3-10+deb.sury.org~trusty+1(今天早些时候)以来,无法再访问utf8_decode和utf8_encode功能.然而,它们是PHP7的早期版本.调用时,会引发致命错误.
我读到这些功能是由mbstring我检查过的扩展程序提供的var_dump(extension_loaded('mbstring'));.
如何让上述功能再次运行?
我在运行phpMyAdmin时遇到问题.当我尝试在浏览器中访问phpMyAdmin时,收到错误消息:"缺少mbstring扩展名.请检查您的PHP配置."
我已经在互联网上搜索了可能的解决方案.据此,我在php.ini文件中做了一些修改.我取消注释了行"; extension = php_mbstring.dll"并在extension_dir中写了ext文件夹的完整路径.可悲的是,它仍然无效.
能帮我找到合适的解决方案吗?
如何在CentOS 6.2上使用PHP安装mbstring
我试过了:
$ sudo yum install php-mbstring
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirror.net.cen.ct.gov
* extras: centos.aol.com
* updates: mirrors.seas.harvard.edu
Setting up Install Process
No package php-mbstring available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)
但没有找到包裹?
按照本教程尝试设置LAMP后,我收到此错误,并且在尝试设置phpmyadmin后发现自己收到了上述错误.
致命错误:在第177行的C:\ WebServer\Apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc中调用未定义的函数mb_detect_encoding()
我按照这里的建议:PHP尝试访问phpmyadmin mb_detect_encoding时出现致命错误,并进行了这些更改.
当我运行时phpinfo(),我看到对MySQL的支持并mb_string启用,如下所示:



每当我尝试输入我的phpMyAdmin时,它都会给我这个错误:
The mbstring extension is missing. Please check your PHP configuration.
Run Code Online (Sandbox Code Playgroud)
我已经在互联网上寻找修复,但我发现的所有错误都与我的相似,但不一样,或完全相同,但没有给出修复.
我也在使用Windows.
我有一堆不是UTF-8编码的文件,我正在将一个站点转换为UTF-8编码.
我正在使用简单的脚本来保存我想要保存在utf-8中的文件,但文件以旧编码保存:
header('Content-type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
$fpath="folder";
$d=dir($fpath);
while (False !== ($a = $d->read()))
{
if ($a != '.' and $a != '..')
{
$npath=$fpath.'/'.$a;
$data=file_get_contents($npath);
file_put_contents('tempfolder/'.$a, $data);
}
}
Run Code Online (Sandbox Code Playgroud)
如何以utf-8编码保存文件?
显然没有mb_trim在mb_*家庭,所以我想实现一个我自己.
我最近在php.net的评论中发现了这个正则表达式:
/(^\s+)|(\s+$)/u
Run Code Online (Sandbox Code Playgroud)
所以,我将通过以下方式实现它:
function multibyte_trim($str)
{
if (!function_exists("mb_trim") || !extension_loaded("mbstring")) {
return preg_replace("/(^\s+)|(\s+$)/u", "", $str);
} else {
return mb_trim($str);
}
}
Run Code Online (Sandbox Code Playgroud)
正则表达式似乎对我来说是正确的,但我是正则表达式的极力菜鸟.这会有效地删除字符串开头/结尾的任何 Unicode空间吗?
我正在尝试yii2在我的Amazon Linux AMI实例上安装,它需要php-mbstring扩展才能工作.
当我试图运行sudo yum install php-mbstring它时返回此错误:
错误:php56-与php-common-5.3.29-1.8.amzn1.x86_64的常见冲突
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
2494 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php-mbstring.x86_64 0:5.3.29-1.8.amzn1 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.29-1.8.amzn1 for package: php-mbstring-5.3.29-1.8.amzn1.x86_64
--> Running transaction check
---> Package php-common.x86_64 0:5.3.29-1.8.amzn1 will be installed
--> Processing Conflict: php56-common-5.6.9-1.112.amzn1.x86_64 conflicts php-common < 5.5.22-1.98
--> Finished …Run Code Online (Sandbox Code Playgroud) 我正试图在CentOS 5.3 VMware"盒子"上安装indefero,我遇到了一个问题.在安装的早期,我得到一个错误,我已经能够缩小到这个范围:
[root@code /var/www/html]# cat x.php
<?php
mb_internal_encoding("UTF-8");
?>
[root@code /var/www/html]# php x.php
PHP Fatal error: Call to undefined function mb_internal_encoding() in
/var/www/html/x.php on line 2
Run Code Online (Sandbox Code Playgroud)
通过Apache通过http调用此脚本时出现相同的错误.现在根据PHP手册,mb_internal_encoding函数应该是PHP 5中的内置函数.
我有CentOS 5.3 i386(Linux代码2.6.18-53.1.21.el5#1 SMP Tue May 20 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux),我安装了PHP 5.2.9.
[root@code /var/www/html]# php -v
PHP 5.2.9 (cli) (built: Jul 8 2009 06:03:36)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
我仔细检查过:selinux已被禁用(暂时).
我该如何解决?
mbstring ×10
php ×10
phpmyadmin ×2
utf-8 ×2
amazon-ec2 ×1
centos ×1
composer-php ×1
dependencies ×1
encoding ×1
iconv ×1
linux ×1
multibyte ×1
regex ×1
unicode ×1
yii2 ×1