XSJsonDataSource.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  5. <meta name="language" content="zh-cn" />
  6. <link rel="stylesheet" type="text/css" href="css/style.css" />
  7. <link rel="stylesheet" type="text/css" href="css/api.css" />
  8. <script type="text/javascript" src="js/jquery.js"></script>
  9. <title>XSJsonDataSource</title>
  10. </head>
  11. <body>
  12. <div id="apiPage">
  13. <div id="apiHeader">
  14. <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
  15. </div><!-- end of header -->
  16. <div id="content" class="api-index">
  17. <h1>XSJsonDataSource</h1>
  18. <div id="nav">
  19. <a href="index.html">All Packages</a>
  20. | <a href="#properties">属性</a>
  21. | <a href="#methods">方法(函数)</a>
  22. </div>
  23. <table class="summaryTable docClass">
  24. <colgroup>
  25. <col class="col-name" />
  26. <col class="col-value" />
  27. </colgroup>
  28. <tr>
  29. <th>包</th>
  30. <td><a href="index.html#XS.util">XS.util</a></td>
  31. </tr>
  32. <tr>
  33. <th>继承关系</th>
  34. <td>class XSJsonDataSource &raquo;
  35. <a href="XSDataSource.html">XSDataSource</a></td>
  36. </tr>
  37. <tr>
  38. <th>版本</th>
  39. <td>1.0.0</td>
  40. </tr>
  41. <tr>
  42. <th>源代码</th>
  43. <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php">sdk/php/util/XSDataSource.class.php</a></td>
  44. </tr>
  45. </table>
  46. <div id="classDescription">
  47. JSON 数据源
  48. 要求以 \n (换行符) 分割, 每行为一条完整的 json 数据</div>
  49. <a name="properties"></a>
  50. <div class="summary docProperty">
  51. <h2>Protected 属性</h2>
  52. <p><a href="#" class="toggle">隐去继承来的属性</a></p>
  53. <table class="summaryTable">
  54. <colgroup>
  55. <col class="col-property" />
  56. <col class="col-type" />
  57. <col class="col-description" />
  58. <col class="col-defined" />
  59. </colgroup>
  60. <tr>
  61. <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
  62. </tr>
  63. <tr class="inherited" id="arg">
  64. <td><a href="XSDataSource.html#arg-detail">arg</a></td>
  65. <td></td>
  66. <td></td>
  67. <td><a href="XSDataSource.html">XSDataSource</a></td>
  68. </tr>
  69. <tr class="inherited" id="type">
  70. <td><a href="XSDataSource.html#type-detail">type</a></td>
  71. <td></td>
  72. <td></td>
  73. <td><a href="XSDataSource.html">XSDataSource</a></td>
  74. </tr>
  75. </table>
  76. </div>
  77. <a name="methods"></a>
  78. <div class="summary docMethod">
  79. <h2>Public 方法</h2>
  80. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  81. <table class="summaryTable">
  82. <colgroup>
  83. <col class="col-method" />
  84. <col class="col-description" />
  85. <col class="col-defined" />
  86. </colgroup>
  87. <tr>
  88. <th>名称</th><th>描述</th><th>定义于</th>
  89. </tr>
  90. <tr class="inherited" id="__construct">
  91. <td><a href="XSDataSource.html#__construct-detail">__construct()</a></td>
  92. <td>构造函数</td>
  93. <td><a href="XSDataSource.html">XSDataSource</a></td>
  94. </tr>
  95. <tr class="inherited" id="getCharset">
  96. <td><a href="XSDataSource.html#getCharset-detail">getCharset()</a></td>
  97. <td>取得数据源的准确字符集</td>
  98. <td><a href="XSDataSource.html">XSDataSource</a></td>
  99. </tr>
  100. <tr class="inherited" id="getData">
  101. <td><a href="XSDataSource.html#getData-detail">getData()</a></td>
  102. <td>从数据源中提取一条数据</td>
  103. <td><a href="XSDataSource.html">XSDataSource</a></td>
  104. </tr>
  105. <tr class="inherited" id="instance">
  106. <td><a href="XSDataSource.html#instance-detail">instance()</a></td>
  107. <td>取得数据源对象实例</td>
  108. <td><a href="XSDataSource.html">XSDataSource</a></td>
  109. </tr>
  110. </table>
  111. </div>
  112. <div class="summary docMethod">
  113. <h2>Protected 方法</h2>
  114. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  115. <table class="summaryTable">
  116. <colgroup>
  117. <col class="col-method" />
  118. <col class="col-description" />
  119. <col class="col-defined" />
  120. </colgroup>
  121. <tr>
  122. <th>名称</th><th>描述</th><th>定义于</th>
  123. </tr>
  124. <tr id="deinit">
  125. <td><a href="XSJsonDataSource.html#deinit-detail">deinit()</a></td>
  126. <td></td>
  127. <td>XSJsonDataSource</td>
  128. </tr>
  129. <tr id="getDataList">
  130. <td><a href="XSJsonDataSource.html#getDataList-detail">getDataList()</a></td>
  131. <td></td>
  132. <td>XSJsonDataSource</td>
  133. </tr>
  134. <tr id="init">
  135. <td><a href="XSJsonDataSource.html#init-detail">init()</a></td>
  136. <td></td>
  137. <td>XSJsonDataSource</td>
  138. </tr>
  139. </table>
  140. </div>
  141. <a name="events"></a>
  142. <h2>方法明细</h2>
  143. <div class="detailHeader" id="deinit-detail">
  144. deinit()
  145. <span class="detailHeaderTag">
  146. 方法
  147. </span>
  148. </div>
  149. <table class="summaryTable">
  150. <tr><td colspan="3">
  151. <div class="signature2">
  152. protected void <b>deinit</b>()</div>
  153. </td></tr>
  154. </table>
  155. <div class="sourceCode">
  156. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L290">sdk/php/util/XSDataSource.class.php#L290</a> (<b><a href="#" class="show">显示</a></b>)
  157. <div class="code"><code><span style="color: #000000">
  158. <span style="color: #0000BB"></span><span style="color: #007700">protected&nbsp;function&nbsp;</span><span style="color: #0000BB">deinit</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fd</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fd</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fd&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span>
  159. </span>
  160. </code></div>
  161. </div>
  162. <p></p>
  163. <div class="detailHeader" id="getDataList-detail">
  164. getDataList()
  165. <span class="detailHeaderTag">
  166. 方法
  167. </span>
  168. </div>
  169. <table class="summaryTable">
  170. <tr><td colspan="3">
  171. <div class="signature2">
  172. protected void <b>getDataList</b>()</div>
  173. </td></tr>
  174. </table>
  175. <div class="sourceCode">
  176. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L299">sdk/php/util/XSDataSource.class.php#L299</a> (<b><a href="#" class="show">显示</a></b>)
  177. <div class="code"><code><span style="color: #000000">
  178. <span style="color: #0000BB"></span><span style="color: #007700">protected&nbsp;function&nbsp;</span><span style="color: #0000BB">getDataList</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;read&nbsp;line&nbsp;(check&nbsp;to&nbsp;timeout?)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$line&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fgets</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">8192</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$buf&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$buf</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$line&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #0000BB">$buf</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$buf</span><span style="color: #007700">)&nbsp;&lt;&nbsp;</span><span style="color: #0000BB">8191&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$buf</span><span style="color: #007700">,&nbsp;-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;empty&nbsp;line&nbsp;(end&nbsp;of&nbsp;file)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">$line</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"INFO:&nbsp;reach&nbsp;end&nbsp;of&nbsp;the&nbsp;file,&nbsp;total&nbsp;lines:&nbsp;"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;try&nbsp;to&nbsp;decode&nbsp;the&nbsp;line<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line</span><span style="color: #007700">++;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$line&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">rtrim</span><span style="color: #007700">(</span><span style="color: #0000BB">$line</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"\r\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$line</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"WARNING:&nbsp;empty&nbsp;line&nbsp;#"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getDataList</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$item&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$line</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$item</span><span style="color: #007700">)&nbsp;||&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$item</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(</span><span style="color: #0000BB">json_last_error</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">JSON_ERROR_DEPTH</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$error&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'&nbsp;-&nbsp;Maximum&nbsp;stack&nbsp;depth&nbsp;exceeded'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">JSON_ERROR_CTRL_CHAR</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$error&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'&nbsp;-&nbsp;Unexpected&nbsp;control&nbsp;character&nbsp;found'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">JSON_ERROR_SYNTAX</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$error&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'&nbsp;-&nbsp;Syntax&nbsp;error,&nbsp;malformed&nbsp;JSON'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$error&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$item</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'&nbsp;-&nbsp;Empty&nbsp;array'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"WARNING:&nbsp;invalid&nbsp;line&nbsp;#"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$error&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getDataList</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;array(</span><span style="color: #0000BB">$item</span><span style="color: #007700">);<br />}</span>
  179. </span>
  180. </code></div>
  181. </div>
  182. <p></p>
  183. <div class="detailHeader" id="init-detail">
  184. init()
  185. <span class="detailHeaderTag">
  186. 方法
  187. </span>
  188. </div>
  189. <table class="summaryTable">
  190. <tr><td colspan="3">
  191. <div class="signature2">
  192. protected void <b>init</b>()</div>
  193. </td></tr>
  194. </table>
  195. <div class="sourceCode">
  196. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L277">sdk/php/util/XSDataSource.class.php#L277</a> (<b><a href="#" class="show">显示</a></b>)
  197. <div class="code"><code><span style="color: #000000">
  198. <span style="color: #0000BB"></span><span style="color: #007700">protected&nbsp;function&nbsp;</span><span style="color: #0000BB">init</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">arg</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(empty(</span><span style="color: #0000BB">$file</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"WARNING:&nbsp;input&nbsp;file&nbsp;not&nbsp;specified,&nbsp;read&nbsp;data&nbsp;from&nbsp;&lt;STDIN&gt;\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'php://stdin'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fd&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'r'</span><span style="color: #007700">)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">"Can&nbsp;not&nbsp;open&nbsp;input&nbsp;file:&nbsp;'</span><span style="color: #0000BB">$file</span><span style="color: #DD0000">'"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />}</span>
  199. </span>
  200. </code></div>
  201. </div>
  202. <p></p>
  203. </div><!-- end of content -->
  204. <div id="apiFooter">
  205. Copyright &copy; 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
  206. All Rights Reserved.<br/>
  207. </div><!-- end of footer -->
  208. <script type="text/javascript">
  209. /*<![CDATA[*/
  210. $("a.toggle").toggle(function(){
  211. $(this).text($(this).text().replace(/Hide/,'Show'));
  212. $(this).parents(".summary").find(".inherited").hide();
  213. },function(){
  214. $(this).text($(this).text().replace(/Show/,'Hide'));
  215. $(this).parents(".summary").find(".inherited").show();
  216. });
  217. $(".sourceCode a.show").toggle(function(){
  218. $(this).text($(this).text().replace(/show/,'hide'));
  219. $(this).parents(".sourceCode").find("div.code").show();
  220. },function(){
  221. $(this).text($(this).text().replace(/hide/,'show'));
  222. $(this).parents(".sourceCode").find("div.code").hide();
  223. });
  224. $("a.sourceLink").click(function(){
  225. $(this).attr('target','_blank');
  226. });
  227. /*]]>*/
  228. </script>
  229. </div><!-- end of page -->
  230. </body>
  231. </html>