blacktower Skrevet 3. oktober 2004 Del Skrevet 3. oktober 2004 Slettet prat og spørsmål fra tråden. Kun posting av kode og forklaringer (og eventuelle relevate lenker). Lurer du på noe starter du en ny tråd. (etter å ha søkt) Lenke til kommentar
Christian_ Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 (endret) kommer med en liten enkel kode for de som vil ha et galleri til bilder som egner seg som thumbnails og visningsbilder: <?php $mappe = "MAPPEN MED BILDER"; $hoyde = "75"; $bredde = "75"; $dir = opendir($mappe); $unntak = array(".", ".."); while($print_bilde = readdir($dir)): if ($print_bilde == $unntak[0] || $print_bilde == $unntak[1]): continue; Endif; $print_bilde = $mappe."/".$print_bilde; echo "\n<a href=\"$print_bilde\" target=\"_blank\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; Endwhile; closedir($dir); ?> fint om noen kunne fortsette med å legge inn koder her bildene vises som thumbnails og når du trykker på et bilde så ånes det i et nytt vindu i stor versjon m.v.h Christian Endret 26. desember 2004 av chs89 Lenke til kommentar
Gilbert Skrevet 6. november 2004 Del Skrevet 6. november 2004 Regne ut alder på grunnlag av år, måned og dato <?php function getAgeByDate($iDay, $iMonth, $iYear) { $iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear); $iDays = $iTimeStamp / 86400; $iYears = floor($iDays / 365.25); return $iYears; } ?> Eksempel: getAgeByDate(28,2,1986) blir til 18 Lenke til kommentar
_dundun_ Skrevet 8. november 2004 Del Skrevet 8. november 2004 Har laget et lite script for å legge inn postinger med bilde i en blogg fra mobilen vha mail, og siden det var et par som ville se det legger jeg det ut her. Har editert det litt fra min kjørende versjon (fjernet litt spesifikke metoder for min blogg). Si ifra hvis jeg har gjort noe som gjør at ting ikke kjører... Dette scriptet tar kun høyde for det første vedlegget, men det burde være ganske greit å legge til mulighet for å hente ut flere bilder fra samme mail med funksjonen $antallDeler = count($struct->parts); og et par endringer i itereringen over vedlegg. Have fun <? $ServerName = "{mailserver.com:143/notls}INBOX"; // For å koble til med Imap. Det kan være nødvendig med et punktum rett etter INBOX (INBOX.) $brukerNavn = "brukernavn"; //Brukernavn til mailen $passOrd = "passord"; //Passord til mailkontoen $lovligMail = "lovligmail"; //Den mailadressen man må sende fra for at ting skal legges ut $katalog = "./bilder/blog/"; //Sti til katalogen der bilder skal lagres //Kobler til mailboksen $mbox = imap_open($ServerName,$brukerNavn,$passOrd) or die("Klarte ikke åpne mail, prøv igjen senere"); if ($hdr = imap_check($mbox)) { $msgCount = $hdr->Nmsgs; } $overview=imap_fetch_overview($mbox,"1:$msgCount",0); $size=sizeof($overview); for($i=$size-1;$i>=0;$i--){ $val=$overview[$i]; $msg=$val->msgno; $from=$val->from; $date=$val->date; $subj=$val->subject; $seen=$val->seen; $from = ereg_replace("\"","",$from); $from = ereg_replace(" ","",$from); $lengde = strlen($lovligMail); $from = substr($from,0,$lengde); //Sjekker om mailen er fra rett adresse... if($from == $lovligMail) { $kropp = get_part($mbox, $msg, "TEXT/PLAIN"); $subj = imap_utf8($subj); $kropp = imap_utf8($kropp); //Fikser norske bokstaver i subject $subj = ereg_replace("Æ", "Æ", $subj); $subj = ereg_replace("Ø", "Ø", $subj); $subj = ereg_replace("Ã…", "Å", $subj); $subj = ereg_replace("æ", "æ", $subj); $subj = ereg_replace("ø", "ø", $subj); $subj = ereg_replace("Ã¥", "å", $subj); //Fikser norske bokstaver i kropp $kropp = ereg_replace("Æ", "Æ", $kropp); $kropp = ereg_replace("Ø", "Ø", $kropp); $kropp = ereg_replace("Ã…", "Å", $kropp); $kropp = ereg_replace("æ", "æ", $kropp); $kropp = ereg_replace("ø", "ø", $kropp); $kropp = ereg_replace("Ã¥", "å", $kropp); $struct = imap_fetchstructure($mbox,$msg); $contentParts = count($struct->parts); $vedlegg = imap_bodystruct($mbox,$msg,2); //Lager mer fornuftig format på data $datoArray = explode(" ", $date); //Formaterer dag if($datoArray[0] < 10) { $dag = "0"; $dag .= $datoArray[0]; } else { $dag = $datoArray[0]; } //Formaterer måned switch ($datoArray[1]) { case "Jan": $mnd = "01"; break; case "Feb": $mnd = "02"; break; case "Mar": $mnd = "03"; break; case "Apr": $mnd = "04"; break; case "May": $mnd = "05"; break; case "Jun": $mnd = "06"; break; case "Jul": $mnd = "07"; break; case "Aug": $mnd = "08"; break; case "Sep": $mnd = "09"; break; case "Oct": $mnd = "10"; break; case "Nov": $mnd = "11"; break; case "Dec": $mnd = "12"; break; } //Formaterer år $aar = $datoArray[2]; //Formaterer tid $otid = $datoArray[3]; $tid = substr($otid,0,2).substr($otid,3,2).substr($otid,6,2); //Setter sammen datoen $dato = $aar.$mnd.$dag."_".$tid; $filNavn = $vedlegg->parameters[0]->value; $filType = strrev(substr(strrev($filNavn),0,4)); $skrivefil = $katalog.$dato.$filType; if($filType == ".jpg" && !is_file($skrivefil)) //Dersom vedlegg er en .jpg-fil og filen ikke allerede finnes { //Finner innholdet til attachmenten $filInnhold = imap_fetchbody($mbox,$msg,2); $filInnhold = base64_decode($filInnhold); $bilde = imagecreatefromstring($filInnhold); //Lager bilde av rådata fra attachment $skrivefil = $katalog.$dato.$filType; //Lager filnavn //Lager selve bildet imagejpeg($bilde,$skrivefil); //Skriver bildet til disk chmod($skrivefil,0644); //Setter leserettigheter //Her kan man legge til hva man vil gjøre med dataene. //$subj er tittel på mailen //$kropp er body //$skrivefil inneholder sti til bildefilen som er skrevet. //$bilde inneholder rådata for bildet //Det kan være lurt å kjøre en imagedestroy($bilde) etterpå for å sikre at det blir slettet fra minnet. } } imap_delete($mbox,$msg); //Sletter mail som er behandlet } //Slutt på for-løkke som tar alle mailene imap_expunge($mbox); //Tømmer mailboksen imap_close($mbox); //Lukker mailboksen function get_mime_type(&$structure) { $primary_mime_type = array("TEXT", "MULTIPART","MESSAGE", "APPLICATION", "AUDIO","IMAGE", "VIDEO", "OTHER"); if($structure->subtype) { return $primary_mime_type[(int) $structure->type] . '/' .$structure->subtype; } return "TEXT/PLAIN"; } function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false) { if(!$structure) { $structure = imap_fetchstructure($stream, $msg_number); } if($structure) { if($mime_type == get_mime_type($structure)) { if(!$part_number) { $part_number = "1"; } $text = imap_fetchbody($stream, $msg_number, $part_number); if($structure->encoding == 3) { return imap_base64($text); } else if($structure->encoding == 4) { return imap_qprint($text); } else { return $text; } } if($structure->type == 1) /* multipart */ { while(list($index, $sub_structure) = each($structure->parts)) { if($part_number) { $prefix = $part_number . '.'; } $data = get_part($stream, $msg_number, $mime_type, $sub_structure,$prefix . ($index + 1)); if($data) { return $data; } } } } return false; } ?> Lenke til kommentar
Dagga Skrevet 9. november 2004 Del Skrevet 9. november 2004 (endret) Får legge inn et bidrag i denne tråden jeg og. Dette er kode for å kunne laste opp en fil med kommaseparert data, som deretter legges inn i en database. Første linje i fila inneholder navnene på feltene i tabellen. Hver linje etter dette inneholder data. På denne måten kan du f.eks lage en excel fil med data, lagre den som komma separert fil og laste den rett inn i databasen. Veldig greit for å legge inn store mengder data raskt. Koden er skrevet for å utvikle mine egne objektorienterte evner i PHP, og er nok ikke spesielt opptimalisert. Forlag til optimalisering motaes med takk. Den er delt inn i to deler, et script som tar seg av visning av formen for opplasting av fil, samt lesing av denne, og en include fil som inneholder klassene som benyttes. Jeg har også lagt alle database spesifikke ting inn i klassen dblayer. Dette btyr at om du ersatter denne klassen med en som er skrevet for noe annet en mySQL så skal scriptet virke like fint (så sant du bruker de samme funksjonsnavnene og parametere som disse tar). Om noen får bruk for dem, så send en liten hilsen.. Beklager foresten at kommentaerene er på engelsk, men av gammel vane bruker jeg nesten bestandig engelske kommentarer. indenteringa mi blei desverre også borte.. Edit: Jeg har klat scriptene for upmysql.php og include.php. Endrer du dette, så husk å endre include og action= i det første scriptet. Scriptet som kalles og tar seg av fila, kalt upmysql.php: <?php /* Upload a file for insertion into MySql */ include ('include.php'); if(isset($_POST['upset'])) { if($fh=fopen($_FILES['userfile']['tmp_name'], 'r')) { /* We may now read the file */ /* First line should contain the field names, seppareted by commas */ $headerstring=fgets($fh, 1048576); $header=explode(',', $headerstring); $table=new mytable($header); while(!feof($fh)) { $tupplestring=fgets($fh, 1048576); $tupple=explode(',', $tupplestring); $table->addtupple($tupple); } $table->printtable(); } } else { echo '<form enctype="multipart/form-data" action="upmysql.php" method="post">'; echo '<input type="hidden" name="MAX_FILE_SIZE" value="100000" />'; echo 'Input sql file (comma separeted): <input name="userfile" type="file" />'; echo '<input type="submit" name="upset" value="Upload File" />'; echo '</form>'; } ?> Scriptet som inneholder klassene der alt blir utført, kalt include.php <?php class mytable { var $headers; var $headercount; var $tupples; var $tupplecount; function mytable($headers) { $this->headers=$headers; $this->headercount=count($headers); $this->tupples=array(); $this->tupplecount=0; } function addtupple($tupple) { if(count($tupple)!=$this->headercount) { return -1; //need exact number of items } $tupple=new mytupple($tupple, $this->headers); $this->tupples[]=$tupple; $this->tupplecount++; } function printtable () { echo "<Table border='2' padding='2'>"; echo "<tr>"; foreach ($this->headers as $value) { echo "<td>$value</td>"; } echo "</tr>"; foreach ($this->tupples as $tupple) { $tupple->printtableline(); } echo "</table>"; } function inserttodb($tablename) { foreach($this->tupples as $tupple) { $tupple->insert($tablename); } } function gettupple($id) { return $this->tupples[$id]->gettupple(); } } class mytupple { var $tupple; function mytupple($tupple, $headers){ foreach($headers as $key => $value) { $this->tupple[$value]=$tupple[$key]; } } function printtableline() { echo "<tr>"; foreach ($this->tupple as $value) { echo "<td>$value</td>"; } echo "</tr>"; } function insert($tablename) { $db=new dblayer(); $insert=$db->insertarray($this->tupple, $tablename); echo $insert; $db->insert($insert); $db->close(); } function gettupple() { return $this->tupple; } } class dblayer { var $dbhost; var $dbuser; var $dbpass; var $dbname; var $conn; function dblayer() { $this->dbhost="localhost"; $this->dbuser="root"; $this->dbpass=""; $this->dbname="mytest2"; if(!$conn = mysql_connect($this->dbhost, $this->dbuser)){ echo "Error connectiong to database. Please try again later."; return false; //could not connect } $this->conn=$conn; // Select database if (!@mysql_select_db($this->dbname, $this->conn)){ echo "Error connectiong to database. Please try again later."; return false; } //all is good return true; } function insertarray($insertarray, $table) { /* Makes a INSERT string from an array containing $key=>$value pairs. */ $fields=array_keys($insertarray); $insert="insert into $table ("; foreach($fields as $field) { $insert.=$field.", "; $values.="'".$insertarray[$field]."', "; } // remove trailing commas.. $insert=substr($insert, 0, -2); $values=substr($values, 0, -2); // put it together $insert.=") values(".$values.")"; return $insert; } function close() { mysql_close($conn); } function select($select) { $result = @mysql_query($select, $conn); return $result; } function insert($insert) { $result = @mysql_query($insert, $this->conn); return $result; } function update($update) { $result = @mysql_query($update, $conn); return $result; } } ?> Endret 9. november 2004 av Dagga Lenke til kommentar
phun-ky Skrevet 20. januar 2005 Del Skrevet 20. januar 2005 en liten random css sak: <?php $x = rand(0,5); if($x == 1) { echo "<link href=\"ph001.css\" rel=\"stylesheet\" type=\"text/css\">"; } else if($x == 2) { echo "<link href=\"ph002.css\" rel=\"stylesheet\" type=\"text/css\">"; } else if($x == 3) { echo "<link href=\"ph003.css\" rel=\"stylesheet\" type=\"text/css\">"; } else if($x == 4) { echo "<link href=\"ph004.css\" rel=\"stylesheet\" type=\"text/css\">"; } else if($x == 5) { echo "<link href=\"ph005.css\" rel=\"stylesheet\" type=\"text/css\">"; } else { echo "<link href=\"ph001.css\" rel=\"stylesheet\" type=\"text/css\">"; } ?> eneste du trenger er da de forskjellige css filene.. resultatet? se det her: http://design.phun-ky.net Lenke til kommentar
jorgis Skrevet 20. januar 2005 Del Skrevet 20. januar 2005 (endret) en liten random css sak: Hvorfor ikke bruke switch/case til det istedenfor masse elseif's? <?php $x = rand(0,5); switch ($x) { case 1: echo '<link href="ph001.css" rel="stylesheet" type="text/css">'; break; case 2: echo '<link href="ph002.css" rel="stylesheet" type="text/css">'; break; case 3: echo '<link href="ph003.css" rel="stylesheet" type="text/css">'; break; case 4: echo '<link href="ph004.css" rel="stylesheet" type="text/css">'; break; case 5: echo '<link href="ph005.css" rel="stylesheet" type="text/css">'; break; default: echo '<link href="ph001.css" rel="stylesheet" type="text/css">'; break; } ?> Mye ryddigere kode. EDIT: evt. kunne du gjort det slik: <?php $x = rand(0, 5); echo '<link href="ph00' . $x . '.css" rel="stylesheet" type="text/css" />'; ?> Endret 20. januar 2005 av jorgis Lenke til kommentar
Christian_ Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 en liten php-kode highlighter <div style=" background: #F7F7F7; border: 1px solid #E5E5E5; padding: 50px; "> <?php if (!@$_GET['laget']) { ?> <form method="post" action="highlighter.php?laget=1"> Putt inn koden som skal highlites:<br /> <textarea name="kode" rows="25" cols="70"></textarea> <br /><br /> <input type="submit" value="Lag kode!" /> <input type="reset" value="Nullstill" /> </form> <?php } elseif (@$_GET['laget'] == 1) { //når man har trykket på submit(Lag Kode!) $kode = $_POST['kode']; //tekstboksen som koden skal inn i $kodeto = (htmlspecialchars(highlight_string($kode, true))); //gjør om html og php koder til tegn og higlighter kodene etterpå $kodetre = highlight_string($kode, true); //koden som skal vises i tekstfeltet if(empty($kode)) { //hvis tekstboksen kode er tom skriv feilmeldig echo "Hva er vitsen i å highlite ingenting?"; } else { //skriv ut highlight koden og vis hvordan den vil se ut echo "Lim inn denne koden for å få den highlighta koden på siden din:"; echo "<br /><br /><textarea rows=\"25\" cols=\"60%\">"; echo "$kodeto"; echo "</textarea><br /><br />"; echo "Din kode vil se slik ut når du limer den inn på siden din:<br /><br />"; echo "<div style=\" background: #FAFAFA; border: 1px solid #E5E5E5; font-size: 0.7em; margin: 5px; \">"; echo "$kodetre"; echo "</div>"; } } ?> </div> filen skal hete "highlighter.php" men du kan skifte navnet veldig enkelt ved å forandre navnet i action taggen Hvis noen spør om jeg er inspirert av Jorgis sin html-highlighter, så er svaret ja Lenke til kommentar
jorgis Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 Hvis noen spør om jeg er inspirert av Jorgis sin html-highlighter, så er svaret ja tongue.gif wink.gif ...og for dere som er intressert, er HTMLizeren her, og koden ser slik ut: <?php $s = $_GET["s"]; if (!$s) { $s = "0"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>the HTMLizer | www.jorgis.com</title> <style type="text/css" media="screen"> body { font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; font-size:0.8em; } code { font-size:12px; } </style> </head> <body> <div style=" background-color:#F5F5F5; border:1px solid #CCCCCC; width:600px; padding:5px; margin:0 auto; position:relative; "> <?php if ($s == "0") { ?> <h1 style="text-align:center;">the HTMLizer</h1> <p>Skriv inn HTML-kode du vil ha fixet i tekstboksen under, og trykk "Fix!"</p> <form action="index.php?s=1" method="post"> <textarea name="input" rows="25" cols="71"></textarea><br /> Syntax highlighting av koden? <input type="checkbox" name="synhl" checked="checked" /> | <input type="submit" value="Fix!" /> </form> <?php } elseif ($s == "1") { //echoing header echo "<h1 style=\"text-align:center;\">the HTMLizer</h1>"; echo "<p>Her er slik koden kommer til å se ut på din side:</p><br /><br />"; //makin's sure everything is nice and not getting parsed $input = $_POST["input"]; $input = htmlspecialchars("$input"); $input = nl2br($input); $input = str_replace("\t", " ", $input); $input = stripslashes($input); if (empty($input)) { die("Du er nødt til å fylle ut kode i feltet. Det er vel halve grunnen til at jeg laget denne greien?"); } $color = $_POST["synhl"]; if ($color == "on") { //coloring is a steady horse // fikser highlight på vanlige tagger $input = preg_replace("#<(.+?)>#is", "<span style=\"color:#000099;\"><\\1></span>", $input); // <a>-taggen $input = preg_replace("#<a(.+?)>(.+?)</a>#is", "<span style=\"color:#006600;\"><a\\1></span>\\2<span style=\"color:#006600;\"></a></span>", $input); // <img>-taggen $input = preg_replace("#<img(.+?)>#is", "<span style=\"color:#990099;\"><img\\1></span>", $input); // <input>-taggen $input = preg_replace("#<input(.+?)>#is", "<span style=\"color:#FF9900;\"><input\\1></span>", $input); // <style> $input = preg_replace("#<style>(.+?)</style>#is", "<span style=\"color:#990099;\"><style></span>\\1<span style=\"color:#990099\"></style></span>", $input); // <!-- og --> $input = preg_replace("#<!--(.+?)-->#is", "<span style=\"color:#999999;\"><!--\\1--></span>", $input); // <script> med lukking $input = preg_replace("#<script(.+?)>(.+?)</script>#is", "<span style=\"color:#990000;\"><script\\1></span>\\2<span style=\"color:#990000;\"></script></span>", $input); // <script> uten lukking $input = preg_replace("#<script(.+?)>#is", "<span style=\"color:#990000;\"><script\\1></span>", $input); // <form> $input = preg_replace("#<form(.+?)>#is", "<span style=\"color:#FF9900;\"><form\\1></span>", $input); // </form> $input = preg_replace("#</form(.+?)>#is", "<span style=\"color:#FF9900;\"></form\\1></span>", $input); // <textarea> $input = preg_replace("#<(.+?)textarea(.+?)>#is", "<span style=\"color:#FF9900;\"><\\1textarea\\2></span>", $input); // atributter på vanlige tagger function attr($match) { return htmlspecialchars("<" . $match[1] . " ") . preg_replace("#([a-z\-]+)=(".*?")($| |\n)#", "\\1=<span style=\"color:#0000FF;\">\\2</span>\\3", $match[2]) . htmlspecialchars(">"); } $input = preg_replace_callback("#<([a-z0-9]+) (([a-z\-]+="(.*?)" *)*.*?)>#is", 'attr', $input); } //echoing echo "<!-- do not copy anything above this line -->\n\r"; echo "<code>"; echo "$input \n\r"; echo "</code>"; echo "<!-- do not copy anything below this line -->\n\r"; echo "<br /><br />"; //fixing > and < trouble $input = str_replace("<", "<", $input); //fixing < $input = str_replace(">", ">", $input); //fixing > //adding copyright notice //$input .= "<!-- Copyright www.jorgis.com -->"; //echoing textbox echo "<p>Kopier koden fra tekstboksen under, og lim inn i koden din for å få fin kode med syntax highlighting i din side. Vennligst la copyright-teksten ligge. Den vil uansett ikke synes på siden din.</p> <br /><br />"; echo "<textarea rows=\"25\" cols=\"71\">$input</textarea>"; } ?> </div> </body> </html> Lenke til kommentar
Christian_ Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 (endret) Slike tråder er de beste som fins og det er synd om denne dør ut, så jeg bumper den litt opp igjen og håper at den vil bli sticky igjen kan jo legge ved en kode også: en liten passordgenerator hvor lengden bestemmes selv. Jeg vet at det er en slik fra før her men jeg syntes den var litt for tung og gammeldags her er iallefall koden: <?php function lagtilfeldigpassord($lengde) { $tilfeldig = ''; // Strengen som skal inneholde passordet $tegn = array_merge( // Rams opp alle tegnene det skal trekkes fra range('a', 'z'), // a-z, små bokstaver range('A', 'Z'), // A-Z, store bokstaver range('0', '9'), // 0-9, tall array('æ', 'ø', 'å', '_', '-') // spesialtegn (mellomrom tas ikke med) ); for ($i = 0; $i < $lengde; $i++) { $tilfeldig .= $tegn[array_rand($tegn)]; // Lager passordet } return $tilfeldig; } ?> EDIT: Dabear men ta at denne koden lignet veldig på min. Det stemmer ikke at det er den samme, men jeg skjønner at du er mistenkelig. Der har dere iallefall en annen måte å gjøre det på også Endret 26. mars 2005 av chs89 Lenke til kommentar
formannen Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 (endret) Browseravhengige stylesheets. Det er litt irriterende at den mest brukte browseren ikke takler alle kodene til CSS. Men med dette skriptet kan du lage flere forskjellige stylesheets for å få det likt, evt. helt forskjellig i forskjellige browsere. <?php function getStyles() { if (strstr(getenv("HTTP_USER_AGENT"), "MSIE")) { print 'StylesheetForIE.css'; } else { print 'StylesheetForAndreBrowsere.css'; } } ?> Så henter du dette opp i: <link href="<?php getStyles();?>" rel="stylesheet" type="text/css"> Edit: skriveleifer... Endret 29. mars 2005 av formannen Lenke til kommentar
Christian_ Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 (endret) En liten kode for nummerering av linjer i f.eks et php skript som skal vises fram: <?php if (!@$_GET['steg']) { ?> <form method="post" action="?steg=1"> Putt inn koden som skal nummereres:<br /> <textarea name="kode" rows="25" cols="70"></textarea> <br /><br /> <input type="submit" value="Lag kode!" /> <input type="reset" value="Nullstill" /> </form> <?php } elseif (@$_GET['steg'] == 1) { $nr = 1; $kode = $_POST['kode']; $kode = htmlspecialchars($kode); $linjenr = str_replace("\n","<br />",$kode); $kodeto = explode("<br />", $linjenr); foreach($kodeto as $linje) { $nr = str_pad($nr, 3, "0", STR_PAD_LEFT); echo "[" . $nr . "] " . $linje . "<br />"; $nr++; } } ?> Hvis jeg skriver: <?php echo "Hello world"; ?> i textareaen så vil outputen bli: [001] <?php [002] echo "Hello world"; [003] ?> Denne kan sikkert også bli kombinert men highlight scriptet som jeg postet litt lenger opp i denne tråden Endret 29. mars 2005 av chs89 Lenke til kommentar
jorgis Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 (endret) Browseravhengige stylesheets. Det er litt irriterende at den mest brukte browseren ikke takler alle kodene til CSS. Men med dette skriptet kan du lage flere forskjellige stylesheets for å få det likt, evt. helt forskjellig i forskjellige browsere. <?php function getStyles() { if (strstr(getenv("HTTP_USER_AGENT"), "MSIE")) { print 'StylesheetForIE.css'; } else { print 'StylesheetForAndreBrowsere.css'; } } ?> Så henter du dette opp i: <link href="<?php getStyles();?>" rel="stylesheet" type="text/css"> *kremt* Den koden der søker etter strengen "MSIE" i user-agent-strengen til nettleserene, og siden "MSIE" er brukt av både IE og Opera, faller det litt i fisk. Blir litt på samme måten som at du ikke kan bruke "Mozilla" som kjennetegn, fordi alle bruker det. Skal man først lage en browsersniffer som fungerer tilfredsstillende må man gjøre det slik: 1. Sjekke om den har strengen "Opera" i seg, og hente ut versjonsnummer. 2. Sjekke om den har strengen "Firefox" i seg, og hente ut versjonsnummer. 3. Sjekke om den har strengen "Gecko" i seg, og sjekke om den har "rv: x.x.x" og også om den har Firefox-versjonsnummer. (tidligere firefox-versjoner hadde ikke "firefox" i UA-strengen, om jeg ikke tar helt feil). Sjekk også om den har både Gecko og Netscape. 4. Sjekk om den har strengen "MSIE" i seg. Dette er KUN om den ikke matcher på noen av de ovenstående. 5. Sjekk for evt. lynx, links, konqueror o.l. EDIT: Den biten som sjekker for firefox kan muligens slåes sammen med biten som sjekker for Gecko, siden Gecko brukes i Firefox, og det dermed ikke vil være noen forskjeller i utseende på siden. Endret 29. mars 2005 av jorgis Lenke til kommentar
Magnus Holm Skrevet 26. april 2005 Del Skrevet 26. april 2005 fikk sammen et lite ganske genialt script(om jeg kan si det selv) utav en feiltagelse, skulle egentlig prøve å lage et script for å lese php kode fra filer på andre servere, men under testingen kom jeg på hvorfor det ville blitt "umulig" (setter klammer rundt da jeg ikke er 100% sikker) selvom scriptet mitt ser fila som en hvilken som helst fil og derav ville ha skrevet ut php koden hvis de ligger på samme server så fungerer ikke dette over internett til en annen server for da vil målfila bare printe ut sin respektive html og det endte jeg også opp med: <?php $url = $_GET['url']; $fp = @fopen($url, "r"); if($fp){ show_source("$url"); fclose($fp); }else{ echo("$url ble ikke funnet..."); } ?> uansett ser jeg ett vist potensiale f.eks i forum sammenheng når man skal vise en html kode... Bra kode! Men jeg har endra den litt: <?php if (!isset($_GET['s'])) { echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"> URL (Husk: http://):<input type="text" name="s"><br /> <input type="submit" value="Submit"></form>'; } else { $url = $_GET['s']; $http = 'http://'; $g = strpos($url, $http); if ($g === false) { echo "Vennligst legg til $http i starten!"; echo ' <a href="' . $_SERVER['HTTP_REFERER'] . '" />Tilbake</a>'; } else { $fp = @fopen($url, "r"); if ($fp){ show_source("$url"); fclose($fp); } else { echo $url . ' ble ikke funnet... <a href="' . $_SERVER['HTTP_REFERER'] . '">Prøv igjen</a>'; } } } ?> Lenke til kommentar
Me sjøl Skrevet 1. mai 2005 Del Skrevet 1. mai 2005 (endret) Siden jeg ikke kunne finne noe slikt i tråden, legger jeg ut denen lille koden, selv om den er ganske simpel, for å endre titellen dynamisk hvis du bruker et includescript. Putt dette i <title>: DINSIDE.NO<?php $underside = strtoupper($_GET['side']); $id = strtoupper($_GET['id']); if (!empty($underside)) { echo ' :: '; echo $underside; } if (!empty($underside) && !empty($id)) { echo ' :: '; echo $id; } ?> Vil printe ut DINSIDE.NO :: UNDERSIDE :: ID hvis addressen er www.dinside.no/?side=underside&id=id osv. Endret 1. mai 2005 av Me sjøl Lenke til kommentar
ZiZe Skrevet 1. mai 2005 Del Skrevet 1. mai 2005 (endret) Liten kjekk sak du kan include i config fila di. function dbConnect() { $host = "localhost"; $user = "USER" $password = "PASSWORD"; $database = "DATABASE"; $link_id = mysql_pconnect($host, $user, $password) or die("FATAL ERROR: Could not contact the database server!"); mysql_select_db($database, $link_id) or die("FATAL ERORR: There was a problem with the database!"); return $link_id; } hver gang du trenger en mysql tilkobling skriver du bare feks, $mysqlLink = dbConnect(); Og en liten funksjon for og spamsikre email adresser litt: function spamstopp($email) { $random.=rand(133,2344); $link ="@REMOVE_".$random."_THIS."; $show = "- AT -"; $email2[0] = preg_replace('/@/', $link, $email); $email2[1] = preg_replace('/@/', $show, $email); return $email2; } Denne vil da ta emailen og gi deg 2 forskjellige versioner av den tilbake i en array. feks: $email = spamstopp('[email protected]'); $email[0] vil da inneholde -> foo@REMOVE_2125_THS.foobar.org (hvor tallet er et tilfeldig tall) $email[1] vil da inneholde -> foo- AT -foobar.org jeg bruker og gjøre: echo '<a href="mailto:'. $email[0] .'">'. $email[1] .'</a>'; Endret 1. mai 2005 av ZiZe Lenke til kommentar
PT Skrevet 1. mai 2005 Del Skrevet 1. mai 2005 Og en liten funksjon for og spamsikre email adresser litt: function spamstopp($email) { $random.=rand(133,2344); $link ="@REMOVE_".$random."_THIS."; $show = "- AT -"; $email2[0] = preg_replace('/@/', $link, $email); $email2[1] = preg_replace('/@/', $show, $email); return $email2; } Denne vil da ta emailen og gi deg 2 forskjellige versioner av den tilbake i en array. feks: $email = spamstopp('[email protected]'); $email[0] vil da inneholde -> foo@REMOVE_2125_THS.foobar.org (hvor tallet er et tilfeldig tall) $email[1] vil da inneholde -> foo- AT -foobar.org jeg bruker og gjøre: echo '<a href="mailto:'. $email[0] .'">'. $email[1] .'</a>'; Og her er en annen løsning. Vet ikke hvor effektiv den er, men leste ettellerannet sted at det hjelper på function doemail($string) { preg_match_all('/.{1,1}/s', $string, $matches); // Etterligne PHP5 sin str_split() $string = $matches[0]; $newstring = ""; foreach($string as $s) { $newstring .= "" . ord($s[0]) . ";"; } return $newstring; } Lenke til kommentar
ZoRaC Skrevet 2. mai 2005 Del Skrevet 2. mai 2005 Jeg bruker en snedig sak for å lettere kunne feilsøke i mine script (mySQL). I min config.inc.php-fil setter jeg: <?php $debugging=2; //(0 = ingen debugging, 1 = alt, untatt notice, 2 = full debugging) ?> (har også sql-parameterne i denne filen) Så har jeg en core.inc.php som inkluderes i alle filer: <?php require_once("config.inc.php"); $db = mysql_connect($sql_server, $sql_username, $sql_password) or die("Unable to connect to database. Please check your MySQL server, username and password configurations."); mysql_select_db($sql_database, $db) or die("Unable to select the database. Please check your MySQL database configuration."); if ($debugging == 2) error_reporting(E_ALL); if ($debugging == 1) error_reporting(E_ALL ^ E_NOTICE); else error_reporting(0); function check_mysql($result, $default_error = false, $default_ok = false, $die = false) { global $debugging; global $query; if (!$result) { if ($debugging >= 1) echo $default_error . "<br><br><b>Mysql-error (" . mysql_errno() . "):</b> ". mysql_error() . "<br><br><b>Query:</b> $query"; else echo $default_error; if ($die) die(); } else echo $default_ok; } ?> Syntax: check_mysql("variabel med resultat", "feilmelding som skal komme opp ved feil, eller false for ingen", "tekst som skal komme opp ved OK, eller false for ingen", "true hvis scriptet skal "die();" ved feil"); Når jeg da kjører et query gjør jeg slik: <?php require_once("core.inc.php"); $query = "SELECT * FROM table"; $result = mysql_query($query, $db); check_mysql($result, "An error occured when getting data", false, true); ?> Dette vil med $debugging = 1 eller 2 gi en feilmelding med tekst, nummer og query. I tillegg til PHP-feilmeldinger. Ved $debugging = 0 vil den ikke gi noen feilmeldinger annet enn den man oppgir i check_mysql(). I tillegg vil scriptet i eksemplet die(); hvis det feiler. Lenke til kommentar
Prodigy_ Skrevet 8. mai 2005 Del Skrevet 8. mai 2005 (endret) Det er et par her i forumet som har spurt om hvordan man lister opp filene i en mappe uten at "." og ".." vises. Her er da et eksempel på hvordan man ungår at "." og ".." blir vist når man skal liste opp filene i en mappe: <?php $dir = "./"; if($dh = opendir($dir)) { while(($file = readdir($dh)) !== false) { if(($file != '.') and ($file != '..')) { echo '<a href="' . $dir . '/' . $file . '">' . $file . '</a><br />'; } } closedir($dh); } ?> Edit: Rettet opp en bug i scriptet. Var litt trøtt da jeg skrev det i går. Endret 4. juli 2005 av Prodigy_ Lenke til kommentar
Cucum(r) Skrevet 9. mai 2005 Del Skrevet 9. mai 2005 (endret) En funksjon for å gjøre om alt mellom <enti> og </enti> til, ja, entiteter. Ganske tidsbesparende hvis du poster mye eksempelkode på siden din. function html_to_entities($text) { $text = preg_replace("^(<enti>)\n?([\S|\s]*?)\n?(</enti>)^ie", "'<enti>' . htmlspecialchars(\"$2\", ENT_QUOTES) . '</enti>'", $text); $text = str_replace("<enti>", '', $text); $text = str_replace("</enti>", '', $text); return $text; } Endret 9. mai 2005 av SirIce Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå