Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Tôi đang cố gắng phát hiện xem một chuỗi có chứa ít nhất một URL được lưu trữ trong một mảng hay không.

Đây là mảng của tôi:

$owned_urls = array('website1.com', 'website2.com', 'website3.com');

Chuỗi được nhập bởi người dùng và được gửi qua PHP. Trên trang xác nhận tôi muốn kiểm tra xem URL có được nhập trong mảng không.

Tôi đã thử như sau:

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}

Không có vấn đề gì được nhập, sự trở lại luôn luôn là "không tìm thấy".

Đây có phải là cách làm chính xác?

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Kirk Beard

9.25512 Huy hiệu vàng44 Huy hiệu bạc47 Huy hiệu đồng12 gold badges44 silver badges47 bronze badges

Đã hỏi ngày 18 tháng 10 năm 2013 lúc 9:11Oct 18, 2013 at 9:11

0

Thử cái này.

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;

Sử dụng Stristr () hoặc Stripos () nếu bạn muốn kiểm tra không nhạy cảm trường hợp.

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:16Oct 18, 2013 at 9:16

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Daniele Vrutdaniele VrutDaniele Vrut

2.7652 huy hiệu vàng20 Huy hiệu bạc32 Huy hiệu đồng2 gold badges20 silver badges32 bronze badges

3

Điều này dễ dàng hơn rất nhiều nếu tất cả những gì bạn muốn làm là tìm một chuỗi trong một mảng.

$array = ["they has mystring in it", "some", "other", "elements"];
if (stripos(json_encode($array),'mystring') !== false) {
echo "found mystring";
}

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Đã trả lời ngày 29 tháng 11 năm 2015 lúc 20:51Nov 29, 2015 at 20:51

5

Thử cái này:

$owned_urls= array('website1.com', 'website2.com', 'website3.com');

$string = 'my domain name is website3.com';

$url_string = end(explode(' ', $string));

if (in_array($url_string,$owned_urls)){
    echo "Match found"; 
    return true;
} else {
    echo "Match not found";
    return false;
}

- Cảm ơn

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:28Oct 18, 2013 at 9:28

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Anand Solankianand SolankiAnand Solanki

3,4094 Huy hiệu vàng16 Huy hiệu bạc27 Huy hiệu đồng4 gold badges16 silver badges27 bronze badges

4

Tôi nghĩ rằng một cách nhanh hơn là sử dụng preg_match.preg_match.

$user_input = 'Something website2.com or other';
$owned_urls_array = array('website1.com', 'website2.com', 'website3.com');

if ( preg_match('('.implode('|',$owned_urls_array).')', $user_input)){
    echo "Match found"; 
}else{
    echo "Match not found";
}

Đã trả lời ngày 15 tháng 1 năm 2018 lúc 13:25Jan 15, 2018 at 13:25

VenceDorvenctionorvencedor

6037 Huy hiệu bạc9 Huy hiệu Đồng7 silver badges9 bronze badges

5

$string = 'my domain name is website3.com';
$a = array('website1.com','website2.com','website3.com');

$result = count(array_filter($a, create_function('$e','return strstr("'.$string.'", $e);')))>0; 
var_dump($result );

đầu ra

bool(true)

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:31Oct 18, 2013 at 9:31

RafhrafhRafH

4.4342 Huy hiệu vàng23 Huy hiệu bạc23 Huy hiệu đồng2 gold badges23 silver badges23 bronze badges

2

Dưới đây là một chức năng nhỏ tìm kiếm tất cả các giá trị từ một mảng trong một chuỗi đã cho. Tôi sử dụng điều này trong trang web của mình để kiểm tra IP khách truy cập nằm trong danh sách được phép của tôi trên một số trang nhất định.

function array_in_string($str, array $arr) {
    foreach($arr as $arr_value) { //start looping the array
        if (stripos($str,$arr_value) !== false) return true; //if $arr_value is found in $str return true
    }
    return false; //else return false
}

Cách sử dụng

$owned_urls = array('website1.com', 'website2.com', 'website3.com');

//this example should return FOUND
$string = 'my domain name is website3.com';
if (array_in_string($string, $owned_urls)) {
    echo "first: Match found
"; } else { echo "first: Match not found
"; } //this example should return NOT FOUND $string = 'my domain name is website4.com'; if (array_in_string($string, $owned_urls)) { echo "second: Match found
"; } else { echo "second: Match not found
"; }

Bản demo: http://phpfiddle.org/lite/code/qf7j-8m09

  • Chức năng Stripos không nghiêm ngặt lắm. Nó không nhạy cảm với trường hợp hoặc nó có thể khớp với một phần của từ http://php.net/manual/ro/function.stripos.php function is not very strict. it's not case sensitive or it can match a part of a word http://php.net/manual/ro/function.stripos.php

  • Nếu bạn muốn tìm kiếm đó là trường hợp nhạy cảm, hãy sử dụng strpos http://php.net/manual/ro/function.strpos.phpstrpos http://php.net/manual/ro/function.strpos.php

  • Để phù hợp chính xác, hãy sử dụng regex (preg_match), hãy kiểm tra câu trả lời của anh chàng này https://stackoverflow.com/a/25633879/4481831preg_match), check this guy answer https://stackoverflow.com/a/25633879/4481831

Đã trả lời ngày 24 tháng 5 năm 2016 lúc 6:42May 24, 2016 at 6:42

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

crisc2000crisc2000crisc2000

91610 Huy hiệu bạc19 Huy hiệu đồng10 silver badges19 bronze badges

1

Bạn có thể kết hợp các giá trị mảng với sự nổ tung và một khoảng cách của | và sau đó sử dụng preg_match để tìm kiếm giá trị.

Đây là giải pháp tôi đưa ra với ...

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
0

Đã trả lời ngày 14 tháng 2 năm 2020 lúc 7:55Feb 14, 2020 at 7:55

FarrisfahadfarrisfahadFarrisFahad

3361 Huy hiệu vàng4 Huy hiệu bạc16 Huy hiệu đồng1 gold badge4 silver badges16 bronze badges

1

Nếu

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
8 của bạn luôn nhất quán (nghĩa là tên miền luôn ở cuối chuỗi), bạn có thể sử dụng
$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
9 với
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
0, sau đó sử dụng
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
1 để kiểm tra một trận đấu (như @anand Solanki đã chỉ ra trong câu trả lời của họ) .always at the end of the string), you can use
$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
9 with
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
0, and then use
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
1 to check for a match (as pointed out by @Anand Solanki in their answer).

Nếu không, bạn nên sử dụng biểu thức chính quy để trích xuất miền từ chuỗi, sau đó sử dụng

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
1 để kiểm tra một trận đấu.

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
1

Biểu thức trên có thể được cải thiện (tôi không đặc biệt hiểu biết trong lĩnh vực này)

Đây là bản demo

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:57Oct 18, 2013 at 9:57

Billyonecanbillyonecanbillyonecan

Phim thương hiệu vàng 19,9k88 gold badges41 silver badges63 bronze badges

1

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
2

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:45Oct 18, 2013 at 9:45

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

SandeshsandeshSandesh

3532 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

1

Bạn đang kiểm tra toàn bộ chuỗi vào các giá trị mảng. Vì vậy, đầu ra luôn là

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
3.

Tôi sử dụng cả

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
4 và
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
5 trong trường hợp này.

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
3

Đã trả lời ngày 18 tháng 10 năm 2013 lúc 9:45Oct 18, 2013 at 9:45

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

Sandeshsandeshrevo

3532 Huy hiệu bạc8 Huy hiệu Đồng14 gold badges74 silver badges114 bronze badges

1

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
4

Bạn đang kiểm tra toàn bộ chuỗi vào các giá trị mảng. Vì vậy, đầu ra luôn là

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
3.Oct 23, 2017 at 14:38

1

Tôi sử dụng cả

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
4 và
$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
5 trong trường hợp này.

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
5

Revorevo

  1. 46.8K14 Huy hiệu vàng74 Huy hiệu bạc114 Huy hiệu đồng

  2. Đã trả lời ngày 23 tháng 10 năm 2017 lúc 14:38

  3. Tôi thấy điều này nhanh chóng và đơn giản mà không cần chạy vòng.

Giải thích nhỏ!Jan 16, 2018 at 12:04

user3767643user3767643user3767643

Tạo biến mới bằng

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;
6 thay thế giá trị trong mảng của chuỗi gốc.1 gold badge9 silver badges24 bronze badges

1

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
6

Làm so sánh chuỗi - Nếu giá trị là 0, điều đó có nghĩa là, các chuỗi bằng nhau và không có gì được thay thế, do đó không có giá trị nào trong mảng tồn tại trong chuỗi.

Nếu đó là ngược lại 2, tức là trong khi thực hiện so sánh chuỗi, cả chuỗi gốc và chuỗi mới đều không khớp, điều đó có nghĩa là, một cái gì đó đã được thay thế, do đó giá trị trong mảng tồn tại trong chuỗi.

ex:

Đã trả lời ngày 16 tháng 1 năm 2018 lúc 12:04

6141 Huy hiệu vàng9 Huy hiệu bạc24 Huy hiệu đồngFeb 6, 2020 at 9:23

Hướng dẫn check string contain in array php - kiểm tra chuỗi chứa trong mảng php

1

Đây là cách tiếp cận tốt nhất tìm kiếm

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}
7

giống như như tôi mysql

Chọn * Từ Bảng WHERE Tên = "%Web%"Mar 15, 2020 at 15:07

1

Sử dụng hàm số () trong PHP là gì?

Hàm số () trả về số lượng phần tử trong một mảng.returns the number of elements in an array.

Hàm in_array trong PHP là gì?

Hàm in_array () tìm kiếm một mảng cho một giá trị cụ thể.Lưu ý: Nếu tham số tìm kiếm là một chuỗi và tham số loại được đặt thành TRUE, tìm kiếm có tính nhạy cảm trường hợp.searches an array for a specific value. Note: If the search parameter is a string and the type parameter is set to TRUE, the search is case-sensitive.

Làm thế nào kiểm tra chuỗi là giá trị hay không trong PHP?

Hàm is_String () kiểm tra xem một biến có thuộc loại loại hay không.Hàm này trả về true (1) nếu biến thuộc loại loại, nếu không nó sẽ trả về sai/không có gì.is_string() function checks whether a variable is of type string or not. This function returns true (1) if the variable is of type string, otherwise it returns false/nothing.

Làm thế nào bạn sẽ định vị một chuỗi trong một chuỗi trong PHP?

Hàm strpos () tìm thấy vị trí của lần xuất hiện đầu tiên của một chuỗi bên trong chuỗi khác.Lưu ý: Hàm strpos () nhạy cảm trường hợp.strpos() function finds the position of the first occurrence of a string inside another string. Note: The strpos() function is case-sensitive.