|
Tutorial funktion
|
|
08.07.2005, 23:28
Beitrag: #1
|
|||
|
|||
|
Tutorial funktion
Hallo..ich möchte eine Tutorial funktion bei mir einbauen
und zwar speicher ich die Daten folgender Maßen => ID||NAME||TITEL||DATUM||TUTORIAL... und dann kann man natürlich in einem Tutorial auch code einfüngen das hab eich so gemacht=> [code ]CODE[/code ]...für Code muss dein script hinein und beim ausgeben möchte ich dann das [code ] zu einem <div> wird und [/code ] zu einem </div>... und das SCRIPT soll per PHP highgelightet werden(würde ma die funktion highlight_string() nehmen)...aber wie kann ich es machen das er dann code in die klammer kommt?... zudem habe ich noch das Problem...das er vorher beim speicher alle " in \" umwandelt...was ich natürlich net möchte hab es dann so gemacht=> PHP-Code: $text = str_replace("![]() I NEED HELP MFG
|
|||
|
09.07.2005, 02:03
Beitrag: #2
|
|||
|
|||
|
Um aus dem [code] ein <div> zu machen kannst du die Funktion str_replace verwenden. Dort wird ein String nach einer bestimmten Zeichenfolge überprüft und wenn sie gefunden wurde wird sie durch eine andere, festgelegte ersetzt.
Bezüglich den " und dem \" kann ich dir sagen, ist es garnicht mal so schlecht wenn du die mitspeichern lässt. Später, wenn du mit MySQL u.a. arbeitest, wirst du sehen das des garnichtmal so schlecht ist. Du solltest stripslashes auch nicht verwenden um keine eintragen zu lassen (da diese Funktion nur vorhandene entfernt) sondern um sie erst garnicht auszugeben. Also lass die Speicherung so wie sie ist und gebe den String, den du ausgeben möchtest per stripslashes aus. PS: Warum benutzt du schon wieder Textdateien? PPS: Den Rest hab ich nicht verstanden was du da geschrieben hast.
|
|||
|
09.07.2005, 09:11
Beitrag: #3
|
|||
|
|||
|
Datei bezogene Programmierung, lass ihn doch
![]() Endlich bin ich nicht mehr alleine^^ http://blog.rswhite.de/ MaStA schrieb:[...]keiner is perfekt ... außer white! Stephan Schmidt schrieb:Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen. |
|||
|
09.07.2005, 11:16
Beitrag: #4
|
|||
|
|||
|
Nein ich will ihn davon abbringen da es einfach mal, meiner Meinung nach, zu umständlich ist als wenn man eine MySQL Tabelle verwenden würde. Außerdem sind Textdateien leichter einzusehen von einem User. Viel leichter als die MySQL Tabelle.
|
|||
|
09.07.2005, 12:20
Beitrag: #5
|
|||
|
|||
|
öhm, also die funktion str_replace is mir bekannt, nur wenn ich dann nen folgenen code habe müsste ich ja [code] ersetzen mit <div style="egal"><?php highlight_string(" <<<und wenn ich dann so nen " habe hört er beim nächsten wieder auf und denkt da is schluss, aber ne frage hätte ich dann noch
1. welchen rest hast du net verstanden*g* 2. wie meinst du das, die $ mit stripslashes ausgeben? wie soll man das amchen? echo stripslashes($text); ? ähm ja ich nutze schon wieda .txt da ich mysql ja noch net wirklich kann(bzw. kaum außer ne tabelle erstellen^^ und $ zu speichern und so), aber wenn ich die in mysql speicher , weiss ich net wirklich wie ich die ausgeben kann... naja und was wäre besser wenn ich die mit \" in eine sql speicher? Oo MFG - dat schwachmatenvieh^^
|
|||
|
09.07.2005, 12:51
Beitrag: #6
|
|||
|
|||
|
Als erstes möchte ich dich hier im Forum wilkommen heißen, ich hoffe, dass du uns erhalten bleibst
![]() Dann möchte ich darauf eingehen, dass du für die Auszeichnung von Code ein div benutzen möchtest. Ein div ist Eigenschaftslos und dazu da, um den Quellcode zu strukturieren. Es gibt aber Elemente, die dafür da sind um Code auszuzeichnen. Eines davon wäre das code Element selbst. Allerdings ist dies ein inline-Element. Daher kannst du es entweder in ein Blockelement umwandeln (display:block) oder das pre Element nehmen. Virus schrieb:Um aus dem [code] ein <div> zu machen kannst du die Funktion str_replace verwenden. Dort wird ein String nach einer bestimmten Zeichenfolge überprüft und wenn sie gefunden wurde wird sie durch eine andere, festgelegte ersetzt.str_replace ist hier aber nicht zu empfehlen. Wenn nämlich nur [code] ohne [/code] eingegeben wird, dann steht ein ungeschlossener Tag im Quelltext. Daher würde ich preg_replace empfehlen. Wie machen wir es jetzt mit preg_replace, dass alles, was zwischen [code] und [/code] steht in ein pre Element geschrieben und die Funktion highlight_string darauf angewand wird? Als erstes schreiben wir uns eine Funktion, die den Code highlightet und daraus dann noch XHTML validen Code macht. [code] function highlight($str) { $str = highlight_string(trim($str[1]), true); $str = str_replace(array('<font ', '</font>'), array('<span class="code" ', '</span>'), $str); $str = preg_replace('#color="(.*?)"#', 'style="color: \1"', $str); return $str; } [/code] (der Größteil dieser Funktion ist aus dem php Manual übernommen.) Aber wie zur Hölle können wir jetzt auf ein Subpattern, von preg_replace eine Funktion anwenden? Garnicht. dafür benötigen wir preg_replace_callback. Der Code sieht so aus: $string=preg_replace_callback('§[code] .*)[/code]§Uis',"highlight",$string);Als erster Parameter wird unser regulärer Ausdruck übergeben, dann der Funktionsname und als letztes der String. |
|||
|
09.07.2005, 13:23
Beitrag: #7
|
|||
|
|||
|
Zu beachten ist, dass preg_replace_callback erst ab PHP-Version 4.0.5 eingesetzt werden kann.
Hier mal meine Highlight Funktion für PHP-Code: [code:1] function php($str) { if(preg_match("§[php](.*)[/php]§Uis", $str, $matches)) { $str = preg_match("§[php](.*)[/php]§Uis", $str, $matches); $matches[0] = @preg_replace("/[php](.*)[/php]/Uis","\1", $matches[0]); if($matches[0] != "") { $matches[0] = stripslashes($matches[0]); $matches[0] = html_entity_decode($matches[0]); $matches[0] = str_replace("<br />", "", $matches[0]); $str = highlight_string($matches[0],true); $str = substr_replace($str,"<i>PHP - Code</i><br />",0,0); return $str; } } } [/code:1] http://youtube.com/watch?v=lTdn_vjZZp8 Studie: Moorhuhn ist Killerspiel und Egoshooter zugleich! |
|||
|
09.07.2005, 14:13
Beitrag: #8
|
|||
|
|||
|
öhm, thx ich probier erstmal die untere,
kann es sein das die untere fast das gleiche ist wie die obere?...ich habe schon von codematser einen code bekommen der hat auch funktioniert bis ich dran rumgespielt habe*g*....von nen anderen habsch auch was bekommen, da wurde nix ausgegeben, komischer weise.., aber mal gucken was jetzte is $str wäre doch dann bei mir $text oda?, aber noch ne frage, was ist wenn man mehrmals [code ] hat? müsste man doch dann noch ne while-schleife einbauen oda? wenn ja, wo müsste diese jetzte hier hin? MFG edit: also er ersetzt code net und highlightet net, aber zumindest gibt er das aus=> "dddd[code:1][/code:1]" <<und im quelltext sieht man auch noch den php code..aber 1. wird er net angezeigt und 2. net highgelightet
|
|||
|
09.07.2005, 16:20
Beitrag: #9
|
|||
|
|||
|
Wenn du da von meiner Funktion sprichst, dann müsste $str irgendwie so aussehen:
$str = "Trallala hier ein Text und dazwischen irgendwo PHP-Code: <? echo "PHP-Code"; ?>PHP-Code: <? echo "Das macht garnichts aus"; ?>http://youtube.com/watch?v=lTdn_vjZZp8 Studie: Moorhuhn ist Killerspiel und Egoshooter zugleich! |
|||
|
09.07.2005, 17:16
Beitrag: #10
|
|||
|
|||
|
achsooooo....trotzdem highlight er PHP net und gibt es auch net aus, wenn PHP-code
MFG
|
|||
|
|
| Möglicherweise verwandte Themen... | |||||
| Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
| Webslave Tutorial | Flo | 2 | 240 |
03.04.2006 17:38 Letzter Beitrag: Sam Fisher |
|
| Such ein Counter Tutorial... | Novadis | 4 | 242 |
16.05.2005 21:10 Letzter Beitrag: White |
|
| Suche verständlichen Session Tutorial | Memorix | 5 | 899 |
13.01.2005 15:46 Letzter Beitrag: Freshmaker_01 |
|
| Probleme mir der GET Funktion | Memorix | 4 | 285 |
23.12.2004 20:53 Letzter Beitrag: Memorix |
|
| Tutorial-Script | wecky | 4 | 280 |
06.10.2004 15:04 Letzter Beitrag: wecky |
|
| PHP Code in meinem Tutorial Script | rene | 4 | 360 |
23.09.2004 13:52 Letzter Beitrag: rene |
|









.*)[/code]§Uis',"highlight",$string);