ERROR1a: Input for book parameter was: . This is not recognized as one of Plato's works.

USAGE:

http://tools.wmflabs.org/citeplato/index.php?book=TITLE&page=STEPHANUS_NUMBER&lang=LANGUAGE(optional)

Variables:

Book:
Page:
Pagen:
Lang: 1
Bookn:
page view

Script source:

<!DOCTYPE html>
<html>
<?php
/*version b0.1 Copyright 2013 Atethnekos at en.wikipedia.org/wiki/user:Atethnekos
Licensed under GPLv3. See gnu.org/licenses/gpl.html for the license. 

The Perseus Project does not include the Thrasyllian spuria: _Definitions_, _On_Justice_, 
_On_Virtue_, _Demodocus_, _Sisyphus_, _Halcyon_, _Eryxias_, _Axiochus_, and the _Epigrams_.

The 36 works in the 9 tetralogies are serviced.
*/

/*This reads the url "lang" parameter; anything with a "g" and without an "n" in any case will 
set to 0 for Greek (e.g., "grc", "Greek", "GR"); anything else will set to 1 for English. 0 are 
1 are used because this is added to the base book value to get the bookn number which is passed 
on to Perseus.  E.g., 167 is the _Republic_ in Greek, 168 is the _Republic_ in English.*/
$langl=strtolower($_GET["lang"]);
if (
strpos($langl"g")!==false && strpos($langl"n")===false) {
    
$lang 0;
}else {
    
$lang 1;
}

$pageu=preg_replace('/\s+/'''$_GET["page"]); //Strip whitespace from the url "page" parameter
$pagel=strtolower($pageu);

//Extract the substrings for the first four characters, used to determine the page number and section to pass to Perseus
//$pagen is set now so that error checking can be easily done later to make sure page is within range for the book selected
$cone=substr($pagel01);
$ctwo=substr($pagel11);
$cthree=substr($pagel21);
$cfour=substr($pagel31);
switch (
$cfour) {
    case 
"-"//hyphen
    
case "–"//n-dash
    
case "—"//m-dash
    
case "―"//horizontal bar
    
case "∼"//tilde operator
    
case "⁓"//swung dash
    
case "~"//tilde
    
case "&"//ampersand
        
$page=$cone.$ctwo.$cthree;
        
$pagen=$cone.$ctwo.$cthree;
        
$view="page";
        break;
    default:
        
$page=$cone.$ctwo.$cthree.$cfour;
        
$pagen=$cone.$ctwo.$cthree;
        
$view="section";
        break;
}
switch (
$cthree) {
    case 
"a":
    case 
"b":
    case 
"c":
    case 
"d":
    case 
"e":
        
$page=$cone.$ctwo.$cthree;
        
$pagen=$cone.$ctwo;
        
$view="section";
        break;
    case 
"-"//hyphen
    
case "–"//n-dash
    
case "—"//m-dash
    
case "―"//horizontal bar
    
case "∼"//tilde operator
    
case "⁓"//swung dash
    
case "~"//tilde
    
case "&"//ampersand
        
$page=$cone.$ctwo;
        
$pagen=$cone.$ctwo;
        
$view="page";
    default:
        break;
}
switch (
$ctwo) {
    case 
"a":
    case 
"b":
    case 
"c":
    case 
"d":
    case 
"e":
        
$page=$cone.$ctwo;
        
$pagen=$cone;
        
$view="section";
        break;
    case 
"-"//hyphen
    
case "–"//n-dash
    
case "—"//m-dash
    
case "―"//horizontal bar
    
case "∼"//tilde operator
    
case "⁓"//swung dash
    
case "~"//tilde
    
case "&"//ampersand
        
$page=$cone;
        
$pagen=$cone;
        
$view="page";
    default:
        break;
}

//Determine whether to set the defaultview on Perseus to page or section
if (strpos($page"a") === false && strpos($page"b") === false && strpos($page"c") === false && strpos($page"d") === false && strpos($page"e") === false) {
    
$indtext "page";
}else {
    
$indtext "section";
}

$bookl=strtolower($_GET["book"]);

//Determine what book the user has inputted; largely permissive
if (strpos($bookl"alc")!==false && strpos($bookl"2")===false && strpos($bookl"ii")===false && strpos($bookl"sec")===false)  {
    
$book="Alc.+1";    
    
$bookn 175 $lang;
}elseif (
strpos($bookl"alc")!==false && (strpos($bookl"2")!==false||strpos($bookl"ii")!==false||strpos($bookl"sec")!==false)) {
    
$book="Alc.+2";    
    
$bookn 175 $lang;
}elseif (
strpos($bookl"rch") !== false)  {
    
$book "Hipparch.";
    
$bookn 175 $lang;
}elseif (
strpos($bookl"lov") !== false || strpos($bookl"riv") !== false)  {
    
$book "Lovers";
    
$bookn 175 $lang;
}elseif (
strpos($bookl"eag") !== false)  {
    
$book "Theag.";
    
$bookn 175 $lang;
}elseif (
strpos($bookl"cha") !== false)  {
    
$book "Charm.";
    
$bookn 175 $lang;
}elseif (
strpos($bookl"lac") !== false)  {
    
$book "Lach.";
    
$bookn 175 $lang;
}elseif (
strpos($bookl"ly") !== false)  {
    
$book "Lysis";
    
$bookn 175 $lang;

}elseif (
strpos($bookl"cra") !== false)  {
    
$book "Crat.";
    
$bookn 171 $lang;
}elseif (
strpos($bookl"eae") !== false || strpos($bookl"eat") !== false) {
    
$book "Theaet.";
    
$bookn 171 $lang;
}elseif (
strpos($bookl"sop") !== false)  {
    
$book "Soph.";
    
$bookn 171 $lang;
}elseif (
strpos($bookl"sta") !== false || strpos($bookl"itic") !== false)  {
    
$book "Stat.";
    
$bookn 171 $lang;

}elseif (
strpos($bookl"yd") !== false)  {
    
$book "Euthyd.";
    
$bookn 177 $lang;
}elseif (
strpos($bookl"pro") !== false)  {
    
$book "Prot.";
    
$bookn 177 $lang;
}elseif (
strpos($bookl"go") !== false && strpos($bookl"p") === false)  {
    
$book "Gorg.";
    
$bookn 177 $lang;
}elseif (
strpos($bookl"meno") !== false)  {
    
$book "Meno";
    
$bookn 177 $lang;

}elseif (
strpos($bookl"phr") !== false || strpos($bookl"thyp") !== false)  {
    
$book "Euthyph.";
    
$bookn 169 $lang;
}elseif (
strpos($bookl"apo") !== false)  {
    
$book "Apol.";
    
$bookn 169 $lang;
}elseif (
strpos($bookl"rito") !== false)  {
    
$book "Crito";
    
$bookn 169 $lang;
}elseif (
strpos($bookl"edo") !== false)  {
    
$book "Phaedo";
    
$bookn 169 $lang;


}elseif (
strpos($bookl"maj") !== false || strpos($bookl"gre") !== false || (strpos($bookl"hip") !== false && strpos($bookl"min") === false && strpos($bookl"les") === false))  {
    
$book "Hipp.+Maj.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"hip") !== false && (strpos($bookl"min") !== false || strpos($bookl"les") !== false || strpos($bookl"2") !== false || strpos($bookl"ii") !== false || strpos($bookl"sec") !== false)) {
    
$book "Hipp.+Min.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"io") !== false)  {
    
$book "Ion";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"ex") !== false || strpos($bookl"mene") !== false)  {
    
$book "Menex.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"cle") !== false || strpos($bookl"cli") !== false)  {
    
$book "Cleit.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"tim") !== false)  {
    
$book "Tim.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"riti") !== false)  {
    
$book "Criti.";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"min") !== false && strpos($bookl"h") === false)  {
    
$book "Minos";
    
$bookn 179 $lang;
}elseif (
strpos($bookl"epin") !== false && strpos($bookl"h") === false)  {
    
$book "Epin.";
    
$bookn 179 $lang;

}elseif (
strpos($bookl"rep") !== false || strpos($bookl"pub") !== false)  {
    
$book "Rep.";
    
$bookn 167 $lang;

}elseif (
strpos($bookl"law") !== false)  {
    
$book "Laws";
    
$bookn 165 $lang;

//_Letters_ need special treatment in order to determine letter number:

}elseif (strpos($bookl"epis") !== false || strpos($bookl"let") !== false)  {
    
$book "L.";
    
$bookn 163 $lang;
    if (
strpos($bookl"2") !== false || strpos($bookl"ii") !== false && strpos($bookl"v") === false && strpos($bookl"x") === false && strpos($bookl"1") === false) {
        
$lett 2;
    }elseif (
strpos($bookl"3") !== false || strpos($bookl"iii") !== false && strpos($bookl"v") === false && strpos($bookl"x") === false && strpos($bookl"1") === false) {
        
$lett 3;
    }elseif (
strpos($bookl"4") !== false || strpos($bookl"iv") !== false && strpos($bookl"ii") === false && strpos($bookl"1") === false) {
        
$lett 4;
    }elseif (
strpos($bookl"5") !== false || strpos($bookl"v") !== false && strpos($bookl"iv") === false && strpos($bookl"vi") === false && strpos($bookl"1") === false) {
        
$lett 5;
    }elseif (
strpos($bookl"6") !== false || strpos($bookl"vi") !== false && strpos($bookl"ii") === false && strpos($bookl"1") === false && strpos($bookl"1") === false) {
        
$lett 6;
    }elseif (
strpos($bookl"7") !== false || strpos($bookl"vii") !== false && strpos($bookl"iii") === false && strpos($bookl"1") === false && strpos($bookl"1") === false) {
        
$lett 7;
    }elseif (
strpos($bookl"8") !== false || strpos($bookl"viii") !== false && strpos($bookl"1") === false) {
        
$lett 8;
    }elseif (
strpos($bookl"9") !== false || strpos($bookl"ix") !== false && strpos($bookl"1") === false) {
        
$lett 9;
    }elseif (
strpos($bookl"10") !== false || strpos($bookl"x") !== false && strpos($bookl"ix") === false && strpos($bookl"xi") === false) {
        
$lett 10;
    }elseif (
strpos($bookl"11") !== false || strpos($bookl"xi") !== false && strpos($bookl"ii") === false) {
        
$lett 11;
    }elseif (
strpos($bookl"12") !== false || strpos($bookl"xii") !== false && strpos($bookl"iii") === false) {
        
$lett 12;
    }elseif (
strpos($bookl"13") !== false || strpos($bookl"xiii") !== false && strpos($bookl"iii") === false) {
        
$lett 13;
    }else {
        
$lett 1;
    }

}elseif (
strpos($bookl"par") !== false && strpos($bookl"ip") === false)  {
    
$book "Parm.";
    
$bookn 173 $lang;
}elseif (
strpos($bookl"phi") !== false)  {
    
$book "Phileb.";
    
$bookn 173 $lang;
}elseif (
strpos($bookl"sym") !== false)  {
    
$book "Sym.";
    
$bookn 173 $lang;
}elseif (
strpos($bookl"dr") !== false)  {
    
$book "Phaedrus";
    
$bookn 173 $lang;
} else {
    print(
"<head><title>Cite Plato | Wikimedia Tool Labs</title></head><body>ERROR1a: Input for book parameter was: <code>".$_GET["book"]." </code>.  This is not recognized as one of Plato's works.<br/>");
    print (
"<h3>USAGE:</h3>http://"); 
    echo 
$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
    print (
"?book=TITLE&amp;page=STEPHANUS_NUMBER&amp;lang=LANGUAGE(optional)</p>"); 
    print (
"<h3>Variables:</h3>");
    print (
"Book: ".$book."<br/>");
    print (
"Page: ".$page."<br/>");
    print (
"Pagen: ".$pagen."<br/>");
    print (
"Lang: ".$lang."<br/>");
    print (
"Bookn: ".$bookn."<br/>");
    if (
$indtext=="page") {
        print (
"page view<br/>");
    }else{
        print (
"section view<br/>");
    }
    print(
"<h3>Script source:</h3><div style=\"margin: 2em; background: #eef; border: 2px solid #888; padding: 1em; font-size: 80%\">");
    
highlight_file(__FILE__);
    print(
"</div></body></html>");
    exit;
}

//Republic, Laws and the Letters do not take the same parameters in Perseus: %3Aletter%3D1%3A
if ($book=="Rep."||$book=="Laws") {
    
header("Location: http://www.perseus.tufts.edu/hopper/disppref?url=/hopper/text?doc=Perseus%3Atext%3A1999.01.0".$bookn."%3A".$indtext."%3D".$page."&default.scheme=text%3A".$indtext."&default.type=".$indtext);
}elseif (
$book=="L.") {
    
header("Location: http://www.perseus.tufts.edu/hopper/disppref?url=/hopper/text?doc=Perseus%3Atext%3A1999.01.0".$bookn."%3Aletter%3D".$lett."%3A".$indtext."%3D".$page."&default.scheme=text%3A".$indtext."&default.type=".$indtext);
}else{
    
header("Location: http://www.perseus.tufts.edu/hopper/disppref?url=/hopper/text?doc=Perseus%3Atext%3A1999.01.0".$bookn."%3Atext%3D".$book."%3A".$indtext."%3D".$page."&default.scheme=text%3A".$indtext."&default.type=".$indtext);
}
exit;
?>
</html>