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,終於找到靠譜能用的代碼: