Commit 6d36a52be193182967583fbab0e4ae7b5015247a
1 parent
6920cf73
Exists in
master
and in
7 other branches
--no commit message
Showing
2 changed files
with
193 additions
and
1 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,191 @@ |
| 1 | +<? | |
| 2 | + | |
| 3 | +class easy_parser{ | |
| 4 | + | |
| 5 | +var $old_element = ""; | |
| 6 | +var $attribute = array(); | |
| 7 | +var $dado = ""; | |
| 8 | +var $array_element = array(); | |
| 9 | +var $array_attribute_value = array(); | |
| 10 | +var $array_attributes = array(); | |
| 11 | +var $array_nodes = array(); | |
| 12 | +var $current_element = ""; | |
| 13 | +var $array_texto = array(); | |
| 14 | +var $get_err = ""; | |
| 15 | +var $texto = ""; | |
| 16 | + | |
| 17 | +function getpart($texto,$string,$reset=TRUE,$position=0) | |
| 18 | +{ | |
| 19 | + static $p0=0; | |
| 20 | + $p0 += $position; | |
| 21 | + if($reset){ | |
| 22 | + $p0 = 0; | |
| 23 | + } | |
| 24 | + $get = ""; | |
| 25 | + $string = trim($string); | |
| 26 | + if(strpos($texto,"<$string>",$p0) >=0) | |
| 27 | + { | |
| 28 | + $p1 = strpos($texto,"<$string>",$p0); | |
| 29 | + $p2 = strpos($texto,"</$string>",$p0); | |
| 30 | + $len = strlen("<$string>"); | |
| 31 | + $get = substr($texto,($p1 + $len),($p2 - $p1 - $len)); | |
| 32 | + $p0 = $p2+$len; | |
| 33 | + } | |
| 34 | + return $get; | |
| 35 | +} | |
| 36 | + | |
| 37 | + | |
| 38 | +function getrpart($texto,$string) | |
| 39 | +{ | |
| 40 | + | |
| 41 | + $get = ""; | |
| 42 | + $string = trim($string); | |
| 43 | + | |
| 44 | + if(strrpos($texto,"<$string>") >=0) | |
| 45 | + { | |
| 46 | + | |
| 47 | + $p1 = strrpos($texto,"<$string>"); | |
| 48 | + $texto2 = substr($texto,0,$p1); | |
| 49 | + $p2 = strrpos($texto2,"</$string>"); | |
| 50 | + $len = strlen("<$string>"); | |
| 51 | + $get = substr($texto2,$p2); | |
| 52 | + } | |
| 53 | + return $get; | |
| 54 | +} | |
| 55 | + | |
| 56 | +function parser($document,$is_file=TRUE){ | |
| 57 | + $result = TRUE; | |
| 58 | + $parser = xml_parser_create('ISO-8859-1'); | |
| 59 | + xml_set_object($parser,$this); | |
| 60 | + xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING, 0); | |
| 61 | + xml_set_element_handler($parser,"start_element","end_element"); | |
| 62 | + xml_set_character_data_handler($parser,"character_data"); | |
| 63 | + | |
| 64 | + if($is_file){ | |
| 65 | + if(file_exists($document)){ | |
| 66 | + | |
| 67 | + $xml_file = fopen($document,"r"); | |
| 68 | + $data = ""; | |
| 69 | + $ind = 0; | |
| 70 | + while (!feof($xml_file)) { | |
| 71 | + $data = fgets($xml_file,256); | |
| 72 | + if(ereg("<!ENTITY.*SYSTEM",$data,$matchs) && strpos($data,"NDATA") < 1){ | |
| 73 | + $arrai = split(" ",$data); | |
| 74 | + $arrai[3] = str_replace("\">","",$arrai[3]); | |
| 75 | + $arrai[3] = trim(str_replace("\"","",$arrai[3])); | |
| 76 | + if(file_exists($arrai[3])){ | |
| 77 | + $fp = fopen($arrai[3],"r"); | |
| 78 | + while(!feof($fp)){ | |
| 79 | + $ext_val[$ind] .= fgets($fp,1024); | |
| 80 | + } | |
| 81 | + fclose($fp); | |
| 82 | + $ext_key[$ind] = trim($arrai[1]); | |
| 83 | + ++$ind; | |
| 84 | + } | |
| 85 | + } | |
| 86 | + | |
| 87 | + $this->texto .= $data; | |
| 88 | + } | |
| 89 | + | |
| 90 | + fclose($xml_file); | |
| 91 | + }else{ | |
| 92 | + print "<b><h3>The file: <font color=\"blue\">$document</font> not found.</b><h3>"; | |
| 93 | + } | |
| 94 | + }else{ | |
| 95 | + $this->texto = $document; | |
| 96 | + } | |
| 97 | + | |
| 98 | + if(isset($ext_val)){ | |
| 99 | + $ind = 0; | |
| 100 | + foreach($ext_val as $value){ | |
| 101 | + $this->texto = str_replace("&".$ext_key[$ind].";","$value\\n",$this->texto); | |
| 102 | + ++$ind; | |
| 103 | + } | |
| 104 | + } | |
| 105 | + $this->array_texto = explode("\n",$this->texto); | |
| 106 | + | |
| 107 | + if (!xml_parse($parser, $this->texto,TRUE)) { | |
| 108 | + $err_line = $this->array_texto[(xml_get_current_line_number($parser)-1)]; | |
| 109 | + $err_col = xml_get_current_column_number($parser); | |
| 110 | + $text1 = "<font color=\"blue\" size=\"3\" face=\"arial\">".htmlentities(substr($err_line,0,($err_col -1)))."</font><font color=\"red\" size=\"3\" face=\"arial\">"; | |
| 111 | + $text2 = htmlentities(substr($err_line,($err_col),1))."</font><font color=\"blue\" size=\"3\" face=\"arial\">"; | |
| 112 | + $text3 = htmlentities(substr($err_line,($err_col +1)))."<font>"; | |
| 113 | + $this->get_err = "<font color=\"black\" size=\"3\" face=\"arial\">Fonte do documento: $document<br>" | |
| 114 | + ."<b>XML error: </b>".xml_error_string(xml_get_error_code($parser))." <b>at</b> line " | |
| 115 | + .xml_get_current_line_number($parser)." and colunm $err_col<br>" | |
| 116 | + ."<b> Texto: </b>$text1$text2$text3"; | |
| 117 | + $result = FALSE; | |
| 118 | + } | |
| 119 | + | |
| 120 | + xml_parser_free($parser); | |
| 121 | + return $result; | |
| 122 | +} | |
| 123 | + | |
| 124 | +function start_element($parser,$element_name,$attributes){ | |
| 125 | + $this->attribute = $attributes; | |
| 126 | + $this->dado = ""; | |
| 127 | + $this->current_element = $element_name; | |
| 128 | + | |
| 129 | + if(!in_array($element_name,$this->array_nodes)){ | |
| 130 | + $this->array_nodes[] = $element_name; | |
| 131 | + } | |
| 132 | + | |
| 133 | + while(list($key,$value) = each($attributes)){ | |
| 134 | + $attr[] = $key; | |
| 135 | + } | |
| 136 | +$this->array_attributes[$this->current_element] = $attr; | |
| 137 | + | |
| 138 | +} | |
| 139 | + | |
| 140 | +function end_element($parser,$element_name){ | |
| 141 | + if(trim($this->dado) != ""){ | |
| 142 | + $this->array_element[$this->current_element][] = $this->dado; | |
| 143 | + } | |
| 144 | + reset($this->attribute); | |
| 145 | + $this->dado = ""; | |
| 146 | + if(count($this->attribute)>0){ | |
| 147 | + $this->array_attribute_value[$this->current_element][] = $this->attribute; | |
| 148 | + } | |
| 149 | +} | |
| 150 | + | |
| 151 | + | |
| 152 | +function character_data($parser,$data){ | |
| 153 | + $this->dado .= $data; | |
| 154 | +} | |
| 155 | + | |
| 156 | + | |
| 157 | +function get_element_value($element,$ind = 0){ | |
| 158 | + return $this->array_element[$element][$ind]; | |
| 159 | +} | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | +function get_element_rows($element){ | |
| 164 | + return count($this->array_element[$element]); | |
| 165 | +} | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | +function get_elements(){ | |
| 170 | + return $this->array_nodes; | |
| 171 | +} | |
| 172 | + | |
| 173 | + | |
| 174 | +function get_element_attribute($element,$ind = 0,$attribute){ | |
| 175 | + return $this->array_attribute_value[$element][$ind][$attribute]; | |
| 176 | +} | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | +function get_attributes($element){ | |
| 181 | + return $this->array_attributes[$element]; | |
| 182 | +} | |
| 183 | + | |
| 184 | +function view_source(){ | |
| 185 | + $retorno = htmlentities($this->texto); | |
| 186 | + return str_replace(">","><br>",$retorno); | |
| 187 | +} | |
| 188 | + | |
| 189 | +} | |
| 190 | + | |
| 191 | +?> | ... | ... |
pacotes/SOAP/nusoap.php
| ... | ... | @@ -7380,8 +7380,9 @@ class nusoap_client extends nusoap_base { |
| 7380 | 7380 | * @access public |
| 7381 | 7381 | */ |
| 7382 | 7382 | function loadWSDL() { |
| 7383 | + error_reporting(0); | |
| 7383 | 7384 | $this->debug('instantiating wsdl class with doc: '.$this->wsdlFile); |
| 7384 | - $this->wsdl =& new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl); | |
| 7385 | + $this->wsdl = new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl); | |
| 7385 | 7386 | $this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest); |
| 7386 | 7387 | $this->wsdl->fetchWSDL($this->wsdlFile); |
| 7387 | 7388 | $this->checkWSDL(); | ... | ... |