本文整理汇总了PHP中PMA_convertString函数的典型用法代码示例。如果您正苦于以下问题:PHP PMA_convertString函数的具体用法?PHP PMA_convertString怎么用?PHP PMA_convertString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PMA_convertString函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testCharsetConversion
/**
* Test for PMA_convertString
*
* @return void
* @test
*
* @group medium
*/
public function testCharsetConversion()
{
$this->assertEquals('test', PMA_convertString('UTF-8', 'UTF-8', 'test'));
// 6 represents an arbitrary value for testing the default case
$GLOBALS['PMA_recoding_engine'] = 6;
$this->assertEquals('test', PMA_convertString('UTF-8', 'flat', 'test'));
// TODO: remove function_exists if recode_string exists on server
if (@function_exists('recode_string')) {
$GLOBALS['PMA_recoding_engine'] = PMA_CHARSET_RECODE;
$this->assertEquals('Only That ecole & Can Be My Blame', PMA_convertString('UTF-8', 'flat', 'Only That école & Can Be My Blame'));
}
$GLOBALS['PMA_recoding_engine'] = PMA_CHARSET_ICONV;
$GLOBALS['cfg']['IconvExtraParams'] = '//TRANSLIT';
$this->assertEquals("This is the Euro symbol 'EUR'.", PMA_convertString('UTF-8', 'ISO-8859-1', "This is the Euro symbol '€'."));
}
示例2: PMA_exportOutputHandler
/**
* Output handler for all exports, if needed buffering, it stores data into
* $dump_buffer, otherwise it prints them out.
*
* @param string $line the insert statement
*
* @return bool Whether output succeeded
*/
function PMA_exportOutputHandler($line)
{
global $time_start, $dump_buffer, $dump_buffer_len, $save_filename;
// Kanji encoding convert feature
if ($GLOBALS['output_kanji_conversion']) {
$line = PMA_Kanji_strConv($line, $GLOBALS['knjenc'], isset($GLOBALS['xkana']) ? $GLOBALS['xkana'] : '');
}
// If we have to buffer data, we will perform everything at once at the end
if ($GLOBALS['buffer_needed']) {
$dump_buffer .= $line;
if ($GLOBALS['onfly_compression']) {
$dump_buffer_len += mb_strlen($line);
if ($dump_buffer_len > $GLOBALS['memory_limit']) {
if ($GLOBALS['output_charset_conversion']) {
$dump_buffer = PMA_convertString('utf-8', $GLOBALS['charset'], $dump_buffer);
}
if ($GLOBALS['compression'] == 'gzip' && PMA_gzencodeNeeded()) {
// as a gzipped file
// without the optional parameter level because it bugs
$dump_buffer = gzencode($dump_buffer);
}
if ($GLOBALS['save_on_server']) {
$write_result = @fwrite($GLOBALS['file_handle'], $dump_buffer);
// Here, use strlen rather than mb_strlen to get the length
// in bytes to compare against the number of bytes written.
if ($write_result != strlen($dump_buffer)) {
$GLOBALS['message'] = PMA_Message::error(__('Insufficient space to save the file %s.'));
$GLOBALS['message']->addParam($save_filename);
return false;
}
} else {
echo $dump_buffer;
}
$dump_buffer = '';
$dump_buffer_len = 0;
}
} else {
$time_now = time();
if ($time_start >= $time_now + 30) {
$time_start = $time_now;
header('X-pmaPing: Pong');
}
// end if
}
} else {
if ($GLOBALS['asfile']) {
if ($GLOBALS['output_charset_conversion']) {
$line = PMA_convertString('utf-8', $GLOBALS['charset'], $line);
}
if ($GLOBALS['save_on_server'] && mb_strlen($line) > 0) {
$write_result = @fwrite($GLOBALS['file_handle'], $line);
// Here, use strlen rather than mb_strlen to get the length
// in bytes to compare against the number of bytes written.
if (!$write_result || $write_result != strlen($line)) {
$GLOBALS['message'] = PMA_Message::error(__('Insufficient space to save the file %s.'));
$GLOBALS['message']->addParam($save_filename);
return false;
}
$time_now = time();
if ($time_start >= $time_now + 30) {
$time_start = $time_now;
header('X-pmaPing: Pong');
}
// end if
} else {
// We export as file - output normally
echo $line;
}
} else {
// We export as html - replace special chars
echo htmlspecialchars($line);
}
}
return true;
}
示例3: elseif
} elseif ($export_type == 'database') {
$active_page = 'db_export.php';
include 'db_export.php';
} else {
$active_page = 'tbl_export.php';
include 'tbl_export.php';
}
exit;
}
/**
* Send the dump as a file...
*/
if (!empty($asfile)) {
// Convert the charset if required.
if ($output_charset_conversion) {
$dump_buffer = PMA_convertString('utf-8', $GLOBALS['charset_of_file'], $dump_buffer);
}
// Compression needed?
if ($compression) {
$dump_buffer = PMA_compressExport($dump_buffer, $compression, $filename);
}
/* If we saved on server, we have to close file now */
if ($save_on_server) {
$message = PMA_closeExportFile($file_handle, $dump_buffer, $save_filename);
if ($export_type == 'server') {
$active_page = 'server_export.php';
include_once 'server_export.php';
} elseif ($export_type == 'database') {
$active_page = 'db_export.php';
include_once 'db_export.php';
} else {
示例4: convertMessage
/**
* converts charset of a mysql message, usually coming from mysql_error(),
* into PMA charset, usually UTF-8
* uses language to charset mapping from mysql/share/errmsg.txt
* and charset names to ISO charset from information_schema.CHARACTER_SETS
*
* @param string $message the message
*
* @return string $message
*/
public function convertMessage($message)
{
// latin always last!
$encodings = array('japanese' => 'EUC-JP', 'japanese-sjis' => 'Shift-JIS', 'korean' => 'EUC-KR', 'russian' => 'KOI8-R', 'ukrainian' => 'KOI8-U', 'greek' => 'ISO-8859-7', 'serbian' => 'CP1250', 'estonian' => 'ISO-8859-13', 'slovak' => 'ISO-8859-2', 'czech' => 'ISO-8859-2', 'hungarian' => 'ISO-8859-2', 'polish' => 'ISO-8859-2', 'romanian' => 'ISO-8859-2', 'spanish' => 'CP1252', 'swedish' => 'CP1252', 'italian' => 'CP1252', 'norwegian-ny' => 'CP1252', 'norwegian' => 'CP1252', 'portuguese' => 'CP1252', 'danish' => 'CP1252', 'dutch' => 'CP1252', 'english' => 'CP1252', 'french' => 'CP1252', 'german' => 'CP1252');
$server_language = $this->fetchValue('SHOW VARIABLES LIKE \'language\';', 0, 1);
if ($server_language) {
$found = array();
$match = preg_match('&(?:\\\\|\\/)([^\\\\\\/]*)(?:\\\\|\\/)$&i', $server_language, $found);
if ($match) {
$server_language = $found[1];
}
}
if (!empty($server_language) && isset($encodings[$server_language])) {
$encoding = $encodings[$server_language];
} else {
/* Fallback to CP1252 if we can not detect */
$encoding = 'CP1252';
}
return PMA_convertString($encoding, 'utf-8', $message);
}
示例5: convertMessage
/**
* converts charset of a mysql message, usually coming from mysql_error(),
* into PMA charset, usually UTF-8
* uses language to charset mapping from mysql/share/errmsg.txt
* and charset names to ISO charset from information_schema.CHARACTER_SETS
*
* @param string $message the message
*
* @return string $message
*/
public function convertMessage($message)
{
// latin always last!
// @todo some values are missing,
// see https://mariadb.com/kb/en/mariadb/server-locale/
$encodings = array('ja' => 'EUC-JP', 'ko' => 'EUC-KR', 'ru' => 'KOI8-R', 'uk' => 'KOI8-U', 'sr' => 'CP1250', 'et' => 'ISO-8859-13', 'sk' => 'ISO-8859-2', 'cz' => 'ISO-8859-2', 'hu' => 'ISO-8859-2', 'pl' => 'ISO-8859-2', 'ro' => 'ISO-8859-2', 'es' => 'CP1252', 'sv' => 'CP1252', 'it' => 'CP1252', 'no' => 'CP1252', 'pt' => 'CP1252', 'da' => 'CP1252', 'nl' => 'CP1252', 'en' => 'CP1252', 'fr' => 'CP1252', 'de' => 'CP1252');
$server_language = PMA_Util::cacheGet('server_language', function () {
return $GLOBALS['dbi']->fetchValue("SELECT @@lc_messages;");
});
if ($server_language) {
$found = array();
$match = preg_match('&([a-z][a-z])_&i', $server_language, $found);
if ($match) {
$server_language = $found[1];
}
}
if (!empty($server_language) && isset($encodings[$server_language])) {
$encoding = $encodings[$server_language];
} else {
/* Fallback to CP1252 if we can not detect */
$encoding = 'CP1252';
}
return PMA_convertString($encoding, 'utf-8', $message);
}
示例6: PMA_importGetNextChunk
/**
* Returns next part of imported file/buffer
*
* @param int $size size of buffer to read
* (this is maximal size function will return)
*
* @return string part of file/buffer
* @access public
*/
function PMA_importGetNextChunk($size = 32768)
{
global $compression, $import_handle, $charset_conversion, $charset_of_file, $read_multiply;
// Add some progression while reading large amount of data
if ($read_multiply <= 8) {
$size *= $read_multiply;
} else {
$size *= 8;
}
$read_multiply++;
// We can not read too much
if ($size > $GLOBALS['read_limit']) {
$size = $GLOBALS['read_limit'];
}
if (PMA_checkTimeout()) {
return false;
}
if ($GLOBALS['finished']) {
return true;
}
if ($GLOBALS['import_file'] == 'none') {
// Well this is not yet supported and tested,
// but should return content of textarea
if (mb_strlen($GLOBALS['import_text']) < $size) {
$GLOBALS['finished'] = true;
return $GLOBALS['import_text'];
} else {
$r = mb_substr($GLOBALS['import_text'], 0, $size);
$GLOBALS['offset'] += $size;
$GLOBALS['import_text'] = mb_substr($GLOBALS['import_text'], $size);
return $r;
}
}
switch ($compression) {
case 'application/bzip2':
$result = bzread($import_handle, $size);
$GLOBALS['finished'] = feof($import_handle);
break;
case 'application/gzip':
$result = gzread($import_handle, $size);
$GLOBALS['finished'] = feof($import_handle);
break;
case 'application/zip':
$result = mb_substr($GLOBALS['import_text'], 0, $size);
$GLOBALS['import_text'] = mb_substr($GLOBALS['import_text'], $size);
$GLOBALS['finished'] = empty($GLOBALS['import_text']);
break;
case 'none':
$result = fread($import_handle, $size);
$GLOBALS['finished'] = feof($import_handle);
break;
}
$GLOBALS['offset'] += $size;
if ($charset_conversion) {
return PMA_convertString($charset_of_file, 'utf-8', $result);
}
/**
* Skip possible byte order marks (I do not think we need more
* charsets, but feel free to add more, you can use wikipedia for
* reference: <http://en.wikipedia.org/wiki/Byte_Order_Mark>)
*
* @todo BOM could be used for charset autodetection
*/
if ($GLOBALS['offset'] == $size) {
// UTF-8
if (strncmp($result, "", 3) == 0) {
$result = mb_substr($result, 3);
// UTF-16 BE, LE
} elseif (strncmp($result, "þÿ", 2) == 0 || strncmp($result, "ÿþ", 2) == 0) {
$result = mb_substr($result, 2);
}
}
return $result;
}