Không chắc chắn làm thế nào để từ câu hỏi này nhưng tôi sẽ đưa ra một ví dụ. $ string = 'Xin chào, $ name. Bạn khỏe không?'; Khi tôi đăng chuỗi này, $ name không thay đổi. Làm thế nào tôi có thể làm cho nó để tôi có thể đặt một cái gì đó như + tên + để nó thay đổi tên. Tôi đã cố gắng tìm kiếm nó nhưng tôi không biết phải tìm kiếm gì nên tôi không có may mắn. nó có thể thực sự đơn giản nhưng tôi chỉ là trống. Cảm ơncách thay thế trình giữ chỗ trong chuỗi?
Trả lời
Bạn có thể sử dụng trình giữ chỗ và str_replace
. Hoặc sử dụng tích hợp sẵn sprintf
của PHP và sử dụng %s
. (Và v4.0.6 bạn có thể hoán đổi thứ tự các đối số nếu bạn muốn).
$name = 'Alica';
// sprintf method:
$format = 'Hello, %s!';
echo sprintf($format, $name); // Hello, Alica!
// replace method:
$format = "Hello, {NAME}!";
echo str_replace("{NAME}", $name, $format);
Và, cho bất cứ ai tự hỏi, tôi hiểu rằng là rắc rối templating một chuỗi, không PHP tích hợp nối/phân tích cú pháp. Tôi chỉ giả giữ câu trả lời này lên mặc dù như tôi vẫn không chắc chắn 100% ý định của OP này
thats những gì tôi đang tìm kiếm, str_replace(); Cảm ơn. Tôi không thể cho cuộc sống của tôi con số nó ra. –
@Alica: Không thành vấn đề. Và nếu câu trả lời này hữu ích, hãy đảm bảo chấp nhận câu trả lời đó (như với các câu hỏi khác mà bạn đã hỏi).). –
'Và v4.0.6 ...' Tôi hy vọng bạn không đề cập đến điều đó bởi vì bạn nghĩ mọi người đang sử dụng thứ gì đó thấp hơn PHP 4;) –
Bạn nên gói chuỗi trong dấu ngoặc kép ("
) nếu bạn muốn biến để được mở rộng:
$name = "Alica";
$string = "Hey, $name. How are you?"; // Hey, Alica. How are you?
Sạch sẽ và đơn giản, tuyệt vời. –
Một giải pháp thứ ba, không có tốt hơn hoặc tồi tệ hơn kể trên, là nối:
echo 'Hello '. $name .'!!!';
tôi luôn là người hâm mộ của strtr
.
$ php -r 'echo strtr("Hi @name. The weather is @weather.", ["@name" => "Nick", "@weather" => "Sunny"]);'
Hi Nick. The weather is Sunny.
Ưu điểm khác cho điều này là bạn có thể xác định các loại tiền tố giữ chỗ khác nhau. Đây là cách Drupal làm điều đó; @
cho biết một chuỗi được thoát ra là an toàn để xuất ra một trang web (để tránh các cuộc tấn công tiêm). Các vòng lặp lệnh format_string trên các tham số của bạn (chẳng hạn như @name
và @weather
) và nếu ký tự đầu tiên là @
, thì nó sử dụng check_plain
trên giá trị.
Đây là một câu trả lời hay vì nó cũng tránh được một số cạm bẫy mà str_replace gặp phải: http://php.net/manual/en/function.strtr. php # 117169 –
- 1. Cách thay đổi trình giữ chỗ trong select2?
- 2. Thay thế Chuỗi Gradle - không có phần giữ chỗ
- 3. Trình giữ chỗ trong IE7
- 4. Trình giữ chỗ hoạt động như thế nào trong Flyway?
- 5. Trình giữ chỗ và NSLocalizedString
- 6. Java: Định dạng chuỗi với trình giữ chỗ
- 7. Trình giữ chỗ Hình ảnh
- 8. HTML5 như trình giữ chỗ
- 9. Thay thế trình giữ chỗ động trong các thuộc tính trong java
- 10. Sử dụng trình giữ chỗ/biến trong lệnh sed
- 11. C# Chuỗi Format giữ chỗ trong Regular Expressions
- 12. Cách tạo trình giữ chỗ trên thanh cuộn
- 13. pymssql và giữ chỗ
- 14. pysqlite: Thay thế trình giữ chỗ cho tên cột hoặc bảng?
- 15. Trình giữ chỗ không hoạt động
- 16. Làm thế nào để cung cấp chuỗi giữ chỗ tùy chỉnh cho định dạng chuỗi
- 17. Trình giữ chỗ cho văn bản? (ExtJS)
- 18. trình giữ chỗ cho thẻ chọn
- 19. Làm thế nào để thay thế một giữ chỗ trong một String với một Pattern SimpleDateFormat
- 20. Cách sử dụng thuộc tính hệ thống để thay thế trình giữ chỗ trong tệp Typesafe Config?
- 21. cách thêm <br /> vào trình giữ chỗ asp.net
- 22. select2: điều khiển theo chương trình trình giữ chỗ
- 23. Các ký tự hợp lệ PDO cho trình giữ chỗ
- 24. Sử dụng Trình giữ chỗ HTML trong Laravel 4
- 25. Thay đổi màu văn bản giữ chỗ của jQuery
- 26. Văn bản trình giữ chỗ của Trung tâm trong iPhone
- 27. Văn bản trình giữ chỗ hết văn bản trong Safari?
- 28. Trình giữ chỗ không hiển thị trong IE8 cho Bootstrap
- 29. Trình giữ chỗ cho tiện ích con tùy chỉnh
- 30. Cách thêm Cửa sổ giữ chỗ trong Xcode
Cú pháp PHP cơ bản: http://php.net/manual/en/language.types.string.php –