Issues (186)

src/Utils/WebDAV.php (4 issues)

1
<?php
2
namespace SilverStripe\FullTextSearch\Utils;
3
4
class WebDAV
5
{
6
    public static function curl_init($url, $method)
7
    {
8
        $ch = curl_init($url);
9
10
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
11
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
12
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
13
14
        return $ch;
15
    }
16
17
    public static function exists($url)
18
    {
19
        // WebDAV expects that checking a directory exists has a trailing slash
20
        if (substr($url, -1) != '/') {
21
            $url .= '/';
22
        }
23
24
        $ch = self::curl_init($url, 'PROPFIND');
25
        
26
        $res = curl_exec($ch);
0 ignored issues
show
The assignment to $res is dead and can be removed.
Loading history...
27
        $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
28
29
        if ($code == 404) {
30
            return false;
31
        }
32
        if ($code == 200 || $code == 207) {
33
            return true;
34
        }
35
36
        user_error("Got error from webdav server - " . $code, E_USER_ERROR);
37
    }
38
39
    public static function mkdir($url)
40
    {
41
        $ch = self::curl_init(rtrim($url, '/') . '/', 'MKCOL');
42
43
        $res = curl_exec($ch);
0 ignored issues
show
The assignment to $res is dead and can be removed.
Loading history...
44
        $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
45
46
        return $code == 201;
47
    }
48
49
    public static function put($handle, $url)
50
    {
51
        $ch = curl_init($url);
52
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
53
54
        curl_setopt($ch, CURLOPT_PUT, true);
55
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
0 ignored issues
show
The constant CURLOPT_BINARYTRANSFER has been deprecated: 5.1.3 ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

55
        curl_setopt($ch, /** @scrutinizer ignore-deprecated */ CURLOPT_BINARYTRANSFER, true);
Loading history...
56
57
        curl_setopt($ch, CURLOPT_INFILE, $handle);
58
59
        $res = curl_exec($ch);
0 ignored issues
show
The assignment to $res is dead and can be removed.
Loading history...
60
        fclose($handle);
61
62
        return curl_getinfo($ch, CURLINFO_HTTP_CODE);
63
    }
64
65
    public static function upload_from_string($string, $url)
66
    {
67
        $fh = tmpfile();
68
        fwrite($fh, $string);
69
        fseek($fh, 0);
70
        return self::put($fh, $url);
71
    }
72
73
    public static function upload_from_file($string, $url)
74
    {
75
        return self::put(fopen($string, 'rb'), $url);
76
    }
77
}
78