Hướng dẫn php substring after character - chuỗi con php sau ký tự

Tôi đã có một chuỗi và tôi muốn có được mọi thứ sau một giá trị nhất định. Chuỗi luôn bắt đầu với một tập hợp các số và sau đó là một dấu gạch dưới. Tôi muốn lấy phần còn lại của chuỗi sau khi gạch dưới. Vì vậy, ví dụ nếu tôi có các chuỗi sau và những gì tôi muốn trả lại:

Nội phân chính

  • Làm thế nào để bạn có được chuỗi sau một ký tự nhất định?
  • Làm cách nào để cắt một chuỗi sau một ký tự cụ thể trong PHP?
  • Làm thế nào để tôi có được mọi thứ trước một nhân vật trong PHP?
  • Làm thế nào tôi có thể nhận được từ cuối cùng của một chuỗi trong PHP?

"123_String" -> "String"
"233718_This_is_a_string" -> "This_is_a_string"
"83_Another Example" -> "Another Example"

Làm thế nào tôi có thể đi làm một cái gì đó như thế này?

hỏi ngày 10 tháng 7 năm 2012 lúc 1:35Jul 10, 2012 at 1:35

user1048676user1048676user1048676

9.44625 Huy hiệu vàng80 Huy hiệu bạc118 Huy hiệu đồng25 gold badges80 silver badges118 bronze badges

0

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
5 tìm thấy phần bù của dấu gạch dưới, sau đó cơ sở lấy mọi thứ từ chỉ mục đó cộng với 1, trở đi.

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;

Nếu bạn cũng muốn kiểm tra xem ký tự dấu gạch dưới (

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
6) có tồn tại trong chuỗi của bạn trước khi cố gắng lấy nó hay không, bạn có thể sử dụng như sau:

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}

Kenorb

Phù bằng vàng 144K7676 gold badges654 silver badges710 bronze badges

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 1:38Jul 10, 2012 at 1:38

9

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
7 là một chức năng bị bỏ qua cho loại điều này. Nó có nghĩa là khá nhanh.

$s = '233718_This_is_a_string';
$firstPart = strtok( $s, '_' );
$allTheRest = strtok( '' ); 

Chuỗi trống như thế này sẽ buộc phần còn lại của chuỗi được trả về.

NB Nếu không có gì sau khi '_', bạn sẽ nhận được giá trị

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
8 cho
$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
9, như đã nêu trong tài liệu, phải được kiểm tra với ===, để phân biệt với các giá trị giả khác.

Đã trả lời ngày 24 tháng 11 năm 2017 lúc 8:11Nov 24, 2017 at 8:11

Mike gặm nhấm gặm nhấmmike rodent

12.7k11 Huy hiệu vàng91 Huy hiệu bạc129 Huy hiệu đồng11 gold badges91 silver badges129 bronze badges

3

Đây là phương pháp bằng cách sử dụng

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
0:

$text = explode('_', '233718_This_is_a_string', 2)[1]; // Returns This_is_a_string

or:

$text = end((explode('_', '233718_This_is_a_string', 2)));

Bằng cách chỉ định

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
1 cho tham số
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
2 trong
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
3, nó trả về mảng với 2 phần tử tối đa được phân tách bằng dấu phân cách chuỗi. Trả về phần tử thứ 2 (
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
4), sẽ cung cấp phần còn lại của chuỗi.


Dưới đây là một liner khác bằng cách sử dụng

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
5 (như đề xuất của @FLU):

$needle = '233718_This_is_a_string';
$text = substr($needle, (strpos($needle, '_') ?: -1) + 1); // Returns This_is_a_string

Wadih M.

12.1k6 Huy hiệu vàng43 Huy hiệu bạc55 Huy hiệu Đồng6 gold badges43 silver badges55 bronze badges

Đã trả lời ngày 23 tháng 7 năm 2017 lúc 14:56Jul 23, 2017 at 14:56

Kenorbkenorbkenorb

Phù bằng vàng 144K7676 gold badges654 silver badges710 bronze badges

1

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 1:38

$string = 'filename.jpg';
$extension = strrchr( $string, '.'); //returns "jpg"

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
7 là một chức năng bị bỏ qua cho loại điều này. Nó có nghĩa là khá nhanh.Jul 23, 2020 at 13:03

Chuỗi trống như thế này sẽ buộc phần còn lại của chuỗi được trả về.Pinonirvana

NB Nếu không có gì sau khi '_', bạn sẽ nhận được giá trị

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
8 cho
$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
9, như đã nêu trong tài liệu, phải được kiểm tra với ===, để phân biệt với các giá trị giả khác.1 gold badge8 silver badges10 bronze badges

1

Đã trả lời ngày 24 tháng 11 năm 2017 lúc 8:11

$str = '233718_This_is_a_string';

echo ltrim(strstr($str, '_'), '_'); // This_is_a_string

Mike gặm nhấm gặm nhấm

echo ltrim($str, '0..9_'); // This_is_a_string

12.7k11 Huy hiệu vàng91 Huy hiệu bạc129 Huy hiệu đồng

Đây là phương pháp bằng cách sử dụng

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
0:Dec 8, 2018 at 0:44

Bằng cách chỉ định

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
1 cho tham số
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
2 trong
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
3, nó trả về mảng với 2 phần tử tối đa được phân tách bằng dấu phân cách chuỗi. Trả về phần tử thứ 2 (
if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
4), sẽ cung cấp phần còn lại của chuỗi.nggit

Dưới đây là một liner khác bằng cách sử dụng

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
5 (như đề xuất của @FLU):7 silver badges8 bronze badges

Wadih M.

Query:

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
0

Output:

12.1k6 Huy hiệu vàng43 Huy hiệu bạc55 Huy hiệu Đồng

Hướng dẫn php substring after character - chuỗi con php sau ký tự

Đã trả lời ngày 23 tháng 7 năm 2017 lúc 14:56Feb 27, 2018 at 9:54

KenorbkenorbAdy

Tôi sử dụng strrchr (). Chẳng hạn để tìm phần mở rộng của tệp tôi sử dụng chức năng này:1 silver badge2 bronze badges

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
1

Đã trả lời ngày 23 tháng 7 năm 2020 lúc 13:03

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
2

PinonirvanapinonirvanaOct 19, 2019 at 21:25

8101 Huy hiệu vàng8 Huy hiệu bạc10 Huy hiệu đồng

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
3

Một cách đơn giản khác, sử dụng strchr () hoặc strstr ():Oct 4, 2021 at 2:54

Trong trường hợp của bạn, có thể một mình ltrim () sẽ đủ:arafatgazi

Nhưng chỉ khi phần phù hợp của chuỗi (sau _) không bắt đầu với các số, nếu không nó cũng sẽ được cắt.1 silver badge5 bronze badges

Đã trả lời ngày 8 tháng 12 năm 2018 lúc 0:44

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;
4

NggitnggitDec 24, 2021 at 11:20

5617 Huy hiệu bạc8 Huy hiệu ĐồngGerard de Visser

Nếu bất cứ ai cần trích xuất phần đầu tiên của chuỗi thì có thể thử,9 gold badges47 silver badges56 bronze badges

Làm thế nào để bạn có được chuỗi sau một ký tự nhất định?

This_IS_A_STRINGcall the substring() method, passing it the index after the character's index as a parameter. The substring method will return the part of the string after the specified character. Copied! We used the String.

Làm cách nào để cắt một chuỗi sau một ký tự cụ thể trong PHP?

Đã trả lời ngày 27 tháng 2 năm 2018 lúc 9:54 is used to remove portion of string after certain character. strpos() function: This function is used to find the first occurrence position of a string inside another string. Function returns an integer value of position of first occurrence of string.

Làm thế nào để tôi có được mọi thứ trước một nhân vật trong PHP?

Adyady.

Huy hiệu Huy hiệu Bạc 1411

Trong một tuyên bố duy nhất nó sẽ được.

Đã trả lời ngày 19 tháng 10 năm 2019 lúc 21:25

Nếu bạn muốn nhận mọi thứ sau một số ký tự nhất định và nếu các ký tự đó được đặt ở đầu chuỗi, bạn có thể sử dụng một giải pháp dễ dàng hơn như thế này:

Làm thế nào tôi có thể nhận được từ cuối cùng của một chuỗi trong PHP?

Đã trả lời ngày 4 tháng 10 năm 2021 lúc 2:54using the substr() function and store this in a new string variable. At last, we can use the strlen() function to find the length of the last word in the string.