小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2023-12-16 / 14 阅读
0
0

php常用的字符串相关的函数,字符串中首字母改为小写例子

PHP 提供了大量的字符串操作函数,以下是其中一些常用的字符串函数:

  1. strlen() - 获取字符串的长度。

  2. strpos() - 查找字符串首次出现的位置。

  3. str_replace() - 替换字符串中的子串。

  4. substr() - 提取子字符串。

  5. strtolower() - 将字符串转换为小写。

  6. strtoupper() - 将字符串转换为大写。

  7. ucfirst() - 首字母大写。

  8. lcfirst() - 首字母小写。

  9. trim() - 删除字符串两侧的空白字符。

  10. ltrim() - 删除字符串左侧的空白字符。

  11. rtrim() - 删除字符串右侧的空白字符。

  12. str_split() - 将字符串拆分为数组。

  13. implode() / join() - 将数组元素合并成字符串。

  14. explode() - 使用分隔符将字符串分割成数组。

  15. preg_replace() - 使用正则表达式替换字符串中的匹配部分。

为了实现一个函数,将字符串中的每个单词的首字母改为小写,我们可以遍历字符串中的每个单词,并调用 lcfirst() 函数来处理每个单词的首字母。下面是一个简单的示例:

function makeLowerCaseWords($inputString) {
 // 分割字符串为单词数组 
$words = explode(' ', $inputString); 
// 遍历单词数组并修改每个单词的首字母为小写 
foreach ($words as &$word) { 
$word = lcfirst($word); 
} 
// 合并单词数组回字符串 
$outputString = implode(' ', $words); 
return $outputString; 
} 
$input = "HELLO WORLD!"; 
$output = makeLowerCaseWords($input); 
echo $output; // 输出: hello world!

这个示例中的函数 makeLowerCaseWords() 接受一个字符串参数 $inputString 并将其分解为单词数组。然后,它遍历每个单词并将每个单词的首字母转换为小写。最后,它将单词数组重新组合成一个新的字符串,并返回结果。

  1. 字符串长度

    • strlen($str):获取字符串的字节数(对多字节字符如UTF-8编码不准确)。

    • mb_strlen($str, $encoding):获取字符串的字符数,支持指定字符编码。

  2. 字符串截取和填充

    • substr($str, $start, $length):从给定位置开始截取指定长度的子串。

    • substr_replace($str, $replacement, $start, $length):替换字符串中的一部分。

    • str_pad($input, $pad_length, $pad_string, $pad_type):在字符串两侧填充字符以达到指定长度。

  3. 查找和替换

    • strpos($haystack, $needle, $offset = 0):查找字符串首次出现的位置,返回索引或false。

    • strrpos($haystack, $needle, $offset = 0):查找字符串最后一次出现的位置。

    • str_replace(search, replace, subject, [count]):替换字符串中的所有搜索到的内容。

    • strstr($haystack, $needle, $before_needle = false):查找字符串并返回部分匹配的子串或布尔值。

    • preg_replace(pattern, replacement, subject[, limit]):使用正则表达式进行查找和替换。

  4. 修剪空白字符

    • trim($str [, $charlist]):移除字符串两端的空白符或其他指定字符。

    • ltrim($str [, $charlist]):移除字符串左侧的空白符或其他指定字符。

    • rtrim($str [, $charlist]):移除字符串右侧的空白符或其他指定字符。

  5. 大小写转换

    • strtolower($str):将字符串转为小写。

    • strtoupper($str):将字符串转为大写。

    • ucfirst($str):首字母转大写。

    • lcfirst($str):首字母转小写。

    • ucwords($str):单词首字母转大写。

  6. 连接和分割

    • implode(glue, pieces)join(glue, pieces):使用分隔符连接数组元素为一个字符串。

    • explode(separator, string, limit):使用分隔符将字符串分割成数组。

  7. 其他操作

    • strrev($string):反转字符串。

    • strchr() / strstr():找到字符串首次出现另一字符串的位置并返回该位置后的子串。

    • strcmp($str1, $str2):比较两个字符串(区分大小写),返回整数值表示相对顺序。

    • strcasecmp($str1, $str2):不区分大小写的字符串比较。

    • str_repeat($input, $multiplier):重复字符串若干次。

以上只是众多字符串处理函数中的一部分,根据实际需求,还可以使用更多的字符串格式化、验证等相关函数。

高级应用:

function findAndUpdateData($file_path, $find_id, $new_data_array) {
    // 读取文件内容并转换为二维数组
    $lines = file($file_path);
    $data = array();
    foreach ($lines as $line) {
        $parts = explode(' ', trim($line));
        if (count($parts) >= 3) {
            $data[$parts[0]] = array(
                'id' => $parts[0],
                'name' => $parts[1],
                'number' => isset($parts[2]) ? $parts[2] : ''
            );
        }
    }

    // 查找并移除指定ID的数据项
    if (isset($data[$find_id])) {
        unset($data[$find_id]);
    } else {
        echo "<script>alert('没找到ID,请检查');window.location.href='../foget.php';</script>";
        return false;
    }

    // 将新数据插入到数据数组中
    $data[$new_data_array['id']] = [
        'id' => $new_data_array['id'],
        'name' => $new_data_array['name'],
        'number' => isset($new_data_array['number']) ? $new_data_array['number'] : ''
    ];

    // 将更新后的数据回写到文件
    $handle = fopen($file_path, 'w');
    foreach ($data as $item) {
        fwrite($handle, $item['id'] . ' ' . $item['name'] . ' ' . $item['number'] . PHP_EOL);
    }
    fclose($handle);

    return true;
}

这个PHP函数findAndUpdateData的主要功能是读取一个以空格分隔的文本文件,将其中的数据转换为二维关联数组,并根据指定ID查找、移除原有数据行,然后插入新的数据行,最后将更新后的数据写回原文件。

参数说明:

  • $file_path:需要操作的文本文件路径。

  • $find_id:要查找并删除的目标ID。

  • $new_data_array:包含新数据的新行信息,是一个关联数组,至少包含键 'id'、'name' 和可选的 'number' 键值对。

函数执行流程:

  1. 通过 file($file_path) 读取文件内容,每一行作为一个元素存入数组 $lines

  2. 遍历 $lines,使用 trim() 函数去除每行开头和结尾的空白字符,然后用 explode(' ', $line) 将每行按空格分割成多个部分。如果分割后得到的部分数量大于等于3,则将这些部分转换为关联数组形式存储到 $data 数组中,键为 'id',值包括 'id'、'name' 和 'number'。

  3. $data 中查找与 $find_id 匹配的记录,找到则使用 unset($data[$find_id]) 删除该条记录。

  4. 如果没有找到匹配的ID,则输出JavaScript警告消息,并重定向至 '../foget.php' 页面,同时返回 false 表示操作失败。

  5. 使用 $new_data_array 中提供的信息创建一个新的关联数组项,并将其插入到 $data 数组中。

  6. 打开文件 $file_path,模式设为 'w'(覆盖写入),遍历 $data 数组并将每条记录按照 'id''name''number' 的顺序连接起来,中间用空格分隔,末尾加上换行符 PHP_EOL,然后写入文件。

  7. 完成写入后,关闭文件句柄。

  8. 执行完上述步骤且无错误发生时,返回 true 表示操作成功。

请注意,此函数会直接覆盖原文件内容,如果需要在生产环境中使用,请考虑是否需要添加备份或事务处理机制以确保数据安全和一致性。


评论