-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinc-lib.php
66 lines (57 loc) · 2.1 KB
/
inc-lib.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/*******************************************************************************
*
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2015-06-17
* Modified : 2023-02-27
* For LOVD : 3.0-29
*
* Copyright : 2004-2023 Leiden University Medical Center; http://www.LUMC.nl/
* Programmer : Ivo F.A.C. Fokkema <[email protected]>
*
*
* This file is part of LOVD.
*
* LOVD is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* LOVD is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LOVD. If not, see <http://www.gnu.org/licenses/>.
*
*************/
function lovd_cleanDirName ($s)
{
// Cleans a given path by resolving a relative path.
if (!is_string($s)) {
// No input.
return false;
}
// Clean up the pwd; remove '\' (some PHP versions under Windows seem to escape the slashes with backslashes???)
$s = stripslashes($s);
// Clean up the pwd; remove '//'
$s = preg_replace('/\/+/', '/', $s);
// Clean up the pwd; remove '/./'
$s = preg_replace('/\/\.\//', '/', $s);
// Clean up the pwd; remove '/dir/../'
$s = preg_replace('/\/[^\/]+\/\.\.\//', '/', $s);
// Hackers may try to give us links that start with a parent dir. That would cause an infinite loop.
$s = preg_replace('/^\/\.\.\//', '/', $s);
if (preg_match('/\/(\.)?\.\//', $s)) {
// Still not clean... Pff...
$s = lovd_cleanDirName($s);
}
return $s;
}
function lovd_getInstallURL ($bFull = true)
{
// Returns URL that can be used in URLs or redirects.
return (!$bFull? '' : PROTOCOL . $_SERVER['HTTP_HOST']) . lovd_cleanDirName(dirname($_SERVER['SCRIPT_NAME']) . '/' . ROOT_PATH);
}