2012-05-22 25 views
6

Tôi có một chuỗi, một cái gì đó như thế này:Đối diện chức năng PHP của strstr trở lại phần đầu của chuỗi, không kéo

$abcdef(+$1.00) 

Tôi đang cố gắng để có được những phần đầu tiên của chuỗi trước khi ngoặc đầu tiên:

$abcdef 

Hiện nay nếu tôi sử dụng strstr() nó sẽ trả lại một phần của chuỗi sau khi nhân vật được chỉ định:

$newstr = strstr($var, '('); 

Tôi muốn phần trước khi xảy ra. Chức năng đảo ngược hoặc đối diện của strstr() sẽ làm điều đó là gì?

Trả lời

12

Chuyển đúng như tham số thứ ba.

Từ manual page you have linked:

string strstr (string $haystack , mixed $needle [, bool $before_needle = false ]) 

before_needle: Nếu TRUE, strstr() trả về một phần của đống cỏ khô trước sự xuất hiện đầu tiên của kim (trừ kim).

Lưu ý: Thông số này chỉ được thêm vào trong PHP 5.3. Nếu vì một số lý do bạn là trái với phiên bản cũ, một sự kết hợp của substr()strpos() sẽ giúp:

$newstr = substr($var, 0, strpos($var, '(')); 
+0

Có phải tất cả những gì tôi phải làm không?!? Cảm ơn @ bažmegakapa – bobbiloo

+0

@BobLiu Đọc hướng dẫn tạo điều kỳ diệu;). – kapa

4

Đặt tham số thứ ba của strstr true nó sẽ trở lại xảy ra trước khi kim

0

Better phương pháp để làm điều này một cách đơn giản là:

$ newstr = explode ('(', $ var) [0];

Giải thích: $ result = explode ('search_for_this', $ search_in_this) [0];

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