Sunday, April 19, 2015

10 PHP code snippets khi làm việc với chuỗi (Strings)

10 PHP code snippets khi làm việc với chuỗi (Strings)


10 PHP code snippets khi làm việc với chuỗi (Strings)

Posted: 19 Apr 2015 12:55 AM PDT




Tự động loại bỏ html tags từ một chuỗi

Khi người dùng Submit form, các bạn có thể dễ dàng loại bỏ các thẻ html không cần thiết bằng cách sử dụng hàm

Mã PHP:

$text strip_tags($input""); 

Lấy đoạn text nằm giữa $start và $end

Đây có lẽ là một hàm mà bất kì một web developer tương lai nào cũng sẽ phải cần dùng tới . Nó sẽ giúp cho các bạn lấy được đoạn chữ nằm ở giữa 2 chữ khác.

Mã PHP:

function GetBetween($content,$start,$end){
    
$r explode($start$content);
    if (isset(
$r[1])){
        
$r explode($end$r[1]);
        return 
$r[0];
    }
    return 
'';


Loại bỏ URL từ một chuỗi

Khi bạn cần loại bỏ mọi link có trong chuỗi thì các bạn chỉ cần dùng đoạn code sau :

Mã PHP:

$string preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i'''$string); 

Chuyển đổi strings sang slugs

Bạn muốn tạo slugs (permalinks) dùng cho SEO friendly? từ tiêu đề bài viết. Đoạn code đơn giản sau đây sẽ giúp các bạn làm điều này :

Mã PHP:

function slug($str){
    
$str strtolower(trim($str));
    
$str preg_replace('/[^a-z0-9-]/''-'$str);
    
$str preg_replace('/-+/'"-"$str);
    return 
$str;



Và để sử dụng các bạn dùng như sau :

Mã PHP:

$title " 10 PHP code snippets ":
$slugs slug($title);
// xuất ra màn hình sẽ là :  10-php-code-snippets 

Parse CSV files
CSV (Coma separated values) files là một cách dễ dàng nhất để lưu trữ dữ liệu. Đoạn code sau sẽ giúp các bạn phân tích file CSV.

Mã PHP:

$fh fopen("contacts.csv""r");
while(
$line fgetcsv($fh1000",")) {
    echo 
"Contact: {$line[1]}";


Tìm kiếm 1 chuỗi từ một chuỗi khác

Đoạn code sau sẽ trả về giá trị "true" nếu như chuỗi cần tìm được tìm thấy, và ngược lại nó sẽ trả lại giá trị là "false" .

Mã PHP:

unction contains($str$content$ignorecase=true){
    if (
$ignorecase){
        
$str strtolower($str);
        
$content strtolower($content);
    }
    return 
strpos($content,$str) ? true false;


Lọc lấy emails từ một chuỗi

Đoạn code bên dưới sẽ giúp bạn lọc lấy tất cả các email có trong một chuỗi.

Mã PHP:

function extract_emails($str){
    
// This regular expression extracts all emails from a string:
    
$regexp '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
    
preg_match_all($regexp$str$m);
 
    return isset(
$m[0]) ? $m[0] : array();
}
 
$test_string 'This is a test string...
 
        test1@example.org
 
        Test different formats:
        test2@example.org;
        <a href="test3@example.org">foobar</a>
        <test4@example.org>
 
        strange formats:
        test5@example.org
        test6[at]example.org
        test7@example.net.org.com
        test8@ example.org
        test9@!foo!.org
 
        foobar
'
;
 
print_r(extract_emails($test_string)); 

Tạo chuỗi ngẫu nhiên

Đoạn code sau phù hợp cho việc tạo captcha

Mã PHP:

function generate_rand($l){
  
$c"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  
srand((double)microtime()*1000000);
  for(
$i=0$i<$l$i++) {
      
$rand.= $c[rand()%strlen($c)];
  }
  return 
$rand;
 } 

Cách chuỗi tại điểm ngắt dòng.

Đoạn code sau sẽ giúp các bạn cắt chuỗi từ một chuỗi khác với chiều dài chỉ định, và đặc biệt là đoạn chuỗi được lấy ra sẽ chỉ được cắt tại chỗ ngắt dòng, vì thế mà nó không làm chuỗi bị ngắt giữa chừng.


Mã PHP:

function myTruncate($string$limit$break="."$pad="...") {
    
// return with no change if string is shorter than $limit
    
if(strlen($string) <= $limit)
        return 
$string;
 
    
// is $break present between $limit and the end of the string?
    
if(false !== ($breakpoint strpos($string$break$limit))) {
        if(
$breakpoint strlen($string) - 1) {
            
$string substr($string0$breakpoint) . $pad;
        }
    }
    return 
$string;


Và để sử dụng, các bạn khai báo như sau :


Mã PHP:

$short_string=myTruncate($long_string100' '); 

Phát hiện AJAX Request

Hầu hết các JavaScript frameworks như jQuery, mootools sẽ gửi một HTTP_X_REQUESTED_WITH header khi thực thi một đoạn Ajax, và từ đó chúng ta có thể kiểm chứng xem yêu cầu được gửi đó có phải là AJAX request không.

Mã PHP:

if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
    
//If AJAX Request Then
}else{
//something else


10 đoạn code PHP về chuỗi (Strings) cho người bắt đầu ;) http://yeuquangngai.net/42-Webmaster...oi-bat-dau.yqn








----------
Nguồn www.yeuquangngai.net

Kiểm tra một chuỗi có chứa chuỗi con hoặc chuỗi khác hay không

Posted: 19 Apr 2015 12:49 AM PDT




Bạn có một chuỗi con và bạn muốn kiểm tra xem liệu nó có nằm trong chuỗi nào đó hay không ? Tôi nghĩ có nhiều bạn gặp trường hợp này rồi và hôm nay tôi sẽ cung cấp 2 giải pháp cho trường hợp này.

Mã PHP:

if ( strlen(strstr($chuoi_ban_dau,$chuoi_con)) > ) {
// Tìm thấy


Cách 2,
Giải pháp thứ 2 thì tôi sẽ dùng hàm strpos() để xử lý. Vì sao dùng hàm đó ?

Nguyên nhân là vì hàm strpos() sẽ trả về vị trí của kí tự đầu tiên của chuỗi con nếu tìm thấy nó trong chuỗi ban đầu. Nếu tìm thấy chuỗi con, hàm strpos() sẽ trả về giá trị lớn hơn 0 (true) và ngược lại là false.

Mã PHP:

$pos strpos($chuoi_ban_dau,$chuoi_con);

if(
$pos !== false) {
//Tìm thấy
}
else {
// Không tìm thấy


Demo

Mã PHP:

 //Kiểm tra chuỗi con có tồn tại trong 1 chuỗi bất kỳ hay không
    
$str 'Hello world !';
    
$sub 'world' ;

    
//Cách 1
    
if (strlen(strstr($str$sub)) > 0) {
echo 
'Ton tai';
}
else {
echo 'Khong ton tai'
;
}

    
//Cách 2
if( strpos($str$sub) !== false ){
echo 
'Ton tai';
}
else {
echo 'Khong ton tai'
;
}

echo 
"
"











----------
Nguồn www.yeuquangngai.net

10 đoạn code PHP về chuỗi (Strings) cho người bắt đầu

Posted: 19 Apr 2015 12:47 AM PDT




Chuỗi (String) là một phần rất quan trọng, việc hiểu và nắm giữ nó, sẽ giúp rất nhiều cho công việc của bạn sau này. Trong bài viết này, mình xin tóm gọn 10 hàm chức năng về chuỗi tốt nhất dành cho các bạn tham khảo.

1 Tự động xóa bỏ thẻ html từ 1 chuỗi.
Khi bạn cần lấy nội dung của bài viết nào đó trên web mà muốn loại bỏ hết các thẻ html có trong chuỗi đó đi, thì các bạn chỉ cần làm thế này:

Mã PHP:

$text strip_tags($input""); 

2 Lấy dòng chữ nằm giữa $start và $end
Đoạn code sau sẽ giúp bạn lấy nội dung ở giữa chuỗi với điểm bắt đầu là $start và điểm kết thúc là $end.

Mã PHP:

function GetBetween($content,$start,$end){
    
$r explode($start$content);
    if (isset(
$r[1])){
        
$r explode($end$r[1]);
        return 
$r[0];
    }
    return 
'';


Tự động gắn link vào URL
Thông thường, khi bạn comment trên một blog hay diễn đàn nào đó, khi bạn để lại link, thì nó sẽ tự động bắt link và tạo liên kết đến link đó. Nếu bạn muốn làm chức năng đó cho web của mình thì đoạn code sau sẽ giúp bạn làm điều đó.

Mã PHP:

$pattern "@\b(https?://)?(([0-9a-zA-Z_!~*'().&=+$%-]+:)?[0-9a-zA-Z_!~*'().&=+$%-]+\@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+\.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\.[a-zA-Z]{2,6})(:[0-9]{1,4})?((/[0-9a-zA-Z_!~*'().;?:\@&=+$,%#-]+)*/?)@";
$text_with_hyperlink preg_replace($pattern'<a href="\0">\0</a>'$text_with_raw_URLs); 

4 Xóa bỏ URL có trong chuỗi
Nếu bạn cần loại bỏ link có trong chuỗi thì đoạn code sau sẽ giúp bạn

Mã PHP:

$string preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i'''$string); 

5 Kiểm tra một chuỗi nhỏ nằm trong một chuỗi lớn
Nếu bạn cần tìm một cụm từ nào đó trong một bài viết , thì đoạn code sau bạn không nên bỏ qua.

Mã PHP:

function contains($str$content$ignorecase=true){
    if (
$ignorecase){
        
$str strtolower($str);
        
$content strtolower($content);
    }
    return 
strpos($content,$str) ? true false;


6 Lấy địa chỉ email từ một chuỗi
Có bao giờ bạn tự hỏi, các spammers sưu tầm địa chỉ email như thế nào không ? Rất đơn giản, họ vào các trang web hay diễn đàn , rồi copy nội dung cả toàn bài viết rồi lọc lấy email trong bài viết đó. Và đoạn code sau sẽ giúp họ làm điều đó.

Mã PHP:

function extract_emails($str){
    
// This regular expression extracts all emails from a string:
    
$regexp '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
    
preg_match_all($regexp$str$m);
    return isset(
$m[0]) ? $m[0] : array();
}
$test_string 'This is a test string...
        test1@example.org
        Test different formats:
        test2@example.org;
        <a href="test3@example.org">foobar</a>
        <test4@example.org>
        strange formats:
        test5@example.org
        test6[at]example.org
        test7@example.net.org.com
        test8@ example.org
        test9@!foo!.org
        foobar
'
;
print_r(extract_emails($test_string)); 

7 Xóa bỏ kí tự cuối từ chuỗi chỉ định
Có 3 cách để các bạn làm điều này, thử xem 3 phương pháp sau đây nhá.

Mã PHP:

// Phương pháp 1 - substr và mb_substr
substr($string0, -1);
mb_substr($string0, -1);
// Phương pháp  2 - substr_replace
substr_replace($string'', -1);
// Phương pháp 3 - rtrim
rtrim($string"."); 

8 String Match
Đoạn code sau này dùng để so sánh 2 chuỗi xem chúng có giống nhau hay không, rất thích hợp cho ứng dụng kiểm tra password.

Mã PHP:

<?php
function strcomp($str1,$str2){
    if(
$str1 == $str2){
        return 
TRUE;
    }else{
        return 
FALSE;
    }
}
echo 
strcomp("First string","Second string"); //Returns FALSE
echo strcomp("A string","A string"); //Returns TRUE
?>

9 Chuyển đổi chuỗi được phân cách thành mảng
Đoạn code sau sẽ giúp các bạn tách chuỗi được phân cách bởi khoảng cách, dấu phẩy, gạch ngang… thành các giá trị mảng.

Mã PHP:

<?php
// Ví dụ 1
$testValues  "test1 test2 test3 test4 test5";
$testArray explode(" "$testValues);
print_r($testArray);
//Array ( [0] => test1 [1] => test2 [2] => test3 [3] => test4 [4] => test5 )
// Ví dụ 2
$testValues  "test1,test2,test3,test4,test5";
$testArray explode(","$testValues);
print_r($testArray);
//Array ( [0] => test1 [1] => test2 [2] => test3 [3] => test4 [4] => test5 )
?>

10 Loại bỏ từ cuối cùng có trong chuỗi
Nếu bạn cần loại bỏ một từ trong chuỗi chỉ định thì đoạn code sẽ giúp bạn làm tốt điều đó.

Mã PHP:

$words str_word_count($text1);
$lastWord array_pop($words);
$textWithoutLastWord implode(" "$words); 

Hoặc

Mã PHP:

$lastSpacePosition strrpos($text," ");
$textWithoutLastWord =substr($text,0,$lastSpacePosition); 










----------
Nguồn www.yeuquangngai.net

Tìm kiếm và tạo link trong String (text)

Posted: 19 Apr 2015 12:20 AM PDT




Nếu chúng ta có một đoạn text/string chứa link ở dạng text và không thể click, sử dụng đoạn script sau nó sẽ tìm kiếm và replace các text và replace thành link thật cho người dùng có thể click để truy cập các link.

Mã PHP:

$message trim($message);
while (
$message != stripslashes($message)) { $text stripslashes($message); }
$message preg_replace("/(?<!http:\/\/)www\./","http://www.",$message);
$message preg_replace"/((http|ftp)+(s)?:\/\/[^<>\s]+)/i""<a href=\"\\0\" target=\"_blank\">\\0</a>",$message); 










----------
Nguồn www.yeuquangngai.net