PageRenderTime 60ms CodeModel.GetById 34ms RepoModel.GetById 0ms app.codeStats 0ms

/phpmyfaq/inc/PMF/String/Basic.php

https://github.com/NHLH-ITM/phpMyFAQ-kindeditor
PHP | 285 lines | 78 code | 28 blank | 179 comment | 3 complexity | c5c77217e859417ab5d9f0b67949cce5 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-2.1, LGPL-3.0
  1. <?php
  2. /**
  3. * The string wrapper class using single byte string functions
  4. *
  5. * PHP Version 5.4.0
  6. *
  7. * This Source Code Form is subject to the terms of the Mozilla Public License,
  8. * v. 2.0. If a copy of the MPL was not distributed with this file, You can
  9. * obtain one at http://mozilla.org/MPL/2.0/.
  10. *
  11. * @category phpMyFAQ
  12. * @package String
  13. * @author Anatoliy Belsky <ab@php.net>
  14. * @copyright 2009-2014 phpMyFAQ Team
  15. * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0
  16. * @link http://www.phpmyfaq.de
  17. * @since 2009-04-06
  18. */
  19. if (!defined('IS_VALID_PHPMYFAQ')) {
  20. exit();
  21. }
  22. /**
  23. * PMF_String_Basic
  24. *
  25. * @category phpMyFAQ
  26. * @package String
  27. * @author Anatoliy Belsky <ab@php.net>
  28. * @copyright 2009-2014 phpMyFAQ Team
  29. * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0
  30. * @link http://www.phpmyfaq.de
  31. * @since 2009-04-06
  32. */
  33. class PMF_String_Basic extends PMF_String_Abstract
  34. {
  35. /**
  36. * Instance
  37. *
  38. * @var PMF_String_Basic
  39. */
  40. private static $instance;
  41. /**
  42. * Default encoding
  43. *
  44. * @var string
  45. */
  46. const DEFAULT_ENCODING = 'iso-8859-1';
  47. /**
  48. *
  49. * Constructor
  50. *
  51. * @return PMF_String_Basic
  52. */
  53. private final function __construct()
  54. {
  55. }
  56. /**
  57. * Create and return an instance
  58. *
  59. * @param string $encoding
  60. * @param string $language
  61. *
  62. * @return PMF_String_Basic
  63. */
  64. public static function getInstance($encoding = null, $language = 'en')
  65. {
  66. if (!self::$instance) {
  67. self::$instance = new self;
  68. self::$instance->encoding = self::DEFAULT_ENCODING;
  69. self::$instance->language = PMF_Language::isASupportedLanguage($language) ? $language : self::DEFAULT_LANGUAGE;
  70. }
  71. return self::$instance;
  72. }
  73. /**
  74. * Get string character count
  75. *
  76. * @param string $str String
  77. *
  78. * @return int
  79. */
  80. public function strlen($str)
  81. {
  82. return strlen($str);
  83. }
  84. /**
  85. * Get a part of string
  86. *
  87. * @param string $str String
  88. * @param int $start Start
  89. * @param int $length Length
  90. *
  91. * @return string
  92. */
  93. public function substr($str, $start, $length = null)
  94. {
  95. $length = null == $length ? strlen($str) : $length;
  96. return substr($str, $start, $length);
  97. }
  98. /**
  99. * Get position of the first occurence of a string
  100. *
  101. * @param string $haystack Haystack
  102. * @param string $needle Needle
  103. * @param integer $offset Offset
  104. *
  105. * @return int
  106. */
  107. public function strpos($haystack, $needle, $offset = 0)
  108. {
  109. return strpos($haystack, $needle, $offset);
  110. }
  111. /**
  112. * Make a string lower case
  113. *
  114. * @param string $str String
  115. *
  116. * @return string
  117. */
  118. public function strtolower($str)
  119. {
  120. return strtolower($str);
  121. }
  122. /**
  123. * Make a string upper case
  124. *
  125. * @param string $str String
  126. *
  127. * @return string
  128. */
  129. public function strtoupper($str)
  130. {
  131. return strtoupper($str);
  132. }
  133. /**
  134. * Get occurence of a string within another
  135. *
  136. * @param string $haystack Haystack
  137. * @param string $needle Needle
  138. * @param boolean $part Part
  139. *
  140. * @return string|false
  141. */
  142. public function strstr($haystack, $needle, $part = false)
  143. {
  144. return strstr($haystack, $needle, (boolean) $part);
  145. }
  146. /**
  147. * Get last occurence of a string within another
  148. *
  149. * @param string $haystack
  150. * @param string $needle
  151. *
  152. * @return string
  153. */
  154. public function strrchr($haystack, $needle)
  155. {
  156. return strrchr($haystack, $needle);
  157. }
  158. /**
  159. * Count substring occurences
  160. *
  161. * @param string $haystack
  162. * @param string $needle
  163. *
  164. * @return int
  165. */
  166. public function substr_count($haystack, $needle)
  167. {
  168. return substr_count($haystack, $needle);
  169. }
  170. /**
  171. * Find position of last occurrence of a char in a string
  172. *
  173. * @param string $haystack
  174. * @param string $needle
  175. * @param int $offset
  176. *
  177. * @return int
  178. */
  179. public function strrpos($haystack, $needle, $offset = 0)
  180. {
  181. return strrpos($haystack, $needle, $offset);
  182. }
  183. /**
  184. * Match a regexp
  185. *
  186. * @param string $pattern
  187. * @param string $subject
  188. * @param array &$matches
  189. * @param int $flags
  190. * @param int $offset
  191. *
  192. * @return int
  193. */
  194. public function preg_match($pattern, $subject, &$matches = null, $flags = 0, $offset = 0)
  195. {
  196. return preg_match($pattern, $subject, $matches, $flags, $offset);
  197. }
  198. /**
  199. * Match a regexp globally
  200. *
  201. * @param string $pattern
  202. * @param string $subject
  203. * @param array &$matches
  204. * @param int $flags
  205. * @param int $offset
  206. *
  207. * @return int
  208. */
  209. public function preg_match_all($pattern, $subject, &$matches, $flags = 0, $offset = 0)
  210. {
  211. return preg_match_all($pattern, $subject, $matches, $flags, $offset);
  212. }
  213. /**
  214. * Split string by a regexp
  215. *
  216. * @param string $pattern
  217. * @param string $subject
  218. * @param int $limit
  219. * @param int $flags
  220. *
  221. * @return array
  222. */
  223. public function preg_split($pattern, $subject, $limit = -1, $flags = 0)
  224. {
  225. return preg_split($pattern, $subject, $limit, $flags);
  226. }
  227. /**
  228. * Search and replace by a regexp using a callback
  229. *
  230. * @param string|array $pattern
  231. * @param function $callback
  232. * @param string|array $subject
  233. * @param int $limit
  234. * @param int &$count
  235. *
  236. * @return array|string
  237. */
  238. public function preg_replace_callback($pattern, $callback, $subject, $limit= -1, &$count = 0)
  239. {
  240. return preg_replace_callback($pattern, $callback, $subject, $limit, $count);
  241. }
  242. /**
  243. * Search and replace by a regexp
  244. *
  245. * @param string|array $pattern
  246. * @param string|array $replacement
  247. * @param string|array $subject
  248. * @param int $limit
  249. * @param int &$count
  250. *
  251. * @return array|string|null
  252. */
  253. public function preg_replace($pattern, $replacement, $subject, $limit= -1, &$count = 0)
  254. {
  255. return preg_replace($pattern, $replacement, $subject, $limit, $count);
  256. }
  257. }