Một số hàm làm việc với chuỗi ký tự trong PHP

Hôm nay tôi xin giới thiệu với các bạn một số hàm thường dùng trong lúc lập trình để xử lý chuỗi ký tự. Đó là các hàm như str_replace dùng thay thế một chuỗi bởi một chuỗi khác. Hàm strpos lấy ra vị trí đầu tiên của một chuỗi trong một chuỗi nào đó. Hàm str_len dùng để tính độ dài của một chuỗi ký tự nào đó.

Việc đặt tên file không có khoảng trắng và ký tự đặc biệt là thực sự cần thiết. Nó giúp cho công việc backup(sao lưu) và restore(phục hồi) sau này của bạn hạn chế mất mát dữ liệu.

Sử dụng hàm str_replace để thay thế các khoảng trắng bằng ký tự -

<?php
$file_root = "iphone 6 plus white.jpg";
echo str_replace(" ", "-", $file_root);
?>

Nó cũng thực sự cần thiết nếu bạn muốn SEO ảnh trên Google images.

Nếu chúng ta có một đoạn văn và cần thay đổi hàng loạt một thông tin nào đó thì cần phải làm gì?

Sử dụng hàm str_replace làm cho một cụm từ nổi bật hơn trong một đoạn văn bản.

<?php
/*
- Nếu bạn cần bôi đậm một cụm từ nào đó trong một đoạn văn thì phải làm thế nào?
- Cách dùng hàm str_replace để bôi đậm, làm to hơn và màu sắc khác đi cho cụm từ "thiết kế"
*/
$string = "Ngày nay chúng ta thiết kế web bằng khá nhiều CMS, framework hoặc ngôn ngữ lập trình. Chúng ta có thể dùng PHP, Java hoặc C# để tự thiết kế lên hệ thống riêng cho mình. Hoặc có thể dùng các CMS(hệ quản trị nội dung) có sẵn như WordPress, Joomla để thiết kế và tinh chỉnh. Hoặc có thể dùng các framework như Codeigniter, Laravel, Zend... để xây dựng hệ thống cho mình.";
$string = str_replace("thiết kế", "<strong style='color: #ff4d4d;font-size: 130%;'>thiết kế</strong>", $string);
$string = str_replace("framework", "<strong style='color: green;font-size: 130%;'>framework</strong>", $string);
echo $string;
?>

Giả sử chúng ta có danh sách hàng ngàn email, chúng ta cần gửi thư đến tất cả mọi người. Có tiêu đề thư đại loại như “Xin chào Tony, hôm nay là ngày black friday nên tôi muốn gửi đến bạn phiếu giảm giá đặc biệt!“. Trong đó tên Tony có thể được thay thế bởi các tên khác như David, Jonny, Mark…

Nếu chúng ta sử dụng hệ thống mail có sẵn như Sendy, mailChimp.. thì chắc chắn đã có chức năng này rồi. Còn nếu chúng ta muốn tự viết script thì có thể cần đoạn code nhỏ sau.

Sử dụng hàm str_repace để cá nhân hóa thông tin trong tiêu đề thư.

<?php
/*
- Tôi sẽ dùng style sheet css làm cho nổi bật tên người để các bạn nhìn rõ hơn.
- Tuy nhiên thực tế dùng CSS với tiêu đề thư là không cần thiết vì bạn sẽ không gửi CSS đi cùng được.
*/
$title_email = "Xin chào {{name}}, hôm nay là ngày black friday nên tôi muốn gửi đến bạn phiếu giảm giá đặc biệt!";
$arr_person = array("Tony", "David", "Jonny", "Mark");
foreach( $arr_person as $person ){
   $person = "<strong style='color: #ff4d4d;font-size: 130%;'>$person</strong>";
   $new_title_email = str_replace("{{name}}", $person, $title_email);
   echo "$new_title_email<br>";
}
?>

Đôi khi chúng ta cần hiển thị link youtube lên trang web của mình. Chúng ta có thể copy mã nhúng của youtube và dán vào web. Nếu chúng ta cần đưa nhiều video lên web nhưng biên tập viên lại không biết tí gì về mã HTML thì phải làm sao?

Bạn hãy xem ví dụ sau đây nhé, có thể bạn tìm ra ý tưởng viết code cho mình đấy.

Sử dụng hàm str_replace kết hợp strpos để hiển thị video youtube lên web như thế nào?

<?php 
    function display_video($video_link){
        if( strpos($video_link, 'youtube.com/') > 0
            || strpos($video_link, 'youtu.be/') > 0 ){
 
            $youtube_id = str_replace(array('https://www.youtube.com/watch?v='
            ,'https://www.youtube.com/embed/','https://youtu.be/'), array('','',''), $video_link);
            if($youtube_id!=''){
                $video_link = "https://www.youtube.com/embed/$youtube_id";
                $youtube = '<div style="padding:56.25% 0 0 0;position:relative;"><iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="'.$video_link.'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
                </div>';
                return "Đây là một video youtube:<br>". $youtube;
            }
        }else{
            return "Link $video_link:<br>Không phải là link youtube!";
        }
 
        return '';
    } 
 
    /*Nếu link youtube được truyền vào hàm thì nó ra một video youtube.*/
    $video_link = 'https://www.youtube.com/watch?v=GIDoQsQyS0s';
    echo display_video($video_link);
 
    /*Ngược lại nó sẽ ra kết quả khác.*/
    echo '<hr>';
    $video_link = 'https://vimeo.com/298448352';
    echo display_video($video_link);
?>

Đoạn code trên đã được viết theo chuẩn responsive nên nó tương thích cho các thiết bị mobile, table và desktop.

Nếu bạn viết module đăng ký thành viên cho ứng dụng thì chắc chắn phải viết chức năng kiểm tra tính hợp lệ của mật khẩu. Sẽ có nhiều điều kiện đưa vào nhưng để minh họa cho việc sử dụng hàm strlen, tôi xin đưa ra ví dụ sau đây.

Ví dụ dùng hàm strlen để kiểm tra độ dài của mật khẩu.

<?php
function check_password($password, $password_length){
  if( strlen($password) < $password_length )
  return false;
  else return true;
}
 
$pass = "abc12";
$pass_length = 6;
if( check_password($pass, $pass_length ) ){
  echo "Mật khẩu không hợp lệ!";
} else {
  echo "Mật khẩu không hợp lệ vì ngắn hơn $pass_length ký tự!";
}
 
$pass = "abc12345678";
$pass_length = 7;
if( check_password($pass, $pass_length ) ){
  echo "<br>Bạn có thể sử dụng mật khẩu này!";
} else {
  echo "<br>Mật khẩu này có độ dài ngắn hơn $pass_length ký tự nên không hợp lệ!";
}
 
?>

Trong thực tế thì bạn có thể viết thêm chức năng kiểm tra tính đơn giản của mật khẩu. Ví dụ như mật khẩu thì không được trùng tên hoặc email, không bao gồm chuỗi đơn giản như 123456…

Để lại một trả lời

Hãy trở thành người đầu tiên bình luận!

Thông báo cho
avatar
wpDiscuz