Questione : PHP: Decodificare Base64 modificato

Uso il Javascript per mettere i dati in codice binari using Base64 modificato encoding.

I voglio decodificare i dati using PHP.

function BaseModified64_decode () devo essere modificato per sostenere gli usi della codifica modificati/>My di modifications.

-_.

anziché questi caratteri:
+/=
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
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:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
>< notpretty " del class= " del id= " codeSnippet644494 del
 
xmlns= " http://www.w3.org/1999/xhtml " del  
 
Soddisfare-Tipo testo/HTML " del http-equiv= di  
BaseModified64 Modified 

type= " testo/Javascript " del <script >
/* <! [CDATA [*/

varietà BaseModified64 = {
 
	proprietà privata di //
	_keyStr: “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_. „,
 
	metodo pubblico di // per la codifica
	mettere: funzione (input) {
		varietà prodotta = "";
		varietà chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		varietà i = 0;
 
		input = BaseModified64. _utf8_encode (input);
 
		mentre (i < input.length) {
 
			chr1 = input.charCodeAt (i++);
			chr2 = input.charCodeAt (i++);
			chr3 = input.charCodeAt (i++);
 
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
 
			se (isNaN (chr2)) {
				enc3 = enc4 = 64;
			} altrimenti se (isNaN (chr3)) {
				enc4 = 64;
			}
 
			uscita = prodotto +
			ciò. _keyStr.charAt (enc1) + questo. _keyStr.charAt (enc2) +
			ciò. _keyStr.charAt (enc3) + questo. _keyStr.charAt (enc4);
 
		}
 
		uscita di ritorno;
	},
 
	metodo pubblico di // per decodificare
	decodificare: funzione (input) {
		varietà prodotta = "";
		varietà chr1, chr2, chr3;
		varietà enc1, enc2, enc3, enc4;
		varietà i = 0;
 
		input = input.replace (/[^A-Za-z0-9 \ + \/\ =] /g, "");
 
		mentre (i < input.length) {
 
			enc1 = questo. _keyStr.indexOf (input.charAt (i++));
			enc2 = questo. _keyStr.indexOf (input.charAt (i++));
			enc3 = questo. _keyStr.indexOf (input.charAt (i++));
			enc4 = questo. _keyStr.indexOf (input.charAt (i++));
 
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
 
			uscita = prodotto + String.fromCharCode (chr1);
 
			se (enc3! = 64) {
				uscita = prodotto + String.fromCharCode (chr2);
			}
			se (enc4! = 64) {
				uscita = prodotto + String.fromCharCode (chr3);
			}
 
		}
 
		uscita = BaseModified64. _utf8_decode (uscita);
 
		uscita di ritorno;
 
	},
 
	metodo riservato di // per la codifica UTF-8
	_utf8_encode: funzione (stringa) {
		stringa = string.replace (/\ r \ n/g, “\ n„);
		utftext = "" di varietà;
 
		per (varietà n = 0; n < string.length; n++) {
 
			varietà c = string.charCodeAt (n);
 
			se (c < 128) {
				utftext += String.fromCharCode (c);
			}
			altrimenti se ((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode ((c >> 6) | 192);
				utftext += String.fromCharCode ((c & 63) | 128);
			}
			altrimenti {
				utftext += String.fromCharCode ((c >> 12) | 224);
				utftext += String.fromCharCode (((c >> 6) & 63) | 128);
				utftext += String.fromCharCode ((c & 63) | 128);
			}
 
		}
 
		utftext di ritorno;
	},
 
	metodo riservato di // per decodificare UTF-8
	_utf8_decode: funzione (utftext) {
		stringa = "" di varietà;
		varietà i = 0;
		varietà c = c1 = c2 = 0;
 
		mentre (i < utftext.length) {
 
			c = utftext.charCodeAt (i);
 
			se (c < 128) {
				stringa += String.fromCharCode (c);
				i++;
			}
			altrimenti se ((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt (i+1);
				stringa += String.fromCharCode (((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			altrimenti {
				c2 = utftext.charCodeAt (i+1);
				c3 = utftext.charCodeAt (i+2);
				stringa += String.fromCharCode (((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		stringa di ritorno;
	}
 
}


/*]] > */
</script>

</head> 
 
<body> 
 

Codice binario di <h1>Original: </h1>
<pre>
<? mondo di eco del PHP “ciao„. chr (119). chr (254). chr (15). chr (248). chr (239). chr (255);? >
</pre>

<h1>Processed con Base64 modificato: </h1>
<pre>
type= " testo/Javascript " del <script >
document.write (BaseModified64.encode (“<? mondo di eco del PHP “ciao„. chr (119). chr (254). chr (15). chr (248). chr (239). chr (255);? >"));
</script>
</pre>

<h1>This dovrebbe abbinare il codice binario originale: </h1>
<? PHP
eco BaseModified64_decode (“SGVsbG8gV29ybGQgd8O-D8O4w6_Dvw. .");
? >

</body> 
</html>
<? PHP

funzione BaseModified64_decode ($str) {
 Base64_decode di ritorno ($str);
}

? >
</pre>
        </td>
      </tr>
    </table></div>
</div>

class= ></div> " libero " del <div
    
class= " qRelatedRow " del <div >
    soluzioni >Related <span " di nome " del class=: </span>
    class= <span " valore " >
PHP " del title= " " di /Web_Development/Web_Languages-Standards/PHP/Q_26185623.html del href= di <a: Dati binari dell'uscita using class= >PHP " qRelatedParent " del chr () “: Dati binari dell'uscita using chr () </a></span>
  </span></h4>
</td>
</tr>
 
  <tr><td height="2px"></td></tr> 
  <tr style="background-color:#f2f4f6"><td >
<h2 style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:14px;color:red;font-weight:bold">
<span id="ContentPlaceHolder1_tieude_as">Risposta : PHP: Decodificare Base64 modificato</span>
</h2></td></tr>
  <tr>
<td valign="top"> 
<h5><span id="ContentPlaceHolder1_ans" style="font-family:Tahoma,Geneva,sans-serif;font-size:12px;font-weight:normal;color:#000000">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
<div class="richText">
Provare questo:<br /><br />funzione BaseModified64_decode ($str) {<br />    base64_decode di ritorno (strtr ($str, allineamento (“-„ => “+„, “_ “/„„ del =>, “.„ =") del => “));<br />}<br /><br />hernst42 ha avuto un virgola anziché un periodo negli accoppiamenti finali di allineamento.</div>  <!-- richText -->
                      
</div>
</span></h5>
</td>
</tr>
<tr><td height="5px"></td></tr>

 <tr>
                            <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><table width="100%" height="25px" border="0" cellspacing="0" cellpadding="0">
                                  <tr>

                                    <td width="100px" bgcolor="#FFFFFF" style="padding-left:5px"><span class="f11blue">Altre soluzioni</span></td>
                                    <td background="http://programming4.us/images/bg-ch.gif"> </td>
                                  </tr>
                                </table></td>
                              </tr>
                              <tr>
                                <td style="padding:5px">
                                <div>
                                    <table id="ContentPlaceHolder1_DataList2" cellspacing="0" style="width:100%;border-collapse:collapse;">
		<tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/4416.aspx' class="a4">
<li> Sysprepping Windows 7 pc</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/30400.aspx' class="a4">
<li> Ciclaggio complesso di domanda di Coldfusion</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/16560.aspx' class="a4">
<li> SPContext.Current sta restituendo la posizione di segnale minimo nell'alimentatore di evento “di SPItemEventReceiver„.</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/22872.aspx' class="a4">
<li> IL CSS che IL MIME errato scriv dentro Firefox a macchina su Apache, il testo/css .css di AddType è là</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/7780.aspx' class="a4">
<li> MAcbook pro rifiuta di collegarsi via Ethernet ma impianti via il wifi</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/software/33764.aspx' class="a4">
<li> Cliente del Java applet - Eccezione di sicurezza</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/124.aspx' class="a4">
<li> Mostrare tutte le annotazioni nella domanda se niente selezionato in Listbox - la parte II</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/26232.aspx' class="a4">
<li> Mouseover su div.a cambia la disposizione di div.b (CSS puro)</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/32544.aspx' class="a4">
<li> Azionamento duro PowerEdge guast 1850 di incursione 1</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/it/microsoft/18704.aspx' class="a4">
<li> asp - La risorsa non ha potuto essere trovata</li></a>
</td>
</tr>
</table>
</td>
		</tr>
	</table>

                               
                                </div></td>
                              </tr>
                            </table></td>
                          </tr>

</table>
                    
</div>
                  </td></tr>
                  </table>
                  </form>
                         </td>

                        </tr>
                    
                      <tr>
                        <td> </td>
                        </tr>
                      </table></td>
                    </tr>
                  </table></td>
              </tr>
              </table></td>

        

            </tr>
          </table>

 
         </td>
      </tr>

<tr>
            <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td background="http://tutorial.wmlcloud.com/images/bg-mn.jpg" height="30px" style="padding:5px;color:#ffffff;font-size:12px; font-family:Tahoma, Geneva, sans-serif;text-decoration: none;" ></td>
              </tr>
              <tr>
                <td><table width="100%" border="0" cellspacing="0" cellpadding="0">


 <tr>

                    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td><img src="http://tutorial.wmlcloud.com/images/bo-l.png" alt="programming4us" width="8" height="9" /></td>
                          <td bgcolor="#FFFFFF" width="100%"></td>
                          <td><img src="http://tutorial.wmlcloud.com/images/bo-r.png" alt="programming4us" width="8" height="9" /></td>
                        </tr>
                    </table></td>
                  </tr>
                </table></td>

              </tr>
            </table></td>
          </tr>
<tr><td height="2px"></td></tr>
<tr><td>
<div align="center">


</div>
</td>
</tr>
 <tr><td height="3px"></td></tr>

      <tr>
        <td height="2px"></td>
      </tr>
      <tr>
        <td align="left">
        <table cellpadding="0" cellspacing="0" width="100%" align="left">
        <tr>
        <td valign="top">
          <div id="en"><a href='http://faq.wmlcloud.com/microsoft/4996.aspx'><img src='http://faq.wmlcloud.com/flags/en.gif'></a></div>
        </td>
          <td valign="top">
          
        </td>
          <td valign="top">
          
        </td>
          <td valign="top">
          <div id="fr"><a href='http://faq.wmlcloud.com/fr/microsoft/4996.aspx'><img src='http://faq.wmlcloud.com/flags/fr.gif'></a></div>
        </td>
          <td valign="top">
          
        </td>
          <td valign="top">
          <div id="it"><a href='http://faq.wmlcloud.com/it/microsoft/4996.aspx'><img src='http://faq.wmlcloud.com/flags/it.gif'></a></div>
        </td>
          <td valign="top">
          <div id="ru"><a href='http://faq.wmlcloud.com/ru/microsoft/4996.aspx'><img src='http://faq.wmlcloud.com/flags/ru.gif'></a></div>
        </td>
         <td valign="top">
          
        </td>
         <td valign="top">
          
        </td>
        
         <td valign="top">
          <div id="pt"><a href='http://faq.wmlcloud.com/pt/microsoft/4996.aspx'><img src='http://faq.wmlcloud.com/flags/pt.gif'></a></div>
        </td>
         <td valign="top">
          
        </td>
         <td valign="top">
          
        </td>
        </tr>
        </table>
        </td>
      </tr>
        <tr>
        <td height="2px"></td>
      </tr>

</td></tr>


 
</table>
		<script src="//cdn.intergient.com/ramp_core.js"></script>	

</body>
</html>