PageRenderTime 52ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/src/idl/string.idl.php

https://github.com/openparallel/hiphop-php
PHP | 369 lines | 274 code | 85 blank | 10 comment | 0 complexity | f8bea2050ac91e3ccfab556f022a7415 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. include_once 'base.php';
  3. ///////////////////////////////////////////////////////////////////////////////
  4. // transformations and manipulations
  5. f('addcslashes', String, array('str' => String, 'charlist' => String));
  6. f('stripcslashes', String, array('str' => String));
  7. f('addslashes', String, array('str' => String));
  8. f('stripslashes', String, array('str' => String));
  9. f('bin2hex', String, array('str' => String));
  10. f('nl2br', String, array('str' => String));
  11. f('quotemeta', String, array('str' => String));
  12. f('str_shuffle', String, array('str' => String));
  13. f('strrev', String, array('str' => String));
  14. f('strtolower', String, array('str' => String));
  15. f('strtoupper', String, array('str' => String));
  16. f('ucfirst', String, array('str' => String));
  17. f('ucwords', String, array('str' => String));
  18. f('strip_tags', String,
  19. array('str' => String,
  20. 'allowable_tags' => array(String, '""')));
  21. f('trim', String,
  22. array('str' => String,
  23. 'charlist' => array(String, 'k_HPHP_TRIM_CHARLIST')));
  24. f('ltrim', String,
  25. array('str' => String,
  26. 'charlist' => array(String, 'k_HPHP_TRIM_CHARLIST')));
  27. f('rtrim', String,
  28. array('str' => String,
  29. 'charlist' => array(String, 'k_HPHP_TRIM_CHARLIST')));
  30. f('chop', String,
  31. array('str' => String,
  32. 'charlist' => array(String, 'k_HPHP_TRIM_CHARLIST')));
  33. f('explode', Variant,
  34. array('delimiter' => String,
  35. 'str' => String,
  36. 'limit' => array(Int32, '0x7FFFFFFF')));
  37. f('implode', String,
  38. array('arg1' => Variant,
  39. 'arg2' => array(Variant, 'null_variant')));
  40. f('join', String,
  41. array('glue' => Variant,
  42. 'pieces' => array(Variant, 'null_variant')));
  43. f('str_split', Variant,
  44. array('str' => String,
  45. 'split_length' => array(Int32, '1')));
  46. f('chunk_split', Variant,
  47. array('body' => String,
  48. 'chunklen' => array(Int32, '76'),
  49. 'end' => array(String, '"\r\n"')));
  50. f('strtok', Variant,
  51. array('str' => String,
  52. 'token' => array(Variant, 'null_variant')));
  53. f('str_replace', Variant,
  54. array('search' => Variant,
  55. 'replace' => Variant,
  56. 'subject' => Variant,
  57. 'count' => array(Int32 | Reference, 'null')));
  58. f('str_ireplace', Variant,
  59. array('search' => Variant,
  60. 'replace' => Variant,
  61. 'subject' => Variant,
  62. 'count' => array(Int32 | Reference, 'null')));
  63. f('substr_replace', Variant,
  64. array('str' => Variant,
  65. 'replacement' => Variant,
  66. 'start' => Variant,
  67. 'length' => array(Variant, '0x7FFFFFFF')));
  68. f('substr', Variant,
  69. array('str' => String,
  70. 'start' => Int32,
  71. 'length' => array(Int32, '0x7FFFFFFF')));
  72. f('str_pad', String,
  73. array('input' => String,
  74. 'pad_length' => Int32,
  75. 'pad_string' => array(String, '" "'),
  76. 'pad_type' => array(Int32, 'k_STR_PAD_RIGHT')));
  77. f('str_repeat', String,
  78. array('input' => String,
  79. 'multiplier' => Int32));
  80. f('wordwrap', Variant,
  81. array('str' => String,
  82. 'width' => array(Int32, '75'),
  83. 'wordbreak' => array(String, '"\n"'),
  84. 'cut' => array(Boolean, 'false')));
  85. ///////////////////////////////////////////////////////////////////////////////
  86. // encoding/decoding
  87. f('html_entity_decode', String,
  88. array('str' => String,
  89. 'quote_style' => array(Int32, 'k_ENT_COMPAT'),
  90. 'charset' => array(String, '"ISO-8859-1"')));
  91. f('htmlentities', String,
  92. array('str' => String,
  93. 'quote_style' => array(Int32, 'k_ENT_COMPAT'),
  94. 'charset' => array(String, '"ISO-8859-1"'),
  95. 'double_encode' => array(Boolean, 'true')));
  96. f('htmlspecialchars_decode', String,
  97. array('str' => String,
  98. 'quote_style' => array(Int32, 'k_ENT_COMPAT')));
  99. f('htmlspecialchars', String,
  100. array('str' => String,
  101. 'quote_style' => array(Int32, 'k_ENT_COMPAT'),
  102. 'charset' => array(String, '"ISO-8859-1"'),
  103. 'double_encode' => array(Boolean, 'true')));
  104. f('quoted_printable_encode', String,
  105. array('str' => String));
  106. f('quoted_printable_decode', String,
  107. array('str' => String));
  108. f('convert_uudecode', Variant,
  109. array('data' => String));
  110. f('convert_uuencode', Variant,
  111. array('data' => String));
  112. f('str_rot13', String,
  113. array('str' => String));
  114. f('crc32', Int64,
  115. array('str' => String));
  116. f('crypt', String,
  117. array('str' => String,
  118. 'salt' => array(String, '""')));
  119. f('md5', String,
  120. array('str' => String,
  121. 'raw_output' => array(Boolean, 'false')));
  122. f('sha1', String,
  123. array('str' => String,
  124. 'raw_output' => array(Boolean, 'false')));
  125. f('strtr', Variant,
  126. array('str' => String,
  127. 'from' => Variant,
  128. 'to' => array(Variant, 'null_variant')));
  129. f('convert_cyr_string', String,
  130. array('str' => String,
  131. 'from' => String,
  132. 'to' => String));
  133. f('get_html_translation_table', StringMap,
  134. array('table' => array(Int32, '0'),
  135. 'quote_style' => array(Int32, 'k_ENT_COMPAT')));
  136. f('hebrev', String,
  137. array('hebrew_text' => String,
  138. 'max_chars_per_line' => array(Int32, '0')));
  139. f('hebrevc', String,
  140. array('hebrew_text' => String,
  141. 'max_chars_per_line' => array(Int32, '0')));
  142. f('setlocale', Variant,
  143. array('category' => Int32,
  144. 'locale' => Variant),
  145. VariableArguments);
  146. f('localeconv', VariantMap);
  147. f('nl_langinfo', String,
  148. array('item' => Int32));
  149. ///////////////////////////////////////////////////////////////////////////////
  150. // input/output
  151. f('echo', NULL,
  152. array('arg' => String), VariableArguments);
  153. f('print', Int32,
  154. array('arg' => String));
  155. f('printf', Variant,
  156. array('format' => String), VariableArguments);
  157. f('vprintf', Variant,
  158. array('format' => String,
  159. 'args' => VariantVec));
  160. f('sprintf', Variant,
  161. array('format' => String), VariableArguments);
  162. f('vsprintf', Variant,
  163. array('format' => String,
  164. 'args' => VariantVec));
  165. f('sscanf', Variant,
  166. array('str' => String,
  167. 'format' => String),
  168. ReferenceVariableArguments);
  169. f('chr', String, array('ascii' => Int64));
  170. f('ord', Int64, array('str' => String));
  171. f('money_format', Variant,
  172. array('format' => String,
  173. 'number' => Double));
  174. f('number_format', String,
  175. array('number' => Double,
  176. 'decimals' => array(Int32, '0'),
  177. 'dec_point' => array(String, '"."'),
  178. 'thousands_sep' => array(String, '","')));
  179. ///////////////////////////////////////////////////////////////////////////////
  180. // analysis
  181. f('strcmp', Int32,
  182. array('str1' => String,
  183. 'str2' => String));
  184. f('strncmp', Int32,
  185. array('str1' => String,
  186. 'str2' => String,
  187. 'len' => Int32));
  188. f('strnatcmp', Int32,
  189. array('str1' => String,
  190. 'str2' => String));
  191. f('strcasecmp', Int32,
  192. array('str1' => String,
  193. 'str2' => String));
  194. f('strncasecmp', Int32,
  195. array('str1' => String,
  196. 'str2' => String,
  197. 'len' => Int32));
  198. f('strnatcasecmp', Int32,
  199. array('str1' => String,
  200. 'str2' => String));
  201. f('strcoll', Int32,
  202. array('str1' => String,
  203. 'str2' => String));
  204. f('substr_compare', Variant,
  205. array('main_str' => String,
  206. 'str' => String,
  207. 'offset' => Int32,
  208. 'length' => array(Int32, '0'),
  209. 'case_insensitivity' => array(Boolean, 'false')));
  210. f('strchr', Variant,
  211. array('haystack' => String,
  212. 'needle' => Variant));
  213. f('strrchr', Variant,
  214. array('haystack' => String,
  215. 'needle' => Variant));
  216. f('strstr', Variant,
  217. array('haystack' => String,
  218. 'needle' => Variant));
  219. f('stristr', Variant,
  220. array('haystack' => String,
  221. 'needle' => Variant));
  222. f('strpbrk', Variant,
  223. array('haystack' => String,
  224. 'char_list' => String));
  225. f('strpos', Variant,
  226. array('haystack' => String,
  227. 'needle' => Variant,
  228. 'offset' => array(Int32, '0')));
  229. f('stripos', Variant,
  230. array('haystack' => String,
  231. 'needle' => Variant,
  232. 'offset' => array(Int32, '0')));
  233. f('strrpos', Variant,
  234. array('haystack' => String,
  235. 'needle' => Variant,
  236. 'offset' => array(Int32, '-1')));
  237. f('strripos', Variant,
  238. array('haystack' => String,
  239. 'needle' => Variant,
  240. 'offset' => array(Int32, '-1')));
  241. f('substr_count', Variant,
  242. array('haystack' => String,
  243. 'needle' => String,
  244. 'offset' => array(Int32, '0'),
  245. 'length' => array(Int32, '0x7FFFFFFF')));
  246. f('strspn', Variant,
  247. array('str1' => String,
  248. 'str2' => String,
  249. 'start' => array(Int32, '0'),
  250. 'length' => array(Int32, '0x7FFFFFFF')));
  251. f('strcspn', Variant,
  252. array('str1' => String,
  253. 'str2' => String,
  254. 'start' => array(Int32, '0'),
  255. 'length' => array(Int32, '0x7FFFFFFF')));
  256. f('strlen', Int32,
  257. array('str' => String));
  258. f('count_chars', Variant,
  259. array('str' => String,
  260. 'mode' => array(Int64, '0')));
  261. f('str_word_count', Variant,
  262. array('str' => String,
  263. 'format' => array(Int64, '0'),
  264. 'charlist' => array(String, '""')));
  265. f('levenshtein', Int32,
  266. array('str1' => String,
  267. 'str2' => String,
  268. 'cost_ins' => array(Int32, '1'),
  269. 'cost_rep' => array(Int32, '1'),
  270. 'cost_del' => array(Int32, '1')));
  271. f('similar_text', Int32,
  272. array('first' => String,
  273. 'second' => String,
  274. 'percent' => array(Double | Reference, 'null')));
  275. f('soundex', Variant,
  276. array('str' => String));
  277. f('metaphone', Variant,
  278. array('str' => String,
  279. 'phones' => array(Int32, '0')));
  280. ///////////////////////////////////////////////////////////////////////////////
  281. // special
  282. f('parse_str', NULL,
  283. array('str' => String,
  284. 'arr' => array(VariantMap | Reference, 'null')));