


Please explain this php code, about the preg_replace_callback() function
<code>$str = preg_replace_callback( "#\\\u([0-9a-f]{4})#i", function($matchs) { return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); }, $str); </code>
我搜了搜相关资料,懂了个大概,但是精髓部分还是不明白。
1)preg_replace_callback()函数第一个参数应该是个正则表达式,用来匹配相关字符。但是,其中的两个‘#’和最后的那个i我不是很明白,是为了什么?
2)第二个参数是个闭包里面的参数$matchs是系统指定的?还是随便给个参数名都行?例如function($a),还有这个地方只能是闭包么,可以用函数改写么?
3)关于这个$matchs,经过我测试输出,它是个数组.matchs[0]是u8fd8,matchs[1]是8fd8。这是怎么做到的?利用前面那个正则表达式我只能匹配到matchs[0]的结果,去掉u的工作和再用matchs[1]保留去掉u后的结果是谁做的?莫非是那个‘#’后的i?
<code>Array ( [0] => \u8fd8 [1] => 8fd8 )</code>
4)`iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));经过输出,iconv()函数的返回值是还这个iconv()函数内部是怎么组装出来还的呢?内部的pack函数中的H4作用是什么?是怎么加到8FD8前面的。
新手问题较多请大神们,不吝赐教。感激不尽!
回复内容:
<code>$str = preg_replace_callback( "#\\\u([0-9a-f]{4})#i", function($matchs) { return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); }, $str); </code>
我搜了搜相关资料,懂了个大概,但是精髓部分还是不明白。
1)preg_replace_callback()函数第一个参数应该是个正则表达式,用来匹配相关字符。但是,其中的两个‘#’和最后的那个i我不是很明白,是为了什么?
2)第二个参数是个闭包里面的参数$matchs是系统指定的?还是随便给个参数名都行?例如function($a),还有这个地方只能是闭包么,可以用函数改写么?
3)关于这个$matchs,经过我测试输出,它是个数组.matchs[0]是u8fd8,matchs[1]是8fd8。这是怎么做到的?利用前面那个正则表达式我只能匹配到matchs[0]的结果,去掉u的工作和再用matchs[1]保留去掉u后的结果是谁做的?莫非是那个‘#’后的i?
<code>Array ( [0] => \u8fd8 [1] => 8fd8 )</code>
4)`iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));经过输出,iconv()函数的返回值是还这个iconv()函数内部是怎么组装出来还的呢?内部的pack函数中的H4作用是什么?是怎么加到8FD8前面的。
新手问题较多请大神们,不吝赐教。感激不尽!
1 i 正则通配符 意思是 不区分大小写
2 $match变量名而已 可以随便写。一般这样使用
preg_replace_callback ( "/表达式/通配符", array($this,"a"), $string);
function a($m){
}
3 你没给匹配的字符串 无法回答
# 号可以替换成任何特殊符号, 只要不常见的就行, 你用 "~", "/", "#" 都是一样的, i表示不区分大小写
随便写, 不是一定要$match
iconv是编码转换函数
上面这段代码的功能只是用来把UCS-2BE字符格式的字符串转换成汉字的。
http://bbs.csdn.net/topics/39...

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
