Mbstring.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /*
  3. * Licensed to the Apache Software Foundation (ASF) under one
  4. * or more contributor license agreements. See the NOTICE file
  5. * distributed with this work for additional information
  6. * regarding copyright ownership. The ASF licenses this file
  7. * to you under the Apache License, Version 2.0 (the
  8. * "License"); you may not use this file except in compliance
  9. * with the License. You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing,
  14. * software distributed under the License is distributed on an
  15. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16. * KIND, either express or implied. See the License for the
  17. * specific language governing permissions and limitations
  18. * under the License.
  19. *
  20. */
  21. namespace Thrift\StringFunc;
  22. class Mbstring implements TStringFunc
  23. {
  24. public function substr($str, $start, $length = null)
  25. {
  26. /**
  27. * We need to set the charset parameter, which is the second
  28. * optional parameter and the first optional parameter can't
  29. * be null or false as a "magic" value because that would
  30. * cause an empty string to be returned, so we need to
  31. * actually calculate the proper length value.
  32. */
  33. if ($length === null) {
  34. $length = $this->strlen($str) - $start;
  35. }
  36. return mb_substr($str, $start, $length, '8bit');
  37. }
  38. public function strlen($str)
  39. {
  40. return mb_strlen($str, '8bit');
  41. }
  42. }