xref: /dokuwiki/inc/compatibility.php (revision 766251f0103cd6cb1d35a1be6daeafc43cb1c325)
1<?php
2
3/**
4 * compatibility functions
5 *
6 * This file contains a few functions that might be missing from the PHP build
7 */
8
9if (!function_exists('ctype_space')) {
10    /**
11     * Check for whitespace character(s)
12     *
13     * @param string $text
14     * @return bool
15     * @see ctype_space
16     */
17    function ctype_space($text)
18    {
19        if (!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
20        if (trim($text) === '') return true;
21        return false;
22    }
23}
24
25if (!function_exists('ctype_digit')) {
26    /**
27     * Check for numeric character(s)
28     *
29     * @param string $text
30     * @return bool
31     * @see ctype_digit
32     */
33    function ctype_digit($text)
34    {
35        if (!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
36        if (preg_match('/^\d+$/', $text)) return true;
37        return false;
38    }
39}
40
41if (!function_exists('gzopen') && function_exists('gzopen64')) {
42    /**
43     * work around for PHP compiled against certain zlib versions #865
44     *
45     * @link http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
46     *
47     * @param string $filename
48     * @param string $mode
49     * @param int $use_include_path
50     * @return mixed
51     */
52    function gzopen($filename, $mode, $use_include_path = 0)
53    {
54        return gzopen64($filename, $mode, $use_include_path);
55    }
56}
57
58if (!function_exists('gzseek') && function_exists('gzseek64')) {
59    /**
60     * work around for PHP compiled against certain zlib versions #865
61     *
62     * @link http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
63     *
64     * @param resource $zp
65     * @param int $offset
66     * @param int $whence
67     * @return int
68     */
69    function gzseek($zp, $offset, $whence = SEEK_SET)
70    {
71        return gzseek64($zp, $offset, $whence);
72    }
73}
74
75if (!function_exists('gztell') && function_exists('gztell64')) {
76    /**
77     * work around for PHP compiled against certain zlib versions #865
78     *
79     * @link   http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
80     *
81     * @param resource $zp
82     * @return int
83     */
84    function gztell($zp)
85    {
86        return gztell64($zp);
87    }
88}
89