Question : PHP : Décoder Base64 modifié

J'emploie le Javascript pour coder des données binaires using Base64 modifié encoding.

I veux décoder les données using PHP.

function BaseModified64_decode () doit être modifié pour soutenir les utilisations de codage modifiées par/>My de modifications.

-_.

au lieu de ces caractères :
+/=
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
>< " de l'id= " codeSnippet644494 de
< ! PUBLIC de HTML de DOCTYPE « - //W3C//DTD XHTML 1.0 Strict//EN » « http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd " > 
xmlns= " http://www.w3.org/1999/xhtml " de  
 
Contenu-Type " texte de content= "/HTML de http-equiv= " de  
BaseModified64 Modified 

type= de <script " texte/Javascript " >
/* < ! [CDATA [*

variété BaseModified64 = {
 
	propriété privée de //
	_keyStr : « ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.  »,
 
	méthode publique de // pour le codage
	coder : fonction (entrée) {
		variété produite = "" ;
		variété chr1, chr2, chr3, enc1, enc2, enc3, enc4 ;
		variété i = 0 ;
 
		entrée = BaseModified64. _utf8_encode (entrée) ;
 
		tandis que (I < input.length) {
 
			chr1 = input.charCodeAt (i++) ;
			chr2 = input.charCodeAt (i++) ;
			chr3 = input.charCodeAt (i++) ;
 
			enc1 = chr1 >> 2 ;
			enc2 = ((chr1 et 3) << 4) | (chr2 >> 4) ;
			enc3 = ((chr2 et 15) << 2) | (chr3 >> 6) ;
			enc4 = chr3 et 63 ;
 
			si (isNaN (chr2)) {
				enc3 = enc4 = 64 ;
			} autrement si (isNaN (chr3)) {
				enc4 = 64 ;
			}
 
			rendement = produit +
			ceci. _keyStr.charAt (enc1) + ceci. _keyStr.charAt (enc2) +
			ceci. _keyStr.charAt (enc3) + ceci. _keyStr.charAt (enc4) ;
 
		}
 
		rendement de retour ;
	},
 
	méthode publique de // pour le décodage
	décoder : fonction (entrée) {
		variété produite = "" ;
		variété chr1, chr2, chr3 ;
		variété enc1, enc2, enc3, enc4 ;
		variété i = 0 ;
 
		entrée = input.replace (/[^A-Za-z0-9 \ + \/\ =] /g, "") ;
 
		tandis que (I < input.length) {
 
			enc1 = ceci. _keyStr.indexOf (input.charAt (i++));
			enc2 = ceci. _keyStr.indexOf (input.charAt (i++));
			enc3 = ceci. _keyStr.indexOf (input.charAt (i++));
			enc4 = ceci. _keyStr.indexOf (input.charAt (i++));
 
			chr1 = (enc1 << 2) | (enc2 >> 4) ;
			chr2 = ((enc2 et 15) << 4) | (enc3 >> 2) ;
			chr3 = ((enc3 et 3) << 6) | enc4 ;
 
			rendement = produit + String.fromCharCode (chr1) ;
 
			si (enc3 ! = 64) {
				rendement = produit + String.fromCharCode (chr2) ;
			}
			si (enc4 ! = 64) {
				rendement = produit + String.fromCharCode (chr3) ;
			}
 
		}
 
		rendement = BaseModified64. _utf8_decode (rendement) ;
 
		rendement de retour ;
 
	},
 
	méthode privée de // pour le codage UTF-8
	_utf8_encode : fonction (corde) {
		corde = string.replace (/\ r \ n/g, « \ n ») ;
		utftext = "" de variété ;
 
		pour (variété n = 0 ; n < string.length ; n++) {
 
			variété c = string.charCodeAt (n) ;
 
			si (c < 128) {
				utftext += String.fromCharCode (c) ;
			}
			autrement si ((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode ((c >> 6) | 192) ;
				utftext += String.fromCharCode ((c et 63) | 128) ;
			}
			autrement {
				utftext += String.fromCharCode ((c >> 12) | 224) ;
				utftext += String.fromCharCode (((c >> 6) et 63) | 128) ;
				utftext += String.fromCharCode ((c et 63) | 128) ;
			}
 
		}
 
		utftext de retour ;
	},
 
	méthode privée de // pour le décodage UTF-8
	_utf8_decode : fonction (utftext) {
		corde = "" de variété ;
		variété i = 0 ;
		variété c = c1 = C2 = 0 ;
 
		tandis que (I < utftext.length) {
 
			c = utftext.charCodeAt (i) ;
 
			si (c < 128) {
				corde += String.fromCharCode (c) ;
				i++ ;
			}
			autrement si ((c > 191) && (c < 224)) {
				C2 = utftext.charCodeAt (i+1) ;
				corde += String.fromCharCode (((c et 31) << 6) | (C2 et 63));
				i += 2 ;
			}
			autrement {
				C2 = utftext.charCodeAt (i+1) ;
				c3 = utftext.charCodeAt (i+2) ;
				corde += String.fromCharCode (((c et 15) << 12) | ((C2 et 63) << 6) | (c3 et 63));
				i += 3 ;
			}
 
		}
 
		corde de retour ;
	}
 
}


/*]] > *
</script>

</head> 
 
<body> 
 

Code binaire de <h1>Original : </h1>
<pre>
< ? monde d'écho de PHP « bonjour ». chr (119). chr (254). chr (15). chr (248). chr (239). chr (255) ; ? >
</pre>

<h1>Processed avec Base64 modifié : </h1>
<pre>
type= de <script " texte/Javascript " >
document.write (BaseModified64.encode (« < ? monde d'écho de PHP « bonjour ». chr (119). chr (254). chr (15). chr (248). chr (239). chr (255) ; ? >")) ;
</script>
</pre>

<h1>This devrait assortir le code binaire original : </h1>
< ? PHP
écho BaseModified64_decode (« SGVsbG8gV29ybGQgd8O-D8O4w6_Dvw. .") ;
? >

</body> 
</html>
< ? PHP

fonction BaseModified64_decode ($str) {
 Base64_decode de retour ($str) ;
}

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

class= ></div> " clair " de <div
    
class= " qRelatedRow " de <div >
    solutions >Related <span de " nom " de class= : </span>
    class= <span " valeur " >
PHP de title= " de " /Web_Development/Web_Languages-Standards/PHP/Q_26185623.html de href= " de <a : Données binaires de rendement class= >PHP " qRelatedParent " using chr () « : Données binaires de rendement using le 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">Réponse : PHP : Décoder Base64 modifié</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">
Essayer ceci :<br /><br />fonction BaseModified64_decode ($str) {<br />    base64_decode de retour (strtr ($str, rangée (« - » => « + », « _ » « de =>/ », « . » =") de => « ));<br />}<br /><br />hernst42 a eu une virgule au lieu d'une période dans les paires finales de rangée.</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">Autres solutions</span></td>
                                    <td background="http://wmlcloud.com/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/fr/microsoft/13056.aspx' class="a4">
<li> MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/software/38680.aspx' class="a4">
<li> Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/5260.aspx' class="a4">
<li> Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/30880.aspx' class="a4">
<li> Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/16544.aspx' class="a4">
<li> Emplacement primaire de deux SCCM dans l'annuaire actif</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/23080.aspx' class="a4">
<li> L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/8744.aspx' class="a4">
<li> Stocker le dossier dans le mysql using connector.net et le champ de goutte</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/15280.aspx' class="a4">
<li> Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/software/33104.aspx' class="a4">
<li> asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.</li></a>
</td>
</tr>
</table>
</td>
		</tr><tr>
			<td>
<table>
<tr>
<td valign="top" align="left">
<a href='http://faq.wmlcloud.com/fr/microsoft/18764.aspx' class="a4">
<li> Winzip 12 issues de secours du travail ?</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>