/dev/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/dev/trunk

« back to all changes in this revision

Viewing changes to tools.php

  • Committer: Suren A. Chilingaryan
  • Date: 2008-04-02 10:23:22 UTC
  • Revision ID: csa@dside.dyndns.org-20080402102322-okib92sicg2dx3o3
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
function GetTmpFile($prefix, $ext = false) {
 
3
    return tempnam(sys_get_temp_dir(), $prefix) . ($ext?".$ext":"");
 
4
}
 
5
 
 
6
function dsPrintSelectOptions($config, $selected=false) {
 
7
    foreach ($config as $opt => $value) {
 
8
        if (($selected)&&(strcmp($value,$selected))) $selected = " selected=\"1\"";
 
9
        else $selected = "";
 
10
        
 
11
        print "<option value=\"$value\"$selected>$opt</option>";
 
12
    }
 
13
}
 
14
 
 
15
function dsMathPreciseSubstract($a, $b) {
 
16
    $pos = strpos($a, ".");
 
17
    if ($pos === false) {
 
18
        $ra = 0;
 
19
        $ia = (int)$a;
 
20
    } else {
 
21
        $ia = (int)floor($a);
 
22
 
 
23
        if (is_float($a)) $ra = $a - $ia;
 
24
        else $ra = "0." . substr($a, $pos + 1);
 
25
    }
 
26
 
 
27
    $pos = strpos($b, ".");
 
28
    if ($pos === false) {
 
29
        $rb = 0;
 
30
        $ib = (int)$b;
 
31
    } else {
 
32
        $ib = (int)floor($b);
 
33
 
 
34
        if (is_float($b)) $rb = $b - $ib;
 
35
        else $rb = "0." . substr($b, $pos + 1);
 
36
    }
 
37
 
 
38
    if (($ra)||($rb)) {
 
39
        $r = $ra - $rb;
 
40
        if ($r < 0) return ($ia - $ib - 1) . strstr(sprintf("%.9F", ($r+1)), ".");
 
41
        else if ($r > 0) return ($ia - $ib) . strstr(sprintf("%.9F", $r), ".");
 
42
        else return ($ia - $ib);
 
43
    } else return $ia - $ib;
 
44
}
 
45
 
 
46
function dsMathPreciseAdd($a, $b) {
 
47
    $pos = strpos($a, ".");
 
48
    if ($pos === false) {
 
49
        $ra = 0;
 
50
        $ia = (int)$a;
 
51
    } else {
 
52
        $ia = (int)floor($a);
 
53
 
 
54
        if (is_float($a)) $ra = $a - $ia;
 
55
        else $ra = "0." . substr($a, $pos + 1);
 
56
    }
 
57
 
 
58
    $pos = strpos($b, ".");
 
59
    if ($pos === false) {
 
60
        $rb = 0;
 
61
        $ib = (int)$b;
 
62
    } else {
 
63
        $ib = (int)floor($b);
 
64
 
 
65
        if (is_float($b)) $rb = $b - $ib;
 
66
        else $rb = "0." . substr($b, $pos + 1);
 
67
    }
 
68
 
 
69
    if (($ra)||($rb)) {
 
70
        $r = $ra + $rb;
 
71
//      echo "V: $ra, $rb, $r.\n";
 
72
        if ($r > 1) return ($ia + $ib + 1) . strstr(sprintf("%.9F", $r), ".");
 
73
        else if ($r < 1) return ($ia + $ib) . strstr(sprintf("%.9F", $r), ".");
 
74
        else return ($ia + $ib + 1);
 
75
    } else return $ia + $ib;
 
76
}
 
77
 
 
78
function dsMathPreciseCompare($a, $b) {
 
79
    $pos = strpos($a, ".");
 
80
    if ($pos === false) {
 
81
        $ra = 0;
 
82
        $ia = (int)$a;
 
83
    } else {
 
84
        $ia = (int)floor($a);
 
85
 
 
86
        if (is_float($a)) $ra = $a - $ia;
 
87
        else $ra = "0." . substr($a, $pos + 1);
 
88
    }
 
89
 
 
90
    $pos = strpos($b, ".");
 
91
    if ($pos === false) {
 
92
        $rb = 0;
 
93
        $ib = (int)$b;
 
94
    } else {
 
95
        $ib = (int)floor($b);
 
96
 
 
97
        if (is_float($b)) $rb = $b - $ib;
 
98
        else $rb = "0." . substr($b, $pos + 1);
 
99
    }
 
100
 
 
101
    if (($ra)||($rb)) {
 
102
        if ($ia > $ib) return 1;
 
103
        if ($ia < $ib) return -1;
 
104
        return ($ra == $rb)?0:(($ra<$rb)?-1:1);
 
105
    } 
 
106
    return ($ia == $ib)?0:(($ia<$ib)?-1:1);
 
107
}
 
108
 
 
109
 
 
110
function xml_escape($message) {
 
111
    return htmlspecialchars($message, ENT_COMPAT, "UTF-8");
 
112
}
 
113
 
 
114
function translate($string) {
 
115
    $arg = array();
 
116
    for($i = 1 ; $i < func_num_args(); $i++)
 
117
        $arg[] = func_get_arg($i);
 
118
 
 
119
    return vsprintf(gettext($string), $arg);
 
120
}
 
121
 
 
122
?>
 
 
b'\\ No newline at end of file'