php中的
substr(string,start,length)
该函数对string进行截取操作,截取从字符串的start位置开始,到length长度结束。
利用substr()函数对普通字符进行截取操作会非常方便,但对全角字符进行截取可能会造成乱码。
drupal提供了一个安全可靠,又快速的字符串截取函数,无需区分字符是全角还是半角
drupal_substr($text, $start, $length = NULL)
function drupal_substr($text, $start, $length = NULL) { global $multibyte; if ($multibyte == UNICODE_MULTIBYTE) { return $length === NULL ? mb_substr($text, $start) : mb_substr($text, $start, $length); } else { $strlen = strlen($text); // Find the starting byte offset. $bytes = 0; if ($start > 0) { // Count all the continuation bytes from the start until we have found // $start characters or the end of the string. $bytes = -1; $chars = -1; while ($bytes < $strlen - 1 && $chars < $start) { $bytes++; $c = ord($text[$bytes]); if ($c < 0x80 || $c >= 0xC0) { $chars++; } } } elseif ($start < 0) { // Count all the continuation bytes from the end until we have found // abs($start) characters. $start = abs($start); $bytes = $strlen; $chars = 0; while ($bytes > 0 && $chars < $start) { $bytes--; $c = ord($text[$bytes]); if ($c < 0x80 || $c >= 0xC0) { $chars++; } } } $istart = $bytes; // Find the ending byte offset. if ($length === NULL) { $iend = $strlen; } elseif ($length > 0) { // Count all the continuation bytes from the starting index until we have // found $length characters or reached the end of the string, then // backtrace one byte. $iend = $istart - 1; $chars = -1; $last_real = FALSE; while ($iend < $strlen - 1 && $chars < $length) { $iend++; $c = ord($text[$iend]); $last_real = FALSE; if ($c < 0x80 || $c >= 0xC0) { $chars++; $last_real = TRUE; } } // Backtrace one byte if the last character we found was a real character // and we don't need it. if ($last_real && $chars >= $length) { $iend--; } } elseif ($length < 0) { // Count all the continuation bytes from the end until we have found // abs($start) characters, then backtrace one byte. $length = abs($length); $iend = $strlen; $chars = 0; while ($iend > 0 && $chars < $length) { $iend--; $c = ord($text[$iend]); if ($c < 0x80 || $c >= 0xC0) { $chars++; } } // Backtrace one byte if we are not at the beginning of the string. if ($iend > 0) { $iend--; } } else { // $length == 0, return an empty string. return ''; } return substr($text, $istart, max(0, $iend - $istart + 1)); } }
相关推荐
3. **字符串操作**:PHP提供了丰富的字符串处理函数,如`strlen()`计算长度,`substr()`截取子串,`str_replace()`替换字符串,`strpos()`查找子串位置等。 4. **数组操作**:PHP支持索引数组和关联数组,使用`...
1. **字符串处理**:涵盖字符串的拼接、查找、替换、截取等操作,以及正则表达式在字符串处理中的应用。 2. **数组操作**:讲解索引数组、关联数组的创建、遍历和修改,以及数组函数的使用,如array_push、array_...
- 数据类型:包括整型、浮点型、字符串、布尔型、数组、对象、NULL和资源。 - 控制结构:if/else,switch/case,for,while,do/while等。 2. **函数与类** - 函数:自定义函数使用`function`关键字,支持默认...
1. **字符串处理**:`str_replace`替换字符串、`substr`截取字符串、`strpos`查找子串位置等。 2. **数组操作**:`array_push`向数组添加元素、`count`计算数组长度、`array_merge`合并数组。 3. **日期与时间**:`...
5. **字符串处理**:PHP提供了丰富的字符串操作函数,如`strlen()`计算字符串长度,`substr()`截取子字符串,`str_replace()`替换字符串,`explode()`和`implode()`用于字符串的分割和合并。 6. **文件操作**:PHP...
2. **字符串处理**: PHP提供了丰富的字符串操作函数,如`strlen()`计算长度,`strpos()`查找子串,`substr()`截取字符串,`str_replace()`替换子串,以及`explode()`和`implode()`用于字符串与数组的转换。...
6. **字符串处理**: PHP提供了丰富的字符串函数,如`strlen`计算长度,`substr`截取子串,`str_replace`替换字符串等。 7. **文件操作**: PHP可以读写文件,如`fopen`打开文件,`fwrite`写入文件,`fclose`关闭文件...
6. **字符串处理**:PHP提供了丰富的字符串处理函数,如`strlen`计算长度,`substr`截取子串,`str_replace`替换子串等。 7. **文件操作**:如`fopen`打开文件,`fwrite`写入文件,`fclose`关闭文件等。 8. **错误与...
3. **字符串处理**:PHP提供了许多内置函数来操作字符串,如 `strlen()` 计算长度,`substr()` 截取子串,`str_replace()` 替换字符串,以及正则表达式相关函数如 `preg_match()` 和 `preg_replace()`。 4. **数组...
PHP提供了丰富的字符串处理函数,如`strlen()`计算长度,`substr()`截取子串,`strpos()`查找子串位置,`str_replace()`替换子串,`trim()`去除两端空白等。 **数组操作** 数组处理函数包括`count()`计算元素个数...
6. **字符串处理**:`substr`截取字符串,`strpos`查找子串位置,`str_replace`替换子串,`strtolower/strtoupper`转换大小写。 7. **文件与目录操作**:`file_get_contents`读取文件内容,`file_put_contents`写入...
了解如何处理字符串(如查找、替换、截取)和数组(如遍历、排序、合并)对于处理数据至关重要。 ### 3. 函数与类 PHP支持自定义函数,用于封装代码块以重复使用。同时,PHP5引入了面向对象编程(OOP),包括类、...