Occi Skrevet 8. september 2011 Del Skrevet 8. september 2011 (endret) Generell index.php-fil som tar i bruk ?p=home etc: skrevet selv, ingen guide, så kan være noen dårlige løsninger, men funker fint <?php // inkluder dine .php-filer og klasser her // opprett klassene dine her $f_allow = array(); // liste over mapper som kan brukes vha. ?f=folder $p_allow = array(); // liste over filer som kan brukes vha. ?p=file $f = $_GET['f']; // hent ?f=folder $p = $_GET['p']; // hent ?p=page header("Content-Type: text/html; charset=UTF-8"); // noobsafe force UTF8 session_start(); // evt. put din head.php her if(!empty($f)) { if(in_array($f, $f_allow)) { if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($f."/".$p.".php")) { include($f."/".$p.".php"); } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // putt forside tekst her, gjerne via require() } } else { echo '<div class="errormsg">Fant ingen mappe ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($p . ".php")) { include($p . ".php"); } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // ingen $_GET satt, skriv standard forsidetekst } // putt din footer.php her om du har // avslutt db og scripts, ikke nødvendig, men god vane ?> Highlighting for nåværende ?p=side + hover-highlight for navigation: if-setningen er lett å endre om du f. eks bruker bare about.php i stedet for, da kan du ta i bruke PHPs basename()-funksjon <li <?php if($_GET['p'] == 'home') echo 'class="current"' ?> > <a href="?p=home" title="Home">Home</a> </li> <li <?php if($_GET['p'] == 'about') echo 'class="current"' ?> > <a href="?p=about" title="About">About</a> </li> <li <?php if($_GET['p'] == 'contact') echo 'class="current"' ?> > <a href="?p=contact" title="Contact">Contact</a> </li> Trenger da også tilhørende CSS som kan se f. eks slik ut: .current { border-bottom: red solid 1px; } Upload-script: merk at rettighetsskriving av filene til servern er ikke satt, så kan bli litt forskjellig $error_types = array(1=>'The uploaded file exceeds the upload_max_filesize directive in php.ini.', 2=>'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 3=>'The uploaded file was only partially uploaded.', 4=>'You need to choose a file.', 6=>'Missing a temporary folder.', 7=>'Failed to write file to disk.', 8=>'A PHP extension stopped the file upload.'); if($_FILES["file"]["error"] == 0) // success { // save tempfile move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]); $success = true; $successTitle = "File ".$_FILES["file"]["name"]." uploaded!"; $successContent = "<p>File ".$_FILES["file"]["name"]." uploaded!</p>". "<p>You can view the file <a href='upload/".$_FILES["file"]["name"]."'>here</a>.</p>"; } if($_FILES["file"]["error"] > 0) // some kind of error { $errorMessage = $error_types[$_FILES["file"]["error"]]; $error = true; $errorTitle = $errorMessage; // $errorTitle og $errorContent = $errorMessage $errorContent = "<p>$errorMessage</p>"; } if($success) echo "<script type='text/javascript'> document.title = $successTitle; </script>"; if($error) echo "<script type='text/javascript'> document.title = $errorTitle; </script>"; if($success) echo $successContent; if($error) echo $errorContent; Endret 8. september 2011 av Occi Lenke til kommentar
tnViking Skrevet 8. september 2011 Del Skrevet 8. september 2011 Generell index.php-fil som tar i bruk ?p=home etc: skrevet selv, ingen guide, så kan være noen dårlige løsninger, men funker fint <?php // inkluder dine .php-filer og klasser her // opprett klassene dine her $f_allow = array(); // liste over mapper som kan brukes vha. ?f=folder $p_allow = array(); // liste over filer som kan brukes vha. ?p=file $f = $_GET['f']; // hent ?f=folder $p = $_GET['p']; // hent ?p=page header("Content-Type: text/html; charset=UTF-8"); // noobsafe force UTF8 session_start(); // evt. put din head.php her if(!empty($f)) { if(in_array($f, $f_allow)) { if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($f."/".$p.".php")) { include($f."/".$p.".php"); } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // putt forside tekst her, gjerne via require() } } else { echo '<div class="errormsg">Fant ingen mappe ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($p . ".php")) { include($p . ".php"); } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // ingen $_GET satt, skriv standard forsidetekst } // putt din footer.php her om du har // avslutt db og scripts, ikke nødvendig, men god vane ?> Jeg må være dom som ett brød, jeg får ikke denne til å funke... Lenke til kommentar
Occi Skrevet 8. september 2011 Del Skrevet 8. september 2011 Du må nesten beskrive det litt nærmere. Hvordan er det den ikke fungerer? Har du satt inn sidene du skal aksessere i $f_allow og $p_allow? Det er kanskje ikke helt nødvendig å ha de med i det hele tatt for noen, men for min så er det måten jeg setter opp min index.php, og jeg vil ikke at alle mulige .php-filer i mappene mine skal kunne inkluderes helt uten videre. Kunne selvfølgelig ha satt rettigheter på filene, men det har jeg ikke satt meg godt nok inn i. Som sagt; du må forklare litt mer. Lenke til kommentar
tnViking Skrevet 8. september 2011 Del Skrevet 8. september 2011 Du må nesten beskrive det litt nærmere. Hvordan er det den ikke fungerer? Har du satt inn sidene du skal aksessere i $f_allow og $p_allow? Det er kanskje ikke helt nødvendig å ha de med i det hele tatt for noen, men for min så er det måten jeg setter opp min index.php, og jeg vil ikke at alle mulige .php-filer i mappene mine skal kunne inkluderes helt uten videre. Kunne selvfølgelig ha satt rettigheter på filene, men det har jeg ikke satt meg godt nok inn i. Som sagt; du må forklare litt mer. Det er vell mer at jeg ikke skjønner hvordan denne funker Kunne du visst meg ett eksempel med både index og about? Lenke til kommentar
Occi Skrevet 8. september 2011 Del Skrevet 8. september 2011 (endret) Dette er hvordan din index.php-fil vil se ut om du kun har en forsidetekst (ligger i main.php) og en about-side. For å gjøre det så enkelt som mulig er det ingen klasser eller annet som er nødvendig som er lagt til her og for alle kommentarer som beskriver hvor disse bør legges så henviser jeg til forrige post med kode. Har lagt til en head.php og en footer.php pga. det er hele poenget med å ha en slik index.php-fil, nemlig å ha lik logo, navigation etc. på alle sidene, og ikke måtte endre disse i hver og eneste fil men heller bare inkludere de via en index-fil. Med andre ord: Man klikker på f. eks en lenke til "about", og da vil siden være f. eks www.foo.com?p=about. Du kan se systemet i action på min testside (index.php er bittelitt annerledes, men samme prinsipp). <?php $f_allow = array(); // tom pga. ingen filer i mapper skal aksesseres $p_allow = array('main.php', 'about.php'); // lovelige filer for ?p=file $f = $_GET['f']; // hent ?f=folder $p = $_GET['p']; // hent ?p=page require("includes/head.php"); if(!empty($f)) // ?f=folder er satt { if(in_array($f, $f_allow)) // filen i ?f= er aksesserbar { if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($f."/".$p.".php")) { include($f."/".$p.".php"); // her vil det da si at man har f. eks www.foo.com?f=php&p=script1.php } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { require("main.php"); // forsidetekst } } else { echo '<div class="errormsg">Fant ingen mappe ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($p . ".php")) { include($p . ".php"); // her er det kun ?p= som er satt, f. eks www.foo.com?p=about } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // ingen $_GET satt, skriv standard forsidetekst require("main.php"); } require("includes/footer.php"); ?> Med andre ord er prosessen slik om du skal gå til about.php, dvs. www.foo.com?p=about Index.php Require("head.php") Hent $_GET['p'] som vil gi "about" Require("about.php") i praksis $p som er lik $_GET['p'] Require("footer.php") Endret 8. september 2011 av Occi Lenke til kommentar
tnViking Skrevet 8. september 2011 Del Skrevet 8. september 2011 Dette er hvordan din index.php-fil vil se ut om du kun har en forsidetekst (ligger i main.php) og en about-side. For å gjøre det så enkelt som mulig er det ingen klasser eller annet som er nødvendig som er lagt til her og for alle kommentarer som beskriver hvor disse bør legges så henviser jeg til forrige post med kode. Har lagt til en head.php og en footer.php pga. det er hele poenget med å ha en slik index.php-fil, nemlig å ha lik logo, navigation etc. på alle sidene, og ikke måtte endre disse i hver og eneste fil men heller bare inkludere de via en index-fil. Med andre ord: Man klikker på f. eks en lenke til "about", og da vil siden være f. eks www.foo.com?p=about. Du kan se systemet i action på min testside (index.php er bittelitt annerledes, men samme prinsipp). <?php $f_allow = array(); // tom pga. ingen filer i mapper skal aksesseres $p_allow = array('main.php', 'about.php'); // lovelige filer for ?p=file $f = $_GET['f']; // hent ?f=folder $p = $_GET['p']; // hent ?p=page require("includes/head.php"); if(!empty($f)) // ?f=folder er satt { if(in_array($f, $f_allow)) // filen i ?f= er aksesserbar { if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($f."/".$p.".php")) { include($f."/".$p.".php"); // her vil det da si at man har f. eks www.foo.com?f=php&p=script1.php } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { require("main.php"); // forsidetekst } } else { echo '<div class="errormsg">Fant ingen mappe ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else if(!empty($p)) { if(in_array($p, $p_allow)) { if(file_exists($p . ".php")) { include($p . ".php"); // her er det kun ?p= som er satt, f. eks www.foo.com?p=about } } else { echo '<div class="errormsg">Fant ingen fil ved dette navnet. Sjekk om URL er skrevet' . ' riktig og prøv igjen på nytt.</div>'; } } else { // ingen $_GET satt, skriv standard forsidetekst require("main.php"); } require("includes/footer.php"); ?> Med andre ord er prosessen slik om du skal gå til about.php, dvs. www.foo.com?p=about Index.php Require("head.php") Hent $_GET['p'] som vil gi "about" Require("about.php") i praksis $p som er lik $_GET['p'] Require("footer.php") aha, nå fikk jeg den til, men i $p_allow matte jeg fjerne .php etter fil navnene Lenke til kommentar
Occi Skrevet 8. september 2011 Del Skrevet 8. september 2011 Gikk litt fort i svingene Lenke til kommentar
sfenne Skrevet 22. september 2011 Del Skrevet 22. september 2011 (endret) Jeg har laget et script som henter ut profilbilde fra facebook basert på navn (gitt at personen ikke har NASA-paranoide personvernsinnstillinger). function facebook($name) { if(!stristr($name," ")) $url='http://www.facebook.com/'.$name; else { $url="http://www.google.no/search?hl=en&source=hp"; $url.="&biw=1920&bih=922&q=".urlencode($name); $url.="+facebook&btnI=I%27m+Feeling+Lucky&aq=f"; $url.="&aqi=&aql=&lr=lang_no"; } // prep var $name=strtolower($name); $path='pics/'.preg_replace('/[^A-Za-z0-9-]/', '', $name).'.jpg'; if(file_exists($path) && filemtime($path)>(time()-(60*60*24*7))) return $path; $header="NULL"; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, $header); curl_setopt($ch, CURLOPT_NOBODY, $header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.no/'); $res = curl_exec($ch); curl_close($ch); $res=htmlspecialchars($res); $res=substr($res, strpos($res,"class=\"photo img\" src=\"")); $res=substr($res,strpos($res, "http")); $res=substr($res,0, strpos($res, """)-1); $res=str_replace("\\","",$res); if(!stristr($res, "profile")) return '404.jpg'; else { $get=file_put_contents($path, file_get_contents($res)); return $path;// <br/>'.strlen($res); } } Scriptet lagrer bildet lokalt, slik at flere oppslag vil returnere det lokale bildet innenfor en tidsramme på 7 dager. Test scriptet live her: http://www.hvpu.no/fbpb/ Endret 22. september 2011 av sfenne Lenke til kommentar
y0y0y Skrevet 22. september 2011 Forfatter Del Skrevet 22. september 2011 Jeg har laget et script som henter ut profilbilde fra facebook basert på navn (gitt at personen ikke har NASA-paranoide personvernsinnstillinger). function facebook($name) { if(!stristr($name," ")) $url='http://www.facebook.com/'.$name; else { $url="http://www.google.no/search?hl=en&source=hp"; $url.="&biw=1920&bih=922&q=".urlencode($name); $url.="+facebook&btnI=I%27m+Feeling+Lucky&aq=f"; $url.="&aqi=&aql=&lr=lang_no"; } // prep var $name=strtolower($name); $path='pics/'.preg_replace('/[^A-Za-z0-9-]/', '', $name).'.jpg'; if(file_exists($path) && filemtime($path)>(time()-(60*60*24*7))) return $path; $header="NULL"; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, $header); curl_setopt($ch, CURLOPT_NOBODY, $header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.no/'); $res = curl_exec($ch); curl_close($ch); $res=htmlspecialchars($res); $res=substr($res, strpos($res,"class=\"photo img\" src=\"")); $res=substr($res,strpos($res, "http")); $res=substr($res,0, strpos($res, """)-1); $res=str_replace("\\","",$res); if(!stristr($res, "profile")) return '404.jpg'; else { $get=file_put_contents($path, file_get_contents($res)); return $path;// <br/>'.strlen($res); } } Scriptet lagrer bildet lokalt, slik at flere oppslag vil returnere det lokale bildet innenfor en tidsramme på 7 dager. Test scriptet live her: http://www.hvpu.no/fbpb/ Tøøøft Lenke til kommentar
sfenne Skrevet 22. september 2011 Del Skrevet 22. september 2011 (endret) Jeg begynte på et script i går, motivert og inspirert av utenlandske "WordFeud cheats". Det er ikke akkurat en scrabblecheater, men et godt verktøy, med flere alternativer - for den norske ordboka. :-) Vet ikke om det er så mange som er klar over at ordboka ligger tilgjengelig på nett, i en strukturert .txt-fil. 1. last ned norske ordboka herfra (registrer deg for innloggingsdetaljer): http://www.edd.uio.no/prosjekt/ordbanken/ 2. importer fila i egen database Jeg har brukt MySQL... of course :-) Bruker fgets for å laste den enorme fila. Noen annen metode anbefales ikke. function db_init() { $db=array('localhost','user','pass','ordbok'); $dbc=mysql_connect($db[0], $db[1], $db[2]); mysql_select_db($db[3]) or die(mysql_error()); } db_init(); $handle = @fopen("fullform_bm.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { if(stristr($buffer, "*")) continue; else $row=explode("\t",$buffer); mysql_query(" INSERT INTO ord (id,ordid,grunnform,fullform, morfologisk_beskrivelse,paradigmekode,paradigme_nummer) VALUES ('','".$row[0]."', '".mysql_real_escape_string($row[1])."', '".mysql_real_escape_string($row[2])."', '".mysql_real_escape_string($row[3])."', '".$row[4]."','".$row[5]."');") or die(mysql_error()); echo $i++.". ".$row[2]."\n"; } fclose($handle); } Koden for selve løsningen er ikke klart for deling, men kan kan testes ut live her: http://www.hvpu.no/ord/ Eksempel: ord la oss si at du ønsker å bygge på ordet sto. - skriv "*sto*" inkluder tegn om du spiller scrabble, og har f.eks. bokstavene r,b og e - skriv "rbe" ekskluder tegn hvis det er bokstaver du ikke ønsker å få. lengde hvor mange bokstaver kan ordet være kun løsninger? om du velger ja, vil kun hele ord vises (ved hjelp av ord-feltet og bokstavene du har tilgjengelig). Resultat: besto stor [...] Kan selvsagt også brukes til oppslag av ord, eller rett og slett SØKE etter ord med wildcards (kake*), eller "h_i" (hei, hai). http://www.hvpu.no/ord/ Endret 22. september 2011 av sfenne Lenke til kommentar
emilkje Skrevet 26. september 2011 Del Skrevet 26. september 2011 Jeg begynte på et script i går, motivert og inspirert av utenlandske "WordFeud cheats". Det er ikke akkurat en scrabblecheater, men et godt verktøy, med flere alternativer - for den norske ordboka. :-) Fantastisk! Dette skal testes asap! Jeg har også et lite snippet som jeg mekka sammen for å få presentert det nåværende været på desktop (GeekTool). OBS! Dette er på ingen måte et elegant eller sikkert script. <?php $url = $_GET['url']; //weather.yahoo.com URL for ditt sted $file_contents = file_get_contents($url); $divStart = '<div class="forecast-icon" style="background:url(' . "'"; $strEnd = "'); _background-image/* */: none;"; //HTML after weather image $start = strpos($file_contents, $divStart) + 50; $end = strpos($file_contents, $strEnd); $length = $end-$start; $imagepath=substr($file_contents, $start , $length); //Pulls path to image $image=imagecreatefrompng($imagepath); //Pulls image source into PHP imagealphablending($image, true); //Enable alpha blending (important) imagesavealpha($image, true); //Applies alpha to image. header('Content-Type: image/png'); //Identifies itself as a PNG image imagepng($image); //Outputs image contents ?> For å bruke det peker du bare til sti/til/weather.php?url=http://weather.yahoo.com/norway/sor-trondelag/trondheim-865157/ Lenke til kommentar
Fibonacci Skrevet 27. september 2011 Del Skrevet 27. september 2011 (endret) Ei lita kalender-kode eg skreiv for nokre år sidan. Ein kan navigere fram og tilbake i månad og år. <?php /* Calendar v. 1.1 by Kjell Arne Steinsvik ([email protected]). This module returns an HTML <table></table> containing the calendar. This module validates as HTML 4.01 Strict. The script takes the following arguments: (int) $_GET['month'] - The month you wish to display. (1 - 12) (int) $_GET['year'] - The year you wish to display. (1 - 2037) */ // Change these values to customize colors and styles: $bg_color = "f9f9f9"; $darker = "efefef"; $today_col = "ffe0e0"; $css_classname = "small"; /* ------- Script start -------- */ // Check if month or year is defined in $_GET: if (is_numeric($_GET['month']) && $_GET['month'] > 0 && $_GET['month'] < 13) { $month = $_GET['month']; } else { $month = date("n"); $today = date("d"); } if (is_numeric($_GET['year']) && $_GET['year'] > 0 && $_GET['year'] < 2038) { $year = $_GET['year']; } else { $year = date("Y"); } // Calculate next/previous month/year: $next_month = $month+1; if ($next_month > 12) { $next_month = 1; $next_year = $year+1; } $next_year = $year+1; if ($next_year == 2038) { $next_year = date("Y"); } $previous_month = $month-1; if ($previous_month == 0) { $previous_month = 12; $previous_year = $year-1; } $previous_year = $year-1; if ($previous_year == 0) { $previous_year = date("Y"); } // Norwegian monthnames: $month_array = array( "null", "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember" ); $weekdays = array("M", "T", "O", "T", "F", "L", "S"); // Number of days in the month: $num_days = date("t", mktime(0, 0, 0, $month, 1, $year)); // First weekday of the month: $first_day = date("w", mktime(0, 0, 0, $month, 0, $year)); // Print some HTML: echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"125\" style=\"border-right:#" . $border . " 1px solid; border-bottom: #" . $border . " 1px solid; border-top: #" . $border . " 1px solid\"> <tr> <td colspan=\"8\" align=\"center\" class=\"liten\" style=\"background-color:#7595b0; border-bottom:#" . $border . " 1px solid\"><span style=\"color:#ffffff\"><b>" . $month_array["$month"] . " " . $year . "</b></span></td> </tr> <tr> <td colspan=\"8\" align=\"center\" style=\"background-color:#" . $bg_color . "; border-bottom:#" . $border . " 1px solid\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:125px; text-align:center\"> <tr> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $month . "&year=" . $previous_year . "\" class=\"" . $css_classname . "\"><<</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $previous_month . "&year="; if ($previous_month == 12) { echo $previous_year; } else { echo $year; } echo "\" class=\"" . $css_classname . "\"><</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "\" class=\"" . $css_classname . "\">-</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $next_month . "&year="; if ($next_month == 1) { echo $next_year; } else { echo $year; } echo "\" class=\"" . $css_classname . "\">></a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $month . "&year=" . $next_year . "\" class=\"" . $css_classname . "\">>></a></td> </tr> </table> </td> </tr> <tr> <td style=\"background-color: #" . $darker . "; text-align:center\" class=\"" . $css_classname . "\"> </td>"; foreach ($weekdays as $value) { echo "<td style=\"background-color: #" . $darker . "; text-align:center\" class=\"graa\">" . $value . "</td>"; } echo "</tr> <tr> <td style=\"background-color: #" . $darker . "; text-align:center\" class=\"graa\">" . date("W", mktime(0, 0, 0, $month, 1, $year)) . "</td>"; // Print empty cells until the first weekday of the month: for ($i = 0; $i < $first_day; $i++) { echo "<td style=\"background-color: #" . $bg_color . "\" class=\"" . $css_classname . "\"> </td>"; } // Print number of days in the month: for ($i = 1; $i <= $num_days; $i++) { // Figure out which days are Sundays: $break = (7-$first_day); $break_dates = array( $break, $break+7, $break+14, $break+21, $break+28, ); // Print the days: echo "<td style=\"background-color: #"; if (date("d") == $i && $month == date("m")) { echo $today_col; } else { echo $bg_color; } echo "; text-align:right\" class=\"" . $css_classname . "\">" . $i . "</td>"; // If the day is Sunday, print a new row: if (in_array($i, $break_dates) && $i != $num_days) { echo "</tr><tr>"; // Print weeknumber: echo "<td style=\"background-color: #" . $darker . "\" class=\"graa\"> " . (date("W", mktime(0, 0, 0, $month, $i, $year))+1) . " </td>"; } } // End of the calendar. Print empty cells to fill the remains ot the table. $remains = $break_dates['4']-$num_days; if ($remains < 0) { $remains = $remains+7; } for ($i = 0; $i < $remains; $i++) { echo "<td style=\"background-color: #" . $bg_color . "\" class=\"" . $css_classname . "\"> </td>"; } // Print end of table: echo "</tr> </table>"; ?> Endret 27. september 2011 av Kjell Arne Steinsvik Lenke til kommentar
y0y0y Skrevet 27. september 2011 Forfatter Del Skrevet 27. september 2011 Ei lita kalender-kode eg skreiv for nokre år sidan. Ein kan navigere fram og tilbake i månad og år. <?php /* Calendar v. 1.1 by Kjell Arne Steinsvik ([email protected]). This module returns an HTML <table></table> containing the calendar. This module validates as HTML 4.01 Strict. The script takes the following arguments: (int) $_GET['month'] - The month you wish to display. (1 - 12) (int) $_GET['year'] - The year you wish to display. (1 - 2037) */ // Change these values to customize colors and styles: $bg_color = "f9f9f9"; $darker = "efefef"; $today_col = "ffe0e0"; $css_classname = "small"; /* ------- Script start -------- */ // Check if month or year is defined in $_GET: if (is_numeric($_GET['month']) && $_GET['month'] > 0 && $_GET['month'] < 13) { $month = $_GET['month']; } else { $month = date("n"); $today = date("d"); } if (is_numeric($_GET['year']) && $_GET['year'] > 0 && $_GET['year'] < 2038) { $year = $_GET['year']; } else { $year = date("Y"); } // Calculate next/previous month/year: $next_month = $month+1; if ($next_month > 12) { $next_month = 1; $next_year = $year+1; } $next_year = $year+1; if ($next_year == 2038) { $next_year = date("Y"); } $previous_month = $month-1; if ($previous_month == 0) { $previous_month = 12; $previous_year = $year-1; } $previous_year = $year-1; if ($previous_year == 0) { $previous_year = date("Y"); } // Norwegian monthnames: $month_array = array( "null", "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember" ); $weekdays = array("M", "T", "O", "T", "F", "L", "S"); // Number of days in the month: $num_days = date("t", mktime(0, 0, 0, $month, 1, $year)); // First weekday of the month: $first_day = date("w", mktime(0, 0, 0, $month, 0, $year)); // Print some HTML: echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"125\" style=\"border-right:#" . $border . " 1px solid; border-bottom: #" . $border . " 1px solid; border-top: #" . $border . " 1px solid\"> <tr> <td colspan=\"8\" align=\"center\" class=\"liten\" style=\"background-color:#7595b0; border-bottom:#" . $border . " 1px solid\"><span style=\"color:#ffffff\"><b>" . $month_array["$month"] . " " . $year . "</b></span></td> </tr> <tr> <td colspan=\"8\" align=\"center\" style=\"background-color:#" . $bg_color . "; border-bottom:#" . $border . " 1px solid\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:125px; text-align:center\"> <tr> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $month . "&year=" . $previous_year . "\" class=\"" . $css_classname . "\"><<</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $previous_month . "&year="; if ($previous_month == 12) { echo $previous_year; } else { echo $year; } echo "\" class=\"" . $css_classname . "\"><</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "\" class=\"" . $css_classname . "\">-</a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $next_month . "&year="; if ($next_month == 1) { echo $next_year; } else { echo $year; } echo "\" class=\"" . $css_classname . "\">></a></td> <td><a href=\"" . $_SERVER['PHP_SELF'] . "?month=" . $month . "&year=" . $next_year . "\" class=\"" . $css_classname . "\">>></a></td> </tr> </table> </td> </tr> <tr> <td style=\"background-color: #" . $darker . "; text-align:center\" class=\"" . $css_classname . "\"> </td>"; foreach ($weekdays as $value) { echo "<td style=\"background-color: #" . $darker . "; text-align:center\" class=\"graa\">" . $value . "</td>"; } echo "</tr> <tr> <td style=\"background-color: #" . $darker . "; text-align:center\" class=\"graa\">" . date("W", mktime(0, 0, 0, $month, 1, $year)) . "</td>"; // Print empty cells until the first weekday of the month: for ($i = 0; $i < $first_day; $i++) { echo "<td style=\"background-color: #" . $bg_color . "\" class=\"" . $css_classname . "\"> </td>"; } // Print number of days in the month: for ($i = 1; $i <= $num_days; $i++) { // Figure out which days are Sundays: $break = (7-$first_day); $break_dates = array( $break, $break+7, $break+14, $break+21, $break+28, ); // Print the days: echo "<td style=\"background-color: #"; if (date("d") == $i && $month == date("m")) { echo $today_col; } else { echo $bg_color; } echo "; text-align:right\" class=\"" . $css_classname . "\">" . $i . "</td>"; // If the day is Sunday, print a new row: if (in_array($i, $break_dates) && $i != $num_days) { echo "</tr><tr>"; // Print weeknumber: echo "<td style=\"background-color: #" . $darker . "\" class=\"graa\"> " . (date("W", mktime(0, 0, 0, $month, $i, $year))+1) . " </td>"; } } // End of the calendar. Print empty cells to fill the remains ot the table. $remains = $break_dates['4']-$num_days; if ($remains < 0) { $remains = $remains+7; } for ($i = 0; $i < $remains; $i++) { echo "<td style=\"background-color: #" . $bg_color . "\" class=\"" . $css_classname . "\"> </td>"; } // Print end of table: echo "</tr> </table>"; ?> Kule greier Lenke til kommentar
emilkje Skrevet 29. september 2011 Del Skrevet 29. september 2011 (endret) Vet ikke om det er så mange som er klar over at ordboka ligger tilgjengelig på nett, i en strukturert .txt-fil. Jeg har nå laget en liten app som tar utganspunkt i denne ordbank-databasen. Jeg kaller den "Domene Hacker'n", og er en søkemotor for domenenavn + tld som utgjør norske ord. Eksempelvis druk.net og kakeh.us. Den er ikke helt ferdig enda, da jeg mangler en availability check. PS: Hvis noen kan fortelle meg hvordan man fikser charset/encoding med cakephp + jquery ajax, så gi meg et pip Takk for tipset, sfenne Endret 29. september 2011 av emilkje Lenke til kommentar
NicholasWalkerHD Skrevet 29. september 2011 Del Skrevet 29. september 2011 Vet ikke om det er så mange som er klar over at ordboka ligger tilgjengelig på nett, i en strukturert .txt-fil. Jeg har nå laget en liten app som tar utganspunkt i denne ordbank-databasen. Jeg kaller den "Domene Hacker'n", og er en søkemotor for domenenavn + tld som utgjør norske ord. Eksempelvis druk.net og kakeh.us. Den er ikke helt ferdig enda, da jeg mangler en availability check. PS: Hvis noen kan fortelle meg hvordan man fikser charset/encoding med cakephp + jquery ajax, så gi meg et pip Takk for tipset, sfenne charset=utf-8 pass og på at du endrer encodingen til selve filen.. Men du vil ikke ha æ, ø og å i ett domene. Mange som ikke støtter det. Men applikasjonen var ganske kul da Lenke til kommentar
emilkje Skrevet 29. september 2011 Del Skrevet 29. september 2011 (endret) charset=utf-8 pass og på at du endrer encodingen til selve filen.. Men du vil ikke ha æ, ø og å i ett domene. Mange som ikke støtter det. Men applikasjonen var ganske kul da Problemet mitt er at jeg har satt utf-8 på alle mulig kilder, uten hell. Database, HTML og gjennom ajax kallet. Litt usikker på hva som er igjen da :s Jeg tenkte på å filtrere ut ord med øæå, men fant ut at jeg like gjerne kunne la dem stå, så får heller brukeren avgjøre om han/hun vil bruke de. Takk tilbakemelding EDIT: Velkommen til forumet forresten ;D Endret 29. september 2011 av emilkje Lenke til kommentar
NicholasWalkerHD Skrevet 29. september 2011 Del Skrevet 29. september 2011 charset=utf-8 pass og på at du endrer encodingen til selve filen.. Men du vil ikke ha æ, ø og å i ett domene. Mange som ikke støtter det. Men applikasjonen var ganske kul da Problemet mitt er at jeg har satt utf-8 på alle mulig kilder, uten hell. Database, HTML og gjennom ajax kallet. Litt usikker på hva som er igjen da :s Jeg tenkte på å filtrere ut ord med øæå, men fant ut at jeg like gjerne kunne la dem stå, så får heller brukeren avgjøre om han/hun vil bruke de. Takk tilbakemelding EDIT: Velkommen til forumet forresten ;D Takk Encodingen på filen er det som gjør at det ikke funker som du vil. Hvilket program bruker du til å redigere filer? Bruker du notepad++ må du trykke på format->Save as utf-8 without BOM. Lenke til kommentar
emilkje Skrevet 29. september 2011 Del Skrevet 29. september 2011 Hehe. Ja jeg er klar over det. Det er derfor jeg sliter med å finne kilden til feilen... Det er ingen steder i informasjonstransaksjonen som kræsjer med utf-8. Som du ser i det blå infofeltet så fungerer æøå utenfor ajax kallet, så jeg tror kanskje det er jQuery som krøller litt. Jeg logger på serveren via ssh og bruker vim som editor. Men la oss ikke gå off topic Lenke til kommentar
Occi Skrevet 29. september 2011 Del Skrevet 29. september 2011 Ta slikt som dette i f. eks pub'en :-) Lenke til kommentar
FraXinuS Skrevet 30. september 2011 Del Skrevet 30. september 2011 (endret) Hehe. Ja jeg er klar over det. Det er derfor jeg sliter med å finne kilden til feilen... Det er ingen steder i informasjonstransaksjonen som kræsjer med utf-8. Som du ser i det blå infofeltet så fungerer æøå utenfor ajax kallet, så jeg tror kanskje det er jQuery som krøller litt. Jeg logger på serveren via ssh og bruker vim som editor. Men la oss ikke gå off topic Jeg tipper dataen din i databasen ikke er lagret som utf-8. Det hjelper ikke å sette databasen til utf-8 hvis ikke dataen er lagret som utf-8. Prøv utf8_encode() på ordene etter at du har hentet dem fra databasen. Det beste er nok å fylle databasen på nytt og bruk utf8_encode på ordene før du setter dem inn i databasen. Endret 30. september 2011 av FraXinuS 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å