2012-05-27 39 views
11

Với chuỗi sauLàm thế nào để loại bỏ chuỗi con khỏi chuỗi bằng cách sử dụng PHP?

http://thedude.com/05/simons-cat-and-frog-100x100.jpg 

Tôi muốn sử dụng substr hoặc trim (hoặc bất cứ điều gì bạn thấy thích hợp hơn) để trở về này

http://thedude.com/05/simons-cat-and-frog.jpg 

có nghĩa là, để loại bỏ các -100x100. Tất cả hình ảnh tôi cần sẽ được gắn thẻ vào cuối tên tệp, ngay trước phần mở rộng.

Dường như có phản hồi về điều này trên SO re Ruby và Python nhưng không phải PHP/cụ thể theo nhu cầu của tôi.

How to remove the left part of a string?

Remove n characters from a start of a string

Remove substring from the string

Bất kỳ lời đề nghị?

+3

Bạn có kế hoạch mã hóa cứng giá trị của chuỗi con không? Hoặc bạn có muốn khớp với bất kỳ dạng chuỗi con nào của WIDTHxHEIGHT.ext không? –

+0

Bạn có nhớ liên kết tới các phiên bản Ruby và Python bạn tìm thấy không? Các kỹ thuật được sử dụng có thể có liên quan. – Ryan

+0

@minitech - thêm một vài liên kết trong OP – pepe

Trả lời

24

Nếu bạn muốn kết hợp bất kỳ giá trị width/height:

$path = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 

    // http://thedude.com/05/simons-cat-and-frog.jpg 
    echo preg_replace("/-\d+x\d+/", "", $path); 

Demo: http://codepad.org/cnKum1kd

Các mô hình sử dụng là khá cơ bản:

/  Denotes the start of the pattern 
-  Literal - character 
\d+ A digit, 1 or more times 
x  Literal x character 
\d+ A digit, 1 or more times 
/ Denotes the end of the pattern
+4

thanks JS - Tôi biết một regex đã đến tại một số điểm! – pepe

+0

sau khi tất cả được nói và thực hiện, đây có thể là giải pháp linh hoạt, trong trường hợp các hình thu nhỏ cuối cùng thay đổi kích thước – pepe

+0

+1 cho giải thích rõ ràng về regex – rdjs

3

Nếu -100x100 là các ký tự duy nhất bạn đang cố xóa khỏi tất cả các chuỗi của mình, tại sao không sử dụng str_replace?

$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 
str_replace("-100x100", "", $url); 
+1

thx hoàn hảo! ai trả lời trước? – pepe

14
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 
$new_url = str_replace("-100x100","",$url); 
6
$url = str_replace("-100x100.jpg", '.jpg', $url); 

Sử dụng -100x100.jpg để có giải pháp chống đạn.

+0

Nhưng anh ấy cần phần mở rộng để duy trì, vì vậy hãy thêm '.jpg' làm giá trị thay thế –

+0

MihaiStancu: chỉ cần chỉnh sửa câu trả lời của tôi. Cảm ơn. – flowfree

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