2011-01-12 44 views
6

Tôi có một phần của ứng dụng PHP đánh giá đầu vào chuỗi dài của người dùng và trích xuất một số luôn bắt đầu 20 ký tự vào chuỗi mà người dùng cung cấp.Làm thế nào để trích xuất một chuỗi con từ một chuỗi trong PHP cho đến khi nó đạt đến một ký tự nhất định?

Vấn đề duy nhất là tôi không biết bao lâu số lượng cho mỗi người dùng sẽ được, tất cả tôi biết được phần cuối của số luôn được theo sau bởi một dấu nháy kép (").

thế nào tôi có thể sử dụng chức năng PHP chuỗi để trích xuất một chuỗi con bắt đầu hình thành một điểm cụ thể, và kết thúc khi nó chạm một dấu nháy kép?

Cảm ơn trước.

Trả lời

11

Bạn có thể sử dụng strpos để có được vị trí đầu tiên của " từ vị trí 20 trên:

$pos = strpos($str, '"', 20); 

Đó vị trí sau đó có thể được sử dụng để có được những chuỗi con:

if ($pos !== false) { 
    // " found after position 20 
    $substr = substr($str, 20, $pos-20-1); 
} 

Việc tính toán cho tham số thứ ba là cần thiết như substr hy vọng chiều dài của chuỗi con và không phải là điểm kết thúc. Cũng lưu ý rằng substr trả về false nếu không thể tìm thấy kim trong haystack.

+0

+1 tuyệt đẹp .. –

0
<? 

$str = substring($input, 20, strpos($input, '"') - 20); 
echo $str; 

?> 

Hoặc một cái gì đó giống như vv

1
$nLast = strpos($userString , '"'); 
substr($userString, 0, $nLast); 
0

tìm xuất hiện đầu tiên của báo giá gấp đôi sau 20 chars, trừ 19 - cung cấp cho bạn chiều dài của chuỗi con mong muốn:

$dq = strpos($string,'"',19); //19 is index of 20th char 
$desired_string = substr($string,19,$dq-19); 
0

Đi chỉ cần thêm vào câu trả lời của Gumbo trong trường hợp bạn cần trợ giúp về chức năng chuỗi con:

$pos = strpos($str, '"', 20); 
$substring = substr($str, 20, $pos); 
Các vấn đề liên quan