2011-08-08 34 views
11
$filename = 'my_upgrade(1).zip'; 
$match = 'my_upgrade'; 

if(!strpos($filename, $match)) 
    { 
    die(); 
    } 
else 
    { 
    //proceed 
    } 

Trong đoạn mã trên, tôi đang cố gắng thoát ra khỏi tập lệnh khi tên tệp không chứa chuỗi văn bản "my_upgrade". Tuy nhiên, trong ví dụ được đưa ra, nó không nên chết vì "my_upgrade (1) .zip" chứa chuỗi "my_upgrade".Làm thế nào để sử dụng strpos để xác định xem một chuỗi tồn tại trong chuỗi đầu vào?

Tôi đang thiếu gì?

+0

strpos trả về vị trí số của đối sánh. Không chắc nó sẽ giúp ích. –

Trả lời

31

strpos trả về false nếu không tìm thấy chuỗi và 0 nếu tìm thấy chuỗi ở đầu. Sử dụng các identity operator để phân biệt hai:

if (strpos($filename, $match) === false) { 

Bằng cách này, thực tế này được ghi chép lại với nền đỏ và một dấu chấm than trong official documentation.

1
false === strpos($filename, $match) 

Các strpos functionDocs lợi nhuận false nếu không tìm thấy hoặc 0 nếu tìm thấy trên vị trí 0 (lập trình viên muốn bắt đầu đếm tại 0 thường xuyên):

Warning Chức năng này có thể trở lại Boolean FALSE, nhưng có thể cũng trả lại giá trị không Boolean đánh giá thành FALSE, chẳng hạn như 0 hoặc "". Vui lòng đọc phần trên Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả lại của hàm này.

4
if (strpos($filename, $match) === false) 

Nếu không, strpos sẽ trở lại 0 (chỉ số của trận đấu), đó là false.

Nhà điều hành === cũng sẽ so sánh kiểu của các biến (boolean! = Số nguyên)

0

strpos trong trường hợp này sẽ trở lại một số không, sau đó được interpretted như sai khi bạn làm như phủ định logic. Bạn nên kiểm tra một cách rõ ràng cho boolean false.

1

Chức năng strpos() phân biệt chữ hoa chữ thường.

if(strpos($filename, $match) !== false) 
     { 
     // $match is present in $filename 
     } 
    else 
     { 
     // $match is not present in $filename 
     } 

Để sử dụng phân biệt chữ hoa chữ thường. sử dụng stripos() là tìm vị trí xuất hiện đầu tiên của chuỗi bên trong một chuỗi khác (phân biệt chữ hoa chữ thường)

Các vấn đề liên quan