1. PHP怎么处理移动端提交的表情字符
需设置 mysql 的字符集为 utf8mb4
在实行sql server 向 mysql 迁移数据时,报错:
Incorrect string value: '\xF0\x9F\x98\x8A'
原因是 采用的是 utf8 的字符集,而该字符集最多占用三个字节,而一些 表情 需要占用 4个字节,所以需要将 utf8 改成 utf8mb4。
原始配置为:
#mysql 5.5 新增参数
character_set_server=utf8
collation_server=utf8_bin
我将 character_set_server=utf8 改为:character_set_server=utf8mb4,重启mysql 却报错:
发生系统错误 1067 进程意外终止
但是查看错误日志,却没有显示是什么错误信息。有倒腾了一会儿,想到是不是 collation_server 也要修改成 utf8mb4_bin,测试的结果果然如此。
所以要注意在将 MySQL字符集 utf8 改为 utf8mb4 时,一定要注意 collation_server 也要同时修改!
干脆将 default-character-set=utf8mb4 也改成了算了。
最后的字符配置如下:
[mysql]
default-character-set=utf8mb4
init_connect='set names utf8mb4'
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_bin
修改之后,启动成功。
2. 如何用PHP匹配并替换iOS标准的emoji表情符号
sybase_connect连上数据来库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数函源数种类: 数据库功能 本函数用来打开与 Sybase 数据库的连接。
参数 servername 为欲连上的数据库服务器名称。
参数 username 及 password 可省略,分别为连接使用的帐号及密码。
使用本函数需注意早点关闭数据库,以减少系统的负担。
连接成功则返回数据库的连接代号,失败返回 false 值。
3. 需要用PHP在图片上生成用户的昵称,但是昵称有符号表情,怎么把符号表情也生成显示到图片上
昵称水印实现了吗,符号加上去一样的实现方法。
php.水印照片,搜搜代码粘贴一下
祝您生活愉快天天开心,工作顺利
4. 求php正则替换 表情符号转换为图片
<?php
$arr1 = array(
'{s:1}',
'{s:2}',
...,
'{s:22}',
);
$arr2 = array(
'http://127.0.0.1/face/1.gif',
'http://127.0.0.1/face/2.gif',
...,
'http://127.0.0.1/face/22.gif',
);
$msg = '{s:2}{s:12}太好了';
$msg = str_replace($arr1, $arr2, $msg);
echo $msg;
// 用 str_replace,比正则快。因为你要替换的内容都是预告知道的,可控的,所以用这种方式最好
5. 想在微信公众平台开发者模式的自动回复里加入emoji表情,需要什么PHP方法来处理
用软银版的emoji,如雪人的小图标,“\ue048”
公众号PHP编写的接口文件,回复“\ue048”是不行的。专需要转码,属
//content
unicode2utf8("\ue02d");
//转码函数
function unicode2utf8($str) { // unicode编码转化,用于显示emoji表情
$str = '{"result_str":"' . $str . '"}'; // 组合成json格式
$strarray = json_decode ( $str, true ); // json转换为数组,利用 JSON 对 \uXXXX 的支持来把转义符恢复为 Unicode 字符
return $strarray ['result_str'];
}
6. PHP替换表情
$str = preg_replace("/\[支持\]/","<img src ='/style/smile/Yo2.gif'/>",$str);
$str = str_replace("[支持]","<img src ='/style/smile/Yo2.gif'/>",$str);
这2个效果是一样专的属
7. php过滤表情代码 🔞 这样的 标题:🔞你好! 只想要标题的你好!,过滤前者🔞
php引擎没配置好,导致php文件没有解析配置php引擎步骤如下:1,用编辑器打开apache配置文件,httpd.conf,一般在apache目录的conf目录下.2,添加php模块,在任意的一个空行加上,LoadMolephp5_mole后面跟上php模块的动态链接库,如,LoadMolephp5_moleD:/server/php/php5apache2_2.dll3,指定.php文件用php模块处理.AddTypeapplication/x-httpd-php.php4.添加php配置文件路径,PHPInDirD:/server/php注意:php的配置文件默认没有php.ini需要把php.ini-develoment重命名为php.ini,如果是生产环境就把php.ini-proction改成php.ini;上面配置php引擎就配置好了,可以网站根目录写个phpinfo();测试;一般还需要配置mysql数据库,php5后默认是不连接mysql的;配置mysql如下:1,加载php_mysql扩展,用编辑器打开php.ini找到;extension=php_mysql.dll这一项,把前面的分号去掉即可;2,添加扩展目录,找到;extension_dir,去掉前面的分号在后面添加对应的php扩展路径如:extension_dir=E:/server/php/ext到现在mysql基本配置好了,还是用phpinfo();测试,开里面是不是多了mysql参数信息;phpmyadmin现在应该可以访问了纯手写,望采纳;
8. PHP中关于表情符号的问题~~
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the integration file for PHP 5.
*
* It defines the FCKeditor class that can be used to create editor
* instances in PHP pages on server side.
*/
class FCKeditor
{
var $InstanceName ;
var $BasePath ;
var $Width ;
var $Height ;
var $ToolbarSet ;
var $Value ;
var $Config ;
// PHP 5 Constructor (by Marcus Bointon <[email protected]>)
function __construct( $instanceName )
{
$this->InstanceName = $instanceName ;
$this->BasePath = '/fckeditor/' ;
$this->Width = '540' ;
$this->Height = '220' ;
$this->ToolbarSet = 'Default' ;
$this->Value = '' ;
$this->Config = array() ;
}
function Create()
{
echo $this->CreateHtml() ;
}
function CreateHtml()
{
$HtmlValue = htmlspecialchars( $this->Value ) ;
$Html = '<div>' ;
if ( $this->IsCompatible() )
{
if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
$File = 'fckeditor.original.html' ;
else
$File = 'fckeditor.html' ;
$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
if ( $this->ToolbarSet != '' )
$Link .= "&Toolbar={$this->ToolbarSet}" ;
// Render the linked hidden field.
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
// Render the configurations hidden field.
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
// Render the editor IFRAME.
$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
}
else
{
if ( strpos( $this->Width, '%' ) === false )
$WidthCSS = $this->Width . 'px' ;
else
$WidthCSS = $this->Width ;
if ( strpos( $this->Height, '%' ) === false )
$HeightCSS = $this->Height . 'px' ;
else
$HeightCSS = $this->Height ;
$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
}
$Html .= '</div>' ;
return $Html ;
}
function IsCompatible()
{
global $HTTP_USER_AGENT ;
if ( isset( $HTTP_USER_AGENT ) )
$sAgent = $HTTP_USER_AGENT ;
else
$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
{
$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
return ($iVersion >= 5.5) ;
}
else if ( strpos($sAgent, 'Gecko/') !== false )
{
$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
return ($iVersion >= 20030210) ;
}
else
return false ;
}
function GetConfigFieldString()
{
$sParams = '' ;
$bFirst = true ;
foreach ( $this->Config as $sKey => $sValue )
{
if ( $bFirst == false )
$sParams .= '&' ;
else
$bFirst = false ;
if ( $sValue === true )
$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
else if ( $sValue === false )
$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
else
$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
}
return $sParams ;
}
function EncodeConfig( $valueToEncode )
{
$chars = array(
'&' => '%26',
'=' => '%3D',
'"' => '%22' ) ;
return strtr( $valueToEncode, $chars ) ;
}
}
?>
定义的一个类,专门显示符号的,当然,符号已经在指定目录中存好了
include('./fckeditor/fckeditor.php') ;
$sBasePath="./fckeditor/";
$oFCKeditor = new FCKeditor($face;
$oFCKeditor->BasePath = $sBasePath ;
$oFCKeditor->Value = @$a[$face];
$oFCKeditor->ToolbarSet = 'Basic';
$oFCKeditor->Width = '480';
$oFCKeditor->Height = '340';
$oFCKeditor->Create() ;
这是个调用方法
9. php 怎么用正则表达式替换表情特殊符号 [em_27] 替换成表情
可以复用preg_replace()函数制
preg_replace(mixedpattern,mixedreplacement,mixedsubject[,intlimit])
大概的正则是 $pattern = '/[em_(d+)]/'
具体的还要根据你的代码来修改
10. php 怎么处理 emoji表情
1、使用utf8mb4字符集
如果你的mysql版本>=5.5.3,你大可直接将utf8直接升级为utf8mb4字符集
这种4字节的utf8编码可完内美兼容容旧的3字节utf8字符集,并且可以直接存储emoji表情,是最好的解决方案
至于字节增大带来的性能损耗,我看过一些评测,几乎是可以忽略不计的
2、使用base64编码
如果你因为某些原因无法使用utf8mb4的话,你还可以使用base64来曲线救国
使用例如base64_encode之类的函数编码过后的emoji可以直接存储在utf8字节集的数据表中,取出时decode一下即可
3、干掉emoji表情
emoji表情是个麻烦的东西,即使你能存储,也不一定能完美显示。在iOS以外的平台上,例如PC或者Android。如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才行。即便如此,还是可能因为emoji图片不够全而出现无法显示的情况在大多数业务场景下,emoji也不是非要不可的。我们可以适当地考虑干掉它,节约各种成本
经过一番苦苦的google,终于找到靠谱能用的代码: