Mẹo Hướng dẫn Hướng dẫn dùng diffs trong PHP 2022 2022

Quý khách đang tìm kiếm từ khóa Hướng dẫn dùng diffs trong PHP 2022 được Update vào lúc : 2022-09-14 09:41:00 . Với phương châm chia sẻ Bí quyết Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha.

Mẹo Hướng dẫn Hướng dẫn dùng diffs trong PHP Chi Tiết

Pro đang tìm kiếm từ khóa Hướng dẫn dùng diffs trong PHP được Update vào lúc : 2022-09-14 09:40:24 . Với phương châm chia sẻ Bí quyết Hướng dẫn trong nội dung nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha.

(PHP 5 >= 5.3.0, PHP 7)

Nội dung chính

    Dạng hướng đối tượng người dùng người tiêu dùng
    Dạng hướng thủ tục
    Các tham số
    Giá trị

    trả về

    Sử dụng toán tử so sánh
    Sử

    dụng hàm strcmp()

    Sử dụng hàm similar_text
    Sử dụng hàm levenshtein
    Sử dụng hàm soundex
    Sử dụng hàm metaphone
    References:

Nội dung chính

    Dạng hướng đối tượng người dùng người tiêu dùng
    Dạng hướng thủ tục
    Các tham số
    Giá trị trả về
    Sử dụng toán tử so sánh
    Sử dụng hàm strcmp()
    Sử dụng hàm similar_text
    Sử dụng hàm levenshtein
    Sử dụng hàm soundex
    Sử dụng hàm metaphone
    References:

Nội dung chính

    Dạng hướng đối tượng người dùng người tiêu dùng
    Dạng hướng thủ tục
    Các tham số
    Giá trị trả về
    Sử dụng toán tử so sánh
    Sử dụng hàm strcmp()
    Sử dụng hàm similar_text
    Sử dụng hàm

    levenshtein

    Sử dụng hàm soundex
    Sử dụng hàm metaphone
    References:

Nội dung chính

    Dạng hướng đối tượng người dùng người tiêu dùng
    Dạng hướng thủ tục
    Các tham số
    Giá trị trả về
    Sử dụng toán tử so sánh
    Sử dụng hàm strcmp()
    Sử dụng hàm similar_text
    Sử dụng hàm levenshtein
    Sử dụng hàm soundex
    Sử dụng hàm metaphone
    References:

DateTime::diff — DateTimeImmutable::diff — DateTimeInterface::diff — date_diff —

Trả về yếu tố rất rất khác nhau giữa 2 đối tượng người dùng người tiêu dùng DateTime.

Dạng hướng đối tượng người dùng người tiêu dùng

public DateInterval DateTime::diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ] )

public DateInterval DateTimeImmutable::diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ] )

public DateInterval DateTimeInterface::diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ]

)

Dạng hướng thủ tục

DateInterval date_diff ( DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool$absolute = FALSE ] )

Trả về yếu tố rất rất khác nhau giữa hai đối tượng người dùng người tiêu dùng DateTimeInterface.

Các tham số

datetime

Ngày so sánh

absolute

Dùng khi bắt buộc thời hạn phải là một số trong những trong những dương.

Giá trị

trả về

Đối tượng DateInterval sẽ trả về yếu tố rất rất khác nhau giữa hai ngày hoặc FALSE nếu có lỗi.

Ví dụ

Ví dụ #1: DateTime::diff()

Dạng hướng đối tượng người dùng người tiêu dùng

<?php
$datetime1 = new DateTime(‘2009-10-11’);
$datetime2 = new DateTime(‘2009-10-13’);
$interval = $datetime1->diff($datetime2);
echo $interval->format(‘%R%a days’);
?>

Dạng hướng thủ tục

<?php
$datetime1 = date_create(‘2009-10-11’);
$datetime2 = date_create(‘2009-10-13’);
$interval = date_diff($datetime1, $datetime2);
echo $interval->format(‘%R%a days’);
?>

Các ví dụ trên sẽ in ra:

+2 days

Ví dụ #2: so sánh đối tượng người dùng người tiêu dùng DateTime

Lưu ý:

Từ phiên bản PHP

5.2.2, những đối tượng người dùng người tiêu dùng DateTime hoàn toàn hoàn toàn có thể được so sánh với nhau bằng phương pháp sử dụng những phép toán so sánh.

<?php
$date1 = new DateTime(“now”);
$date2 = new DateTime(“tomorrow”);

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

Ví dụ trên sẽ in ra:

bool(false)

bool(true)

bool(false)

Sử dụng toán tử so sánh

Cách đơn thuần và giản dị và thô sơ nhất là dùng toán tử so sánh của PHP (comparison operators). Tuy nhiên tránh việc dùng toán tử Equal (==) mà nên dùng toán tử Identical (===). Bởi vì == không so sánh kiểu tài liệu và hoàn toàn hoàn toàn có thể

dẫn đến sai lệch trong việc so sánh. Ta hãy xem thử ví dụ sau:

Nội dung chính

    Sử dụng toán tử so sánh
    Sử dụng hàm strcmp()
    Sử dụng hàm similar_text
    Sử dụng hàm levenshtein
    Sử dụng hàm soundex
    Sử dụng hàm metaphone
    References:

<?php

$input = 0;

if(‘defaultpassword’ == $input)

echo ‘true’;

else

echo ‘false’;

?>

Viết ngắn sử dụng toán tử 3 ngôi (ternary operator):

<?php

$input = 0;

echo (‘defaultpassword’ == $input) ? ‘true’ : ‘false’;

?>

Mặc dùng 0 và defaultpassword hoàn toàn rất rất khác nhau nhưng kết quả trả về là true thay vì false. Bởi vì khi PHP sẽ ngầm

định ép kiểu về float để so sánh, và ép kiểu chuỗi ‘defaultpassword’ về kiểu float thì nó sẽ ra kết quả như sau: int(0); Xem thêm

Do đó khi so sánh 2 chuỗi 1e3 và 1000 bằng phép toán == ta được kết quả là true.

<?php

echo (‘1e3’ == ‘1000’) ? ‘true’ : ‘false’;

?>

Nhưng nếu dùng toán tử === ta sẽ tiến hành kết quả là false:

<?php

echo (‘1e3’ === ‘1000’) ? ‘true’ : ‘false’;

?>

Do 1e3 tương tự 1000 nếu như convert sang kiểu float. Vì vậy tốt hơn hết là ta dùng toán tử Identical (===) để so sánh hai chuỗi.

Sử

dụng hàm strcmp()

int strcmp ( string $str1 , string $str2 ) Nhận hai tham số $str1 và $str2 và trả về kết quả:

< 0 nếu như $str1 < $str2
> 0 nếu như $str1 > $str2
0 nếu như $str1 = $str2

Đây là một hàm binary-safe, tức là nhận tài liệu nguồn vào như tài liệu thô mà không ngầm định kiểu tài liệu. Và hàm strcmp chỉ so sánh nội dung của hai chuỗi mà không phải so sánh địa chỉ bộ nhớ và bỏ qua những ký tự đặc biệt quan trọng quan trọng. Lưu ý thêm là hàm này còn tồn tại phân biệt hoa thường, nhưng hàm strcasecmp thì

không.

Ví dụ: Hai chuỗi “string1” và “string1 n”, hiển nhiên là rất rất khác nhau. Nếu dùng toán tử so sánh ở trên để kiếm tra thì tất yếu kết quả trả về sẽ là ‘false’. Tuy nhiên nếu dùng hàm strcmp ta sẽ nhận được kết quả là true vì nội dung hai chuỗi này hoàn toàn giống nhau nếu bỏ đi ký tự đặc biệt quan trọng quan trọng trong PHP là vàn. echo (strcmp(‘string1’, ‘string1 n’)) ? ‘true’ : ‘false’;

Nhưng lưu ý là PHP có một bug như sau: Nếu dùng strcmp để so sánh một array() và một chuỗi thì kết

quả trả về vẫn là 0 (tức là hai “chuỗi” bằng nhau).

<?php

$pwd = isset($_GET[‘pwd’]) ? $_GET[‘pwd’] : ”;

//tương tự $pwd = array();

if ( strcasecmp( $pwd, ‘password’ ) == 0 )

echo ‘You successfully logged in.’;

?>

Warning: strcasecmp() expects parameter 1 to be string, array given in cmpstr.php on line 12

Mặc dù nó vẫn bung ra Warning như nó vẫn vượt qua vào được bên trong và in ra câu thông báo:”You successfully logged in”

Sử dụng hàm similar_text

int similar_text ( string $first , string $second [, float &$percent ] )

Hàm similar_text nhận 3 tham số, 2 chuỗi nguồn vào và một biến chứa kết quả trả về. Kết quả là số Phần Trăm giống nhau giữa hai chuỗi. Ví dụ:

<?php

similar_text(“Hello World”,”Hello Hello”,$percent);

echo $percent;

?>

Kết quả trả về là 63.636363636364 Theo document của PHP, hàm này tính toán sự giống

nhau giữa hai chuỗi được được mô tả trong sách Programming Classics: Implementing the World’s Best Algorithms by Oliver (ISBN 0-131-00413-1).

Tuy nhiên thứ tự của những tham số cũng khiến thay đổi kết quả trả về, và ví dụ dưới đây được báo cáo là một bug nhưng không được xác nhận

<?php

echo similar_text(‘test’,’wert’); // 1

echo similar_text(‘wert’,’test’); // 2 hay

$var_1 = ‘PHP IS GREAT’;

$var_2 = ‘WITH MYSQL’;

echo similar_text($var_1, $var_2); // 3

echo similar_text($var_2, $var_1); // 2

?>

Sử dụng hàm levenshtein

Hàm này ngược lại với hàm similar_text(), nó sẽ trả về 0 nếu như hai chuỗi so sánh giống hệt nhau:

<?php

int levenshtein ( string $str1 , string $str2 )

int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

?>

Hàm này tính khoảng chừng chừng cách levenshtein

(hay còn gọi là Edit distance) giữa 2 dãy (sequence) và được đặt tên theo một nhà khoa học người Nga Vladimir Levenshtein người đã nghĩ ra ý tưởng này vào năm 1965. Khoảng cách levenshtein được xem bằng phương pháp tính số lần xóa (deletions), thêm (insertions) và thay thế (substitutions) để chuyển chuỗi gốc (source) thành chuỗi đích (target).

Ví dụ: Khoảng cách Levenshtein giữa 2 chuỗi “kitten” và “sitting” là 3, vì phải dùng tối thiểu 3 lần biến hóa.

    kitten -> sitten (thay “k” bằng

    “s”)

    sitten -> sittin (thay “e” bằng “i”)
    sittin -> sitting (thêm kí tự “g”)

<?php

echo levenshtein(“kitten”,”sitting”);//3

?>

Sử dụng hàm soundex

string soundex ( string $str )

Hàm này sử dụng thuật toán ngữ âm (phonetic algorithm) để tính toán chỉ mục của những tự nhờ vào cách phát âm của nó (theo tiếng Anh). Hàm này trả về một chuỗi 4 ký tự khởi đầu với một vần âm. Thuật toán này được mô tả trong cuốn nổi tiếng The Art Of Computer Programming, vol. 3: Sorting And Searching”,

Addison-Wesley (1973), pp. 391-392 của Donald Knuth.

Ví dụ: Trong MySQL có một hàm tương tự soundex. Ta hoàn toàn hoàn toàn có thể dùng hàm này để lấy ra tìm không gần đúng một keyword. Ta lưu trong database 1 trường soundex, để so sánh với keyword người tiêu dùng đưa vào:

SELECT p…name FROM products p.. WHERE p…soundex = SOUNDEX(‘test’);

Sử dụng hàm metaphone

string metaphone ( string $str [, int $phonemes = 0 ] )

Theo PHP document thì hàm này tương tự như soundex nhưng đúng chuẩn hơn vì nhờ vào nguyên tắc phát âm cơ bản trong tiếng Anh. Và hàm này trả về một khóa

có chiều dài thay đổi theo chiều dài của chuỗi nguồn vào. Thuật toán này được tăng trưởng bởi Lawrence Philips và được mô tả trong cuốn “Practical Algorithms for Programmers”, Binstock & Rex, Addison Wesley, 1995.

<?php

var_dump(metaphone(‘Catherine’));

var_dump(metaphone(‘Katherine’));

//string(5) “K0RN”

//string(5) “K0RN”

?>

Trong khi sử dụng hàm soundex sẽ trả về 2 kết quả rất rất khác nhau C365 (Catherine) và K365 (Katherine). Ở đây ta hoàn toàn hoàn toàn có thể thấy tại sao hàm metaphone được mô tả là đúng chuẩn hơn hàm soundex, theo nghĩa nó có ích hơn vì trên thực tiễn hai Katherine và Catherine đọc hoàn toàn

giống nhau. Cũng tương tự như soundex, ta hoàn toàn hoàn toàn có thể sử dụng hàm metaphone để tăng kĩ năng tìm kiếm trong database.

Tham khảo một nội dung nội dung bài viết vận dụng với Python

References:

    PHP String Comparison == vs strcmp, Stackoverflow
    what is the difference between “some” == “some ” and strcmp(“some”,“some ”) in c++?, Stackoverrflow
    PHP Manual, metaphone
    PHP Manual, similar_text
    PHP Manual, levenshtein

Tải thêm tài liệu liên quan đến nội dung nội dung bài viết Hướng dẫn dùng diffs trong PHP

programming

php

Reply
7
0
Chia sẻ

Chia Sẻ Link Download Hướng dẫn dùng diffs trong PHP miễn phí

Bạn vừa Read Post Với Một số hướng dẫn một cách rõ ràng hơn về Review Hướng dẫn dùng diffs trong PHP tiên tiến và phát triển và tăng trưởng nhất Chia Sẻ Link Cập nhật Hướng dẫn dùng diffs trong PHP miễn phí.

Giải đáp vướng mắc về Hướng dẫn dùng diffs trong PHP

Nếu sau khi đọc nội dung nội dung bài viết Hướng dẫn dùng diffs trong PHP vẫn chưa hiểu thì hoàn toàn hoàn toàn có thể lại Comments ở cuối bài để Admin lý giải và hướng dẫn lại nha

#Hướng #dẫn #dùng #diffs #trong #PHP

Related posts:

4253

Video Hướng dẫn dùng diffs trong PHP 2022 ?

Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Clip Hướng dẫn dùng diffs trong PHP 2022 tiên tiến và phát triển nhất

Chia Sẻ Link Tải Hướng dẫn dùng diffs trong PHP 2022 miễn phí

Pro đang tìm một số trong những Chia SẻLink Download Hướng dẫn dùng diffs trong PHP 2022 Free.

Thảo Luận vướng mắc về Hướng dẫn dùng diffs trong PHP 2022

Nếu sau khi đọc nội dung bài viết Hướng dẫn dùng diffs trong PHP 2022 vẫn chưa hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Ad lý giải và hướng dẫn lại nha
#Hướng #dẫn #dùng #diffs #trong #PHP