1. PHP-Verschlüsselung und -Entschlüsselung
PHP-Verschlüsselungs- und Entschlüsselungsfunktionen können verwendet werden, um einige nützliche Zeichenfolgen zu verschlüsseln und in der Datenbank zu speichern und die Zeichenfolgen reversibel zu entschlüsseln. Diese Funktion verwendet Base64- und MD5-Verschlüsselung und -Entschlüsselung.
<span> 1</span> <span>function</span> encryptDecrypt(<span>$key</span>, <span>$string</span>, <span>$decrypt</span><span>){ </span><span> 2</span> <span> 3</span> <span>if</span>(<span>$decrypt</span><span>){ </span><span> 4</span> <span> 5</span> <span>$decrypted</span> = <span>rtrim</span>(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, <span>md5</span>(<span>$key</span>), <span>base64_decode</span> <span> 6</span> (<span>$string</span>), MCRYPT_MODE_CBC, <span>md5</span>(<span>md5</span>(<span>$key</span>))), "12"<span>); </span><span> 7</span> <span> 8</span> <span>return</span> <span>$decrypted</span><span>; </span><span> 9</span> <span>10</span> }<span>else</span><span>{ </span><span>11</span> <span>12</span> <span>$encrypted</span> = <span>base64_encode</span>(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, <span>md5</span>(<span>$key</span>), <span>13</span> <span>$string</span>, MCRYPT_MODE_CBC, <span>md5</span>(<span>md5</span>(<span>$key</span><span>)))); </span><span>14</span> <span>15</span> <span>return</span> <span>$encrypted</span><span>; </span><span>16</span> <span>17</span> <span> } </span><span>18</span> <span>19</span> }
So verwenden Sie es:
<span>1</span> <span>//</span><span>以下是将字符串“Helloweba欢迎您”分别加密和解密 </span><span>2</span> <span>3</span> <span>//加密: </span> <span>4</span> <span>5</span> <span>echo</span> encryptDecrypt('password', 'Helloweba欢迎您',0<span>); </span><span>6</span> <span>7</span> <span>//</span><span>解密: </span> <span>8</span> <span>9</span> <span>echo</span> encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
2. PHP generiert zufällige Zeichenfolgen
Wenn wir einen zufälligen Namen, ein temporäres Passwort und andere Zeichenfolgen generieren müssen, können wir die folgende Funktion verwenden:
<span> 1</span> <span>function</span> generateRandomString(<span>$length</span> = 10<span>) { </span><span> 2</span> <span> 3</span> <span>$characters</span> = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'<span>; </span><span> 4</span> <span> 5</span> <span>$randomString</span> = ''<span>; </span><span> 6</span> <span> 7</span> <span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$length</span>; <span>$i</span>++<span>) { </span><span> 8</span> <span> 9</span> <span>$randomString</span> .= <span>$characters</span>[<span>rand</span>(0, <span>strlen</span>(<span>$characters</span>) - 1<span>)]; </span><span>10</span> <span>11</span> <span> } </span><span>12</span> <span>13</span> <span>return</span> <span>$randomString</span><span>; </span><span>14</span> <span>15</span> }
So verwenden Sie es:
<span>1</span> <span>echo</span> generateRandomString(20);
3. PHP erhält die Dateierweiterung (Suffix)
Mit der folgenden Funktion können Sie schnell die Dateierweiterung oder das Suffix ermitteln.
<span>1</span> <span>function</span> getExtension(<span>$filename</span><span>){ </span><span>2</span> <span>3</span> <span>$myext</span> = <span>substr</span>(<span>$filename</span>, <span>strrpos</span>(<span>$filename</span>, '.'<span>)); </span><span>4</span> <span>5</span> <span>return</span> <span>str_replace</span>('.','',<span>$myext</span><span>); </span><span>6</span> <span>7</span> }
So verwenden Sie es:
<span>1</span> <span>$filename</span> = '我的文档.doc'<span>; </span><span>2</span> <span>3</span> <span>echo</span> getExtension(<span>$filename</span>);
4. PHP ermittelt die Dateigröße und formatiert sie
Die unten verwendete Funktion kann die Größe der Datei ermitteln und sie in leicht lesbare KB-, MB- und andere Formate konvertieren.
<span> 1</span> <span>function</span> formatSize(<span>$size</span><span>) { </span><span> 2</span> <span> 3</span> <span>$sizes</span> = <span>array</span>(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"<span>); </span><span> 4</span> <span> 5</span> <span>if</span> (<span>$size</span> == 0<span>) { </span><span> 6</span> <span> 7</span> <span>return</span>('n/a'<span>); </span><span> 8</span> <span> 9</span> } <span>else</span><span> { </span><span>10</span> <span>11</span> <span>return</span> (<span>round</span>(<span>$size</span>/<span>pow</span>(1024, (<span>$i</span> = <span>floor</span>(<span>log</span>(<span>$size</span>, 1024)))), 2) . <span>$sizes</span>[<span>$i</span><span>]); </span><span>12</span> <span>13</span> <span> } </span><span>14</span> <span>15</span> }
So verwenden Sie es:
<span>1</span> <span>$thefile</span> = <span>filesize</span>('test_file.mp3'<span>); </span><span>2</span> <span>3</span> <span>echo</span> formatSize(<span>$thefile</span>);
5. PHP ersetzt Tag-Zeichen
Manchmal müssen wir Zeichenfolgen und Vorlagen-Tags durch bestimmte Inhalte ersetzen. Sie können die folgende Funktion verwenden:
<span> 1</span> <span>function</span> stringParser(<span>$string</span>,<span>$replacer</span><span>){ </span><span> 2</span> <span> 3</span> <span>$result</span> = <span>str_replace</span>(<span>array_keys</span>(<span>$replacer</span>), <span>array_values</span>(<span>$replacer</span>),<span>$string</span><span>); </span><span> 4</span> <span> 5</span> <span>return</span> <span>$result</span><span>; </span><span> 6</span> <span> 7</span> <span>} </span><span> 8</span> <span> 9</span> <span>//</span><span>使用方法如下</span> <span>10</span> <span>11</span> <span>$string</span> = '<span>The {b}anchor text{/b} is the {b}actual word{/b} or words used </span><span>12</span> {br}to describe the link {br}itself'<span>; </span><span>13</span> <span>14</span> <span>$replace_array</span> = <span>array</span>('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br >'<span>); </span><span>15</span> <span>16</span> <span>17</span> <span>18</span> <span>echo</span> stringParser(<span>$string</span>,<span>$replace_array</span>);</br >
6. PHP listet die Dateinamen im Verzeichnis
aufWenn Sie alle Dateien in einem Verzeichnis auflisten möchten, verwenden Sie den folgenden Code:
<span> 1</span> <span>function</span> listDirFiles(<span>$DirPath</span><span>){ </span><span> 2</span> <span> 3</span> <span>if</span>(<span>$dir</span> = <span>opendir</span>(<span>$DirPath</span><span>)){ </span><span> 4</span> <span> 5</span> <span>while</span>((<span>$file</span> = <span>readdir</span>(<span>$dir</span>))!== <span>false</span><span>){ </span><span> 6</span> <span> 7</span> <span>if</span>(!<span>is_dir</span>(<span>$DirPath</span>.<span>$file</span><span>)) </span><span> 8</span> <span> 9</span> <span> { </span><span>10</span> <span>11</span> <span>echo</span> "filename: <span>$file</span><br >"<span>; </span><span>12</span> <span>13</span> <span> } </span><span>14</span> <span>15</span> <span> } </span><span>16</span> <span>17</span> <span> } </span><span>18</span> <span>19</span> <span>} </span><span>20</span> <span>21</span> <span>//</span><span>使用方法如下</span> <span>22</span> <span>23</span> listDirFiles('home/some_folder/');
7. PHP ruft die aktuelle Seiten-URL ab
Die folgende Funktion kann die URL der aktuellen Seite abrufen, unabhängig davon, ob es sich um http oder https handelt.
<span> 1</span> <span>function</span><span> curPageURL() { </span><span> 2</span> <span> 3</span> <span>$pageURL</span> = 'http'<span>; </span><span> 4</span> <span> 5</span> <span>if</span> (!<span>empty</span>(<span>$_SERVER</span>['HTTPS'])) {<span>$pageURL</span> .= "s"<span>;} </span><span> 6</span> <span> 7</span> <span>$pageURL</span> .= "://"<span>; </span><span> 8</span> <span> 9</span> <span>if</span> (<span>$_SERVER</span>["SERVER_PORT"] != "80"<span>) { </span><span>10</span> <span>11</span> <span>$pageURL</span> .= <span>$_SERVER</span>["SERVER_NAME"].":".<span>$_SERVER</span>["SERVER_PORT"].<span>$_SERVER</span> <span>12</span> ["REQUEST_URI"<span>]; </span><span>13</span> <span>14</span> } <span>else</span><span> { </span><span>15</span> <span>16</span> <span>$pageURL</span> .= <span>$_SERVER</span>["SERVER_NAME"].<span>$_SERVER</span>["REQUEST_URI"<span>]; </span><span>17</span> <span>18</span> <span> } </span><span>19</span> <span>20</span> <span>return</span> <span>$pageURL</span><span>; </span><span>21</span> <span>22</span> <span>} </span><span>23</span> <span>24</span> <span>//</span><span>使用方法如下</span> <span>25</span> <span>26</span> <span>echo</span> curPageURL();
8. PHP erzwingt den Dateidownload
Manchmal möchten wir nicht, dass der Browser eine Datei, z. B. eine PDF-Datei, direkt öffnet, sondern die Datei direkt herunterlädt. Dann kann die folgende Funktion das Herunterladen der Datei erzwingen. Der Headertyp „Anwendung/Oktett-Stream“. wird in der Funktion verwendet.
<span> 1</span> <span>function</span> download(<span>$filename</span><span>){ </span><span> 2</span> <span> 3</span> <span>if</span> ((<span>isset</span>(<span>$filename</span>))&&(<span>file_exists</span>(<span>$filename</span><span>))){ </span><span> 4</span> <span> 5</span> <span>header</span>("Content-length: ".<span>filesize</span>(<span>$filename</span><span>)); </span><span> 6</span> <span> 7</span> <span>header</span>('Content-Type: application/octet-stream'<span>); </span><span> 8</span> <span> 9</span> <span>header</span>('Content-Disposition: attachment; filename="' . <span>$filename</span> . '"'<span>); </span><span>10</span> <span>11</span> <span>readfile</span>("<span>$filename</span>"<span>); </span><span>12</span> <span>13</span> } <span>else</span><span> { </span><span>14</span> <span>15</span> <span>echo</span> "Looks like file does not exist!"<span>; </span><span>16</span> <span>17</span> <span> } </span><span>18</span> <span>19</span> <span>} </span><span>20</span> <span>21</span> <span>//</span><span>使用方法如下</span> <span>22</span> <span>23</span> download('/down/test_45f73e852.zip');
9. PHP fängt die Stringlänge ab
Wir stoßen häufig auf Situationen, in denen wir die Länge einer Zeichenfolge (einschließlich chinesischer Zeichen) abfangen müssen. Beispielsweise kann der Titel nicht mehr als ein paar Zeichen anzeigen. Die folgende Funktion kann Ihre Bedürfnisse erfüllen.
<span> 1</span> <span>/*</span> <span> 2</span> <span> 3</span> <span> Utf-8、gb2312都支持的汉字截取函数 </span><span> 4</span> <span> 5</span> <span> cut_str(字符串, 截取长度, 开始长度, 编码); </span><span> 6</span> <span> 7</span> <span> 编码默认为 utf-8 </span><span> 8</span> <span> 9</span> <span> 开始长度默认为 0 </span><span>10</span> <span>11</span> <span>*/</span> <span>12</span> <span>13</span> <span>function</span> cutStr(<span>$string</span>, <span>$sublen</span>, <span>$start</span> = 0, <span>$code</span> = 'UTF-8'<span>){ </span><span>14</span> <span>15</span> <span>if</span>(<span>$code</span> == 'UTF-8'<span>){ </span><span>16</span> <span>17</span> <span>$pa</span> = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"<span>; </span><span>18</span> <span>19</span> <span>preg_match_all</span>(<span>$pa</span>, <span>$string</span>, <span>$t_string</span><span>); </span><span>20</span> <span>21</span> <span>22</span> <span>23</span> <span>if</span>(<span>count</span>(<span>$t_string</span>[0]) - <span>$start</span> > <span>$sublen</span>) <span>return</span> <span>join</span>('', <span>array_slice</span> <span>24</span> (<span>$t_string</span>[0], <span>$start</span>, <span>$sublen</span>))."..."<span>; </span><span>25</span> <span>26</span> <span>return</span> <span>join</span>('', <span>array_slice</span>(<span>$t_string</span>[0], <span>$start</span>, <span>$sublen</span><span>)); </span><span>27</span> <span>28</span> }<span>else</span><span>{ </span><span>29</span> <span>30</span> <span>$start</span> = <span>$start</span>*2<span>; </span><span>31</span> <span>32</span> <span>$sublen</span> = <span>$sublen</span>*2<span>; </span><span>33</span> <span>34</span> <span>$strlen</span> = <span>strlen</span>(<span>$string</span><span>); </span><span>35</span> <span>36</span> <span>$tmpstr</span> = ''<span>; </span><span>37</span> <span>38</span> <span>39</span> <span>40</span> <span>for</span>(<span>$i</span>=0; <span>$i</span><<span>$strlen</span>; <span>$i</span>++<span>){ </span><span>41</span> <span>42</span> <span>if</span>(<span>$i</span>>=<span>$start</span> && <span>$i</span><(<span>$start</span>+<span>$sublen</span><span>)){ </span><span>43</span> <span>44</span> <span>if</span>(<span>ord</span>(<span>substr</span>(<span>$string</span>, <span>$i</span>, 1))>129<span>){ </span><span>45</span> <span>46</span> <span>$tmpstr</span>.= <span>substr</span>(<span>$string</span>, <span>$i</span>, 2<span>); </span><span>47</span> <span>48</span> }<span>else</span><span>{ </span><span>49</span> <span>50</span> <span>$tmpstr</span>.= <span>substr</span>(<span>$string</span>, <span>$i</span>, 1<span>); </span><span>51</span> <span>52</span> <span> } </span><span>53</span> <span>54</span> <span> } </span><span>55</span> <span>56</span> <span>if</span>(<span>ord</span>(<span>substr</span>(<span>$string</span>, <span>$i</span>, 1))>129) <span>$i</span>++<span>; </span><span>57</span> <span>58</span> <span> } </span><span>59</span> <span>60</span> <span>if</span>(<span>strlen</span>(<span>$tmpstr</span>)<<span>$strlen</span> ) <span>$tmpstr</span>.= "..."<span>; </span><span>61</span> <span>62</span> <span>return</span> <span>$tmpstr</span><span>; </span><span>63</span> <span>64</span> <span> } </span><span>65</span> <span>66</span> <span>} </span><span>67</span> <span>68</span> <span>//</span><span>使用方法如下</span> <span>69</span> <span>70</span> <span>$str</span> = "jQuery插件实现的加载图片和页面效果"<span>; </span><span>71</span> <span>72</span> <span>echo</span> cutStr(<span>$str</span>,16);
10. PHP erhält die echte IP des Clients
Wir verwenden häufig eine Datenbank, um die IP des Benutzers aufzuzeichnen. Mit dem folgenden Code kann die tatsächliche IP des Clients ermittelt werden:
<span> 1</span> <span>//</span><span>获取用户真实IP </span> <span> 2</span> <span> 3</span> <span>function</span><span> getIp() { </span><span> 4</span> <span> 5</span> <span>if</span> (<span>getenv</span>("HTTP_CLIENT_IP") && <span>strcasecmp</span>(<span>getenv</span>("HTTP_CLIENT_IP"), <span> 6</span> "unknown"<span>)) </span><span> 7</span> <span> 8</span> <span>$ip</span> = <span>getenv</span>("HTTP_CLIENT_IP"<span>); </span><span> 9</span> <span>10</span> <span>else</span> <span>11</span> <span>12</span> <span>if</span> (<span>getenv</span>("HTTP_X_FORWARDED_FOR") && <span>strcasecmp</span>(<span>getenv</span>("HTTP_X_FORWARDED_FOR"), "unknown"<span>)) </span><span>13</span> <span>14</span> <span>$ip</span> = <span>getenv</span>("HTTP_X_FORWARDED_FOR"<span>); </span><span>15</span> <span>16</span> <span>else</span> <span>17</span> <span>18</span> <span>if</span> (<span>getenv</span>("REMOTE_ADDR") && <span>strcasecmp</span>(<span>getenv</span>("REMOTE_ADDR"), "unknown"<span>)) </span><span>19</span> <span>20</span> <span>$ip</span> = <span>getenv</span>("REMOTE_ADDR"<span>); </span><span>21</span> <span>22</span> <span>else</span> <span>23</span> <span>24</span> <span>if</span> (<span>isset</span> (<span>$_SERVER</span>['REMOTE_ADDR']) && <span>$_SERVER</span>['REMOTE_ADDR'] && <span>25</span> <span>strcasecmp</span>(<span>$_SERVER</span>['REMOTE_ADDR'], "unknown"<span>)) </span><span>26</span> <span>27</span> <span>$ip</span> = <span>$_SERVER</span>['REMOTE_ADDR'<span>]; </span><span>28</span> <span>29</span> <span>else</span> <span>30</span> <span>31</span> <span>$ip</span> = "unknown"<span>; </span><span>32</span> <span>33</span> <span>return</span> (<span>$ip</span><span>); </span><span>34</span> <span>35</span> <span>} </span><span>36</span> <span>37</span> <span>//</span><span>使用方法如下</span> <span>38</span> <span>39</span> <span>echo</span> getIp();
11. PHP verhindert SQL-Injection
Wenn wir die Datenbank abfragen, müssen wir aus Sicherheitsgründen einige illegale Zeichen filtern, um eine böswillige SQL-Injection zu verhindern. Schauen Sie sich bitte die Funktion an:
<span> 1</span> <span>function</span> injCheck(<span>$sql_str</span><span>) { </span><span> 2</span> <span> 3</span> <span>$check</span> = <span>preg_match</span>('<span>/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into </span><span> 4</span> |load_file|outfile/', <span>$sql_str</span><span>); </span><span> 5</span> <span> 6</span> <span>if</span> (<span>$check</span><span>) { </span><span> 7</span> <span> 8</span> <span>echo</span> '非法字符!!'<span>; </span><span> 9</span> <span>10</span> <span>exit</span><span>; </span><span>11</span> <span>12</span> } <span>else</span><span> { </span><span>13</span> <span>14</span> <span>return</span> <span>$sql_str</span><span>; </span><span>15</span> <span>16</span> <span> } </span><span>17</span> <span>18</span> <span>} </span><span>19</span> <span>20</span> <span>//</span><span>使用方法如下</span> <span>21</span> <span>22</span> <span>echo</span> injCheck('1 or 1=1');
12. PHP-Seitenaufforderungen und -sprünge
Wenn wir Formularoperationen durchführen, müssen wir den Benutzer aus Gründen der Benutzerfreundlichkeit manchmal nach den Operationsergebnissen fragen und zur entsprechenden Seite springen:
<span> 1</span> <span>function</span> message(<span>$msgTitle</span>,<span>$message</span>,<span>$jumpUrl</span><span>){ </span><span> 2</span> <span>$str</span> = '<!DOCTYPE HTML>'<span>; </span><span> 3</span> <span>$str</span> .= '<html>'<span>; </span><span> 4</span> <span>$str</span> .= '<head>'<span>; </span><span> 5</span> <span>$str</span> .= '<meta charset="utf-8">'<span>; </span><span> 6</span> <span>$str</span> .= '<title>页面提示</title>'<span>; </span><span> 7</span> <span>$str</span> .= '<style type="text/css">'<span>; </span><span> 8</span> <span>$str</span> .= '<span>*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial, sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; </span><span> 9</span> <span>margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; </span><span>10</span> line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}'<span>; </span><span>11</span> <span>$str</span> .= '</style>'<span>; </span><span>12</span> <span>$str</span> .= '</head>'<span>; </span><span>13</span> <span>$str</span> .= '<body>'<span>; </span><span>14</span> <span>$str</span> .= '<div>'<span>; </span><span>15</span> <span>$str</span> .= '<h3>'.<span>$msgTitle</span>.'</h3>'<span>; </span><span>16</span> <span>$str</span> .= '<div>'<span>; </span><span>17</span> <span>$str</span> .= '<h4>'.<span>$message</span>.'</h4>'<span>; </span><span>18</span> <span>$str</span> .= '<p>系统将在 <span>3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>'<span>; </span><span>19</span> <span>$str</span> .= "<script>setTimeout('location.replace(\'".<span>$jumpUrl</span>."\')',2000)</script>"<span>; </span><span>20</span> <span>$str</span> .= '</div>'<span>; </span><span>21</span> <span>$str</span> .= '</div>'<span>; </span><span>22</span> <span>$str</span> .= '</body>'<span>; </span><span>23</span> <span>$str</span> .= '</html>'<span>; </span><span>24</span> <span>echo</span> <span>$str</span><span>; </span><span>25</span> <span>} </span><span>26</span> <span>27</span> <span>//</span><span>使用方法如下 </span> <span>28</span> <span>29</span> message('操作提示','操作成功!','http://www.helloweba.com/');
13. PHP-Berechnungszeit
Wenn wir Zeit verarbeiten, müssen wir die Zeitspanne von der aktuellen Zeit bis zu einem bestimmten Zeitpunkt berechnen. Bei der Berechnung der Laufzeit des Clients wird diese beispielsweise normalerweise durch hh:mm:ss ausgedrückt.
<span> 1</span> <span>function</span> changeTimeType(<span>$seconds</span><span>) { </span><span> 2</span> <span> 3</span> <span>if</span> (<span>$seconds</span> > 3600<span>) { </span><span> 4</span> <span> 5</span> <span>$hours</span> = <span>intval</span>(<span>$seconds</span> / 3600<span>); </span><span> 6</span> <span> 7</span> <span>$minutes</span> = <span>$seconds</span> % 3600<span>; </span><span> 8</span> <span> 9</span> <span>$time</span> = <span>$hours</span> . ":" . <span>gmstrftime</span>('%M:%S', <span>$minutes</span><span>); </span><span>10</span> <span>11</span> } <span>else</span><span> { </span><span>12</span> <span>13</span> <span>$time</span> = <span>gmstrftime</span>('%H:%M:%S', <span>$seconds</span><span>); </span><span>14</span> <span>15</span> <span> } </span><span>16</span> <span>17</span> <span>return</span> <span>$time</span><span>; </span><span>18</span> <span>19</span> <span>} </span><span>20</span> <span>21</span> <span>//</span><span>使用方法如下</span> <span>22</span> <span>23</span> <span>$seconds</span> = 3712<span>; </span><span>24</span> <span>25</span> <span>echo</span> changeTimeType(<span>$seconds</span>);
Das Obige hat eine Zusammenfassung super praktischer PHP-Funktionen vorgestellt, einschließlich relevanter Inhalte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.