最近我一直在嘗試Rails,並且我開始喜歡respond_to。在PHP的Rails「respond_to」
是否有可能在PHP中做這樣的事情?迴應不同類型的請求。所以即使javascript被禁用也很容易實現替代方法。
最近我一直在嘗試Rails,並且我開始喜歡respond_to。在PHP的Rails「respond_to」
是否有可能在PHP中做這樣的事情?迴應不同類型的請求。所以即使javascript被禁用也很容易實現替代方法。
您可以根據Krule的建議調度文件名後綴,但我相信Rails通過檢查HTTP Accept
標頭的值(請參閱Wikipedia上的Content negotiation)來確定選擇哪種內容類型。在僞碼
$data = fetch_some_data();
switch (get_preferred_response_type($_SERVER['HTTP_ACCEPT'])) {
case 'text/html':
render_html($data); break;
case 'application/xml':
render_xml($data);
case 'application/json':
render_json($data);
// etc...
}
的get_preferred_response_type()
函數將具有解析Accept
頭和返回客戶端的優選的MIME類型。 Here就是這樣一個函數的例子,它可以幫助你開始;否則有一個content negotiation library爲PHP做你所有的骯髒的工作。
希望這會有所幫助!
上次我在Rails中做了類似於respond_to
的一些操作我使用Apache .htaccess RewriteRule爲了將GET變量處理爲php。就像這樣:
RewriteEngine on
RewriteRule (\d*\.?\d*?).(html|json|xml|txt) /file.php?format=$1
我希望它至少有一點幫助。 祝你好運。
不錯,至少我現在有東西。謝謝! – saint 2009-11-15 15:52:14
有沒有一個特定的PHP框架,你在想什麼?或者你在滾動你自己? – 2009-11-15 14:54:06
是的!我正在創建一個學習框架。 – saint 2009-11-15 15:13:24