2010-09-17 38 views

Trả lời

22
<!-- set default value for SSI variable "data" -->  
<!--#set var="data" value="" --> 

<!-- get "data" value from URL --> 
<!--#if expr="$QUERY_STRING = /data=([a-zA-Z0-9]+)/" --> 
<!--#set var="data" value="$1" --> 
<!--#endif --> 

<!-- print the "data" value -->  
<!--#echo var="data" --> 
+1

Tôi sẽ thay đổi '/ data' thành'/\ bdata' ('\ b' là ranh giới từ) để tránh các biến phù hợp như' iamnotdata'. – Blazemonger

+0

'/ \\ bdata' đã hoạt động đối với tôi – alekstrust

0

câu hỏi cũ mà tôi biết, nhưng tôi đã bắt gặp nó khi thực hiện một số nội dung SSI. Tôi chắc rằng bạn đã khắc phục sự cố của mình ngay bây giờ, nhưng nếu điều này không giúp bạn, có lẽ nó sẽ là một người khác. Tôi giả sử máy chủ là Apache. (Nếu không, thì tôi đoán điều này sẽ không hoạt động!)

Đầu tiên tuyên bố từ chối trách nhiệm! Tôi không có nghĩa là một apache, sed, hoặc chủ regex, vì vậy tôi chắc chắn những gì sau có thể được cải thiện, nhưng nó có thể là một sự khởi đầu. Nó chỉ in trang tương ứng với cơ sở của trang web và tham số của truy vấn dữ liệu.

<!--#echo var="DOCUMENT_URI" --> 
<!--#exec cmd="echo '$QUERY_STRING' | sed -n 's/\([^&]*&\)*data=\([^&]*\).*/\2/p'" --> 

Tôi tìm thấy một danh sách các biến môi trường apache here: http://www.zytrax.com/tech/web/env_var.htm, và để tìm hiểu những gì bạn có thể làm với công cụ này một khi bạn đã lấy nó look here: http://httpd.apache.org/docs/2.0/howto/ssi.html.

Đã chỉnh sửa để làm cho nó in không có gì thay vì toàn bộ chuỗi khi không tìm thấy thuộc tính dữ liệu.

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