我用了13行代碼開(kāi)發(fā)出來(lái)的PHP框架
Jul 09, 2016 am 09:10 AM我只用13行代碼開(kāi)發(fā)的PHP框架,如果您對(duì)框架不理解,不知道框架究竟幫您做了什麼事,可以下載此框架看一下,
另外如果您想開(kāi)發(fā)自己的框架也可以由這個(gè)框架的思路進(jìn)行擴(kuò)展.
源碼下載地址:http://download.csdn.net/detail/sibang/6197315
代碼:
<span style="color: #008080;"> 1</span> <span style="color: #000000;">PHP </span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">* </span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> PHP極簡(jiǎn)框架 </span><span style="color: #008080;"> 4</span> <span style="color: #008000;"> 交流: </span><span style="color: #008080;"> 5</span> <span style="color: #008000;"> QQ群: 223494678 </span><span style="color: #008080;"> 6</span> <span style="color: #008000;"> http://7di.net </span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> 用法 </span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> http://URL </span><span style="color: #008080;"> 9</span> <span style="color: #008000;"> http://URL/hello </span><span style="color: #008080;">10</span> <span style="color: #008000;"> http://URL/seven.php?w=hello </span><span style="color: #008080;">11</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*/</span> <span style="color: #008080;">12</span> <span style="color: #008080;">13</span> <span style="color: #008080;">Header</span>('Content-type: text/html; charset=UTF-8'<span style="color: #000000;">); </span><span style="color: #008080;">14</span> <span style="color: #800080;">$w</span>=<span style="color: #0000ff;">isSet</span>(<span style="color: #800080;">$_REQUEST</span>['w']) ? <span style="color: #008080;">AddsLashes</span>(<span style="color: #800080;">$_REQUEST</span>['w']) : ''<span style="color: #000000;">; </span><span style="color: #008080;">15</span> <span style="color: #800080;">$w</span>=(<span style="color: #008080;">Trim</span>(<span style="color: #800080;">$w</span>)=='') ? 'index' : <span style="color: #800080;">$w</span><span style="color: #000000;">; </span><span style="color: #008080;">16</span> <span style="color: #008080;">17</span> <span style="color: #0000ff;">IF</span>(!<span style="color: #008080;">is_callable</span>(<span style="color: #800080;">$w</span><span style="color: #000000;">)) { </span><span style="color: #008080;">18</span> <span style="color: #0000ff;">Exit</span>('Error:'.<span style="color: #ff00ff;">__LINE__</span>.',參數(shù)錯(cuò)誤!'<span style="color: #000000;">); </span><span style="color: #008080;">19</span> <span style="color: #000000;">} </span><span style="color: #008080;">20</span> <span style="color: #800080;">$w</span><span style="color: #000000;">(); </span><span style="color: #008080;">21</span> <span style="color: #008080;">22</span> <span style="color: #0000ff;">Function</span><span style="color: #000000;"> hello(){ </span><span style="color: #008080;">23</span> <span style="color: #0000ff;">Echo</span> 'Hello World!'<span style="color: #000000;">; </span><span style="color: #008080;">24</span> <span style="color: #000000;">} </span><span style="color: #008080;">25</span> <span style="color: #008080;">26</span> <span style="color: #0000ff;">Function</span><span style="color: #000000;"> index(){ </span><span style="color: #008080;">27</span> <span style="color: #0000ff;">Echo</span> '此框架由Seven編寫(xiě),來(lái)自QQ群:223494678'<span style="color: #000000;">; </span><span style="color: #008080;">28</span> }
.htaccess的內(nèi)容
?
下邊是註釋:
Header('Content-type: text/html; charset=UTF-8'); //定義編碼 $w=isSet($_REQUEST['w']) ? AddsLashes($_REQUEST['w']) : ''; //獲取參數(shù)w的值,w來(lái)自于rewrite規(guī)則文件.htaccess $w=(Trim($w)=='') ? 'index' : $w; //如果參數(shù)w的值為空,則訪(fǎng)問(wèn)默認(rèn)的index方法 IF(!is_callable($w)) { //如果$w所屬的function不存在 Exit('Error:'.__LINE__.',參數(shù)錯(cuò)誤!'); //拋出錯(cuò)誤 } $w(); //調(diào)用$w名稱(chēng)對(duì)應(yīng)的function,例如:http://URL/hello會(huì)調(diào)用hello()這個(gè)function //自定義方法(可自由擴(kuò)展) Function hello(){ Echo 'Hello World!'; } Function index(){ Echo '此框架由Seven編寫(xiě),來(lái)自QQ群:223494678'; }
?

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Lazy Loading nur Abfragen beim Zugriff auf Assoziationen kann leicht zu N 1 -Problemen führen, was für Szenarien geeignet ist, in denen die zugeh?rigen Daten nicht festgelegt sind, ob sie ben?tigt werden. 2. Notfallbelastung verwendet mit () zum Laden der zugeordneten Daten im Voraus, um N 1 -Abfragen zu vermeiden, was für Stapelverarbeitungsszenarien geeignet ist. 3. Die Notfallbelastung sollte zur Optimierung der Leistung verwendet werden, und n 1 Probleme k?nnen durch Tools wie LaravelDebugbar erkannt werden, und das $ mit Attribut des Modells wird sorgf?ltig verwendet, um unn?tige Leistungsaufwand zu vermeiden.

Laravel unterstützt die Verwendung nativer SQL -Abfragen, aber die Parameterbindung sollte bevorzugt werden, um die Sicherheit zu gew?hrleisten. 1. Verwenden Sie db :: select (), um Auswahlabfragen mit Parameterbindung auszuführen, um die SQL -Injektion zu verhindern. 2. Verwenden Sie db :: update (), um Aktualisierungsvorg?nge durchzuführen und die Anzahl der betroffenen Zeilen zurückzugeben. 3.. Verwenden Sie db :: Insert (), um Daten einzufinden. 4. Verwenden Sie db :: delete (), um Daten zu l?schen; 5. Verwenden Sie db :: Anweisung (), um SQL -Anweisungen ohne Ergebniss?tze wie Erstellen, Alter usw. auszuführen; 6. Es wird empfohlen, in QueryBuilder in der Lage zu verwenden, native Ausdrücke zur Verbesserung der Sicherheit zu kombinieren, um die Sicherheit zu verbessern

JWT ist ein offener Standard für die sichere übertragung von Informationen. In Java kann Authentifizierung und Autorisierung über die JJWT -Bibliothek erreicht werden. 1. Fügen Sie JJWT API, Impl und Jackson -Abh?ngigkeiten hinzu; 2. Erstellen Sie die JWTUTIL -Werkzeugklasse, um Token zu generieren, zu analysieren und zu überprüfen. 3.. Schreiben Sie JWTFilter -Abschnitte und überprüfen Sie BearerTokens im Autorisierungsheader. 4. Registrieren Sie den Filter im Springboot, um den angegebenen Pfad zu schützen; 5. Geben Sie eine Anmeldeschnittstelle an, um JWT zurückzugeben, nachdem Sie den Benutzer überprüfen. 6. Die geschützte Schnittstelle erh?lt die Benutzeridentit?t und -rolle durch Parsen des Tokens für die Zugriffskontrolle und realisiert letztendlich einen für verteilten Systeme geeigneten staatenlosen und erweiterbaren Sicherheitsmechanismus.

Go Generics werden seit 1.18 unterstützt und zum Schreiben von generischen Code für Typ-Safe verwendet. 1. Die generische Funktion printslice [tany] (s [] t) kann Scheiben jeglicher Art drucken, z. B. [] int oder [] String. 2. Durch die Typenbeschr?nkungsnummer begrenzt t auf numerische Typen wie int und float, summe [tNumber] (Slice [] t) T Safe Summation wird realisiert. 3. Die generische Struktur -TypBox [tany] struct {valuet} kann jeden Typwert in Einklang bringen und mit dem NewBox [Tany] (VT)*Box [t] Constructor verwendet werden. 4. Set (vt) hinzufügen und () t () t zum Boxen [t] ohne boxen

JSON.Loads () wird verwendet, um JSON -Zeichenfolgen in Python -Datenstrukturen zu analysieren. 1. Die Eingabe muss eine in doppelte Zitate eingewickelte Zeichenfolge sein und der boolesche Wert ist wahr/falsch. 2. unterstützt die automatische Konvertierung von Null → Keine, Objekt → DICT, Array → Liste usw.; 3. Es wird oft verwendet, um JSON -Zeichenfolgen zu verarbeiten, die von der API zurückgegeben werden. Auf Response_String kann beispielsweise nach der Parsen von JSON.Loads () direkt zugegriffen werden. Bei der Verwendung müssen Sie sicherstellen, dass das JSON -Format korrekt ist, andernfalls wird eine Ausnahme ausgel?st.

Verwenden Sie die regul?re Expressionsfassungsgruppe in Notepad, um Text effektiv neu zu organisieren. Zun?chst müssen Sie das Ersatzdialogfeld (Strg H) ?ffnen und "Suchmodus" als "regul?rer Ausdruck" ausw?hlen, 1. verwenden Sie (), um die Erfassungsgruppe zu definieren, z. B. (\ w), um W?rter zu erfassen. 2. Verwenden Sie \ 1 und \ 2, um die entsprechende Gruppe in der Ersatzbox zu verweisen. 3. Beispiel: tauschen Sie den Namen "Johndoe" als "Doe, John" aus, finden Sie (\ w) \ s (\ w), ersetzen Sie ihn durch \ 2, \ 1; 4. Datumsformatkonvertierung 2023-12-25 bis 25/12/2023, find (\ d {4})-(\ d {2})-(\ d {2}), ersetzen Sie es durch \ 3/\ 2/\ 1; 5. Log -Neuordnung kann Zeit, Ebene, ID und andere Informationen extrahieren

Erweiterte Java -Interviewfragen untersuchen haupts?chlich das Verst?ndnis der internen JVM -Mechanismen, der gleichzeitigen Programmierung, der Leistungsabstimmung, der Entwurfsmuster und der Systemarchitektur. 1. Das Java -Speichermodell (JMM) definiert die Sichtbarkeit, Atomizit?t und Reihenfolge der Speichervorg?nge zwischen Threads. Das volatile Schlüsselwort und die vorangegangenen Regeln sorgen für eine korrekte Synchronisation, um das Problem der Aktualisierung der Unsichtbarkeit des CPU-Cache zu vermeiden. G1GC ist für gro?e Haufen und vorhersehbare Pause -Szenarien geeignet. Bereiche mit viel Müll werden durch das Recycling in Bereich bevorzugt. ZGC verwendet Schattierungszeiger und Ladungsbarrieren, um Pausen auf Untermillisekundenebene zu erreichen, und die Pause ist unabh?ngig von der Haufengr??e, die für Systeme mit niedriger Latenz geeignet ist. 2. verwenden

Der tern?re Operator von Python wird verwendet, um das IF-ELSE-Urteil über genau zu implementieren, und seine Syntax lautet "Value_if_truif ConditionelSeValue_if_false"; 1. Es kann zur einfachen Zuordnung verwendet werden, z. B. die Rückgabe der entsprechenden Zeichenfolge basierend auf positiven und negativen Werten. 2. Es kann Abteilungsfehler vermeiden, z. B. festzustellen, dass der Nenner ungleich Null und dann die Teilung ist. 3.. Es kann Inhalte gem?? den Bedingungen im String -Format ausw?hlen. 4.. Es kann verschiedenen Elementen in der Listendeivationsformel Beschriftungen zuweisen. Es ist zu beachten, dass dieser Bediener nur für bin?re Zweige geeignet ist und nicht mehreren Schichten verschachtelt sein sollte. Komplexe Logik sollte die herk?mmliche IF-ELIF-ELSE-Struktur verwenden, um die Lesbarkeit zu gew?hrleisten.
