print_r()真是好東西

in

學東西,一般人都說要從基礎學起,可是我就是喜歡反過來,像倒吃甘蔗一樣,從我能接受的複雜東西玩起,再慢慢學回來。因為複雜的東西通常比較好玩,對我來說,學東西最快的方式,就是「讓我覺得好玩」。

反過來學習

所以,在我能夠接受Drupal的難懂和複雜之後,我就慢慢陷進去了,突破心牆,打開模組原始碼來研究已經是很普通的事情(對我這種不會寫程式的人來說,真的是跨出一大步啊!),然後也是後來才知道,這樣的程式寫作風格是類似JAVA,但我也不知道什麼是JAVA。

總之一切都是相反。

最基本的print_r()

但其實也是有壞處,那就是我最基本的東西很多都不懂。到最後,讓我驚奇連連的關鍵,居然會是最基本的東西。

那就是print_r()。

我在評估一個CMS好不好用的時候,都會很特別注意佈景、模版的彈性,因為能夠完全的客製化,才叫做好的系統嘛!而Drupal的Theming讓我滿痛苦的,原因上次已經抱怨過了(這邊),不過今天要說的是,print_r()以及db_fetch_object()真的很好用呢!

不論用什麼方式,只要把要的資料搞成一個物件,再用print_r()把這個物件印出來,像是這樣:

<?php
$type = 'blog';
$status = 1;
$sql = "SELECT * FROM {node} WHERE type = '%s' AND status = %d";
$result = db_query(db_rewrite_sql($sql), $type, $status);
while ($data = db_fetch_object($result)) {
  $node = node_load($data->nid);
  print_r($node);
?>

這樣會跑出像這裡下面那樣的東西。(stdClass Object ( [nid] => 2 [vid] => …..)

這方法是在溫馨的Drupal中文社群裡有位叫hom的大德教我的,真的很感謝。有興趣可以再看看那篇討論:「theme()的問題」。這東西目前是救過我幾次,不過也有人質疑,所以不一定是最好的工具。

順帶一提,在前後加上pre會更好閱讀。像這樣:

<?php
print '<pre>'. print_r($variable, TRUE) .'</pre>';
?>

延伸閱讀:

PHP documentation for print_r()
改造CCK節點模板node-front_page.tpl.php
print_r is your friend?
A better print_r for debugging purposes
Use drupal_set_message with print_r to see the view code

回應

pTrthN nejcjkxmdepb, [url=http://vtnteqpxtraj.com/]vtnteqpxtraj[/url], [link=http://xbujmwietwpa.com/]xbujmwietwpa[/link], http://slmgexxmwkjf.com/

comment5, Levitra, 855944, viagra, 79937, cheap levitra purchase vardenafil, rypa, viagra, >:(, Accutane, >:]],

comment3, levitra viagra vs, qbhaol, pill rimonabant, %(, viagra online, 375, Levitra, 559527, Rimonabant, gbw, georgia accutane law suits, 293685, accutane and ibd, svuxen,

comment4, buy rimonabant, ekjw, levitra viagra, 8DD, Cialis, 959934, Rimonabant, 29997, Cialis, rmxww,

comment5, cialis, vnct, cheapest cialis buy, 825069, levitra levitra, 86116, Acomplia, xjxdto, Cialis, ixad, rimonabant in diabetes, 293, know what doxycycline used to treat, xywi, generic levitra, 3751, accutane, 549, Accutane, fjzwxi, Cialis, 442,

comment1, Cialis, 15751, levitra, 6973, viagra and levitra, rcuxme, accutane, %(((, doxycycline and alcohol, =DD, Cialis, ytxta,

comment1, cialis 5 mg, 8O, Levitra, %-), accutane danger, fsbato, Acomplia, vytnb, levitra, kynnwq, acomplia buy rimonabant, cbu, female viagra, 256674, order accutane, gnf, Accutane, 8OO, cialis, 859262,

comment5, viagra and alcohol, tyxhi, cialis, >:DDD, Cialis, sil, drug viagra, 460, cialis, >:-OO, Levitra, lsyjhs,

發表新回應

這個欄位的內容會保密,不會公開顯示。
  • 自動將網址與電子郵件位址轉變為連結。
  • 可使用的 HTML 標籤:<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 自動斷行和分段。

更多關於格式選項的資訊