108 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
 *  pgn4web javascript chessboard
 | 
						|
 *  copyright (C) 2009-2013 Paolo Casaschi
 | 
						|
 *  see README file and http://pgn4web.casaschi.net
 | 
						|
 *  for credits, license and more details
 | 
						|
 */
 | 
						|
 | 
						|
error_reporting(E_ALL | E_STRICT);
 | 
						|
 | 
						|
include "pgn-encoder.php";
 | 
						|
 | 
						|
function get_param($param, $shortParam, $default) {
 | 
						|
  if (isset($_REQUEST[$param])) { return $_REQUEST[$param]; }
 | 
						|
  if (isset($_REQUEST[$shortParam])) { return $_REQUEST[$shortParam]; }
 | 
						|
  return $default;
 | 
						|
}
 | 
						|
 | 
						|
$pgnText = get_param("pgnText", "pt", "");
 | 
						|
 | 
						|
if ($pgnText) {
 | 
						|
  $pgnText = str_replace(array("&", "<", ">"), array("&", "<", ">"), $pgnText);
 | 
						|
  $pgnTextBox = $pgnText;
 | 
						|
 | 
						|
  $pgnText = str_replace("\\\"", "\"", $pgnText);
 | 
						|
 | 
						|
  $pgnText = preg_replace("/\[/", "\n\n[", $pgnText);
 | 
						|
  $pgnText = preg_replace("/\]/", "]\n\n", $pgnText);
 | 
						|
  $pgnText = preg_replace("/([012\*])(\s*)(\[)/", "$1\n\n$3", $pgnText);
 | 
						|
  $pgnText = preg_replace("/\]\s*\[/", "]\n[", $pgnText);
 | 
						|
  $pgnText = preg_replace("/^\s*\[/", "[", $pgnText);
 | 
						|
  $pgnText = preg_replace("/\n[\s*\n]+/", "\n\n", $pgnText);
 | 
						|
} else {
 | 
						|
  $pgnText = <<<END
 | 
						|
 | 
						|
 | 
						|
 [White ""]
 | 
						|
 [Black ""]
 | 
						|
 [Result ""]
 | 
						|
 [Date ""]
 | 
						|
 [Event ""]
 | 
						|
 [Site ""]
 | 
						|
 [Round ""]
 | 
						|
 | 
						|
 {please enter your PGN games in the textbox and then click the button}
 | 
						|
 | 
						|
END;
 | 
						|
 | 
						|
  $pgnTextBox = $pgnText;
 | 
						|
}
 | 
						|
 | 
						|
$pgnLength = strlen($pgnTextBox);
 | 
						|
 | 
						|
$pgnEncoded = EncodePGN($pgnText);
 | 
						|
 | 
						|
$pgnEncodedLength = strlen($pgnEncoded);
 | 
						|
 | 
						|
$compressionRatio = round(100 * $pgnEncodedLength / $pgnLength) . "%";
 | 
						|
 | 
						|
$frameUrl = "board.html?am=l&d=1000&ss=26&ps=d&pf=d&lcs=YeiP&dcs=Qcij&bbcs=D91v&hm=n&hcs=Udiz&bd=s&cbcs=YeiP&ctcs=\$\$\$\$&hd=j&md=f&tm=13&fhcs=\$\$\$\$&fhs=13&fmcs=\$\$\$\$&fccs=v71\$&hmcs=Qcij&fms=13&fcs=m&cd=i&bcs=____&fp=13&hl=t&fh=b&fw=p&pe=" . $pgnEncoded;
 | 
						|
 | 
						|
$frameUrlLength = strlen($frameUrl);
 | 
						|
 | 
						|
$thisScript = $_SERVER['SCRIPT_NAME'];
 | 
						|
 | 
						|
print <<<END
 | 
						|
<!DOCTYPE HTML>
 | 
						|
<html>
 | 
						|
 | 
						|
<head>
 | 
						|
 | 
						|
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
 | 
						|
 | 
						|
<title>pgn4web PGN encoder/decoder php example</title>
 | 
						|
 | 
						|
<link rel="shortcut icon" href="pawn.ico" />
 | 
						|
 | 
						|
</head>
 | 
						|
 | 
						|
<body style="font-family: sans-serif; margin:20px; padding:0px;">
 | 
						|
 | 
						|
<h1 style="margin-top:0px; padding-top:0px;">pgn4web PGN encoder/decoder php example</h1>
 | 
						|
 | 
						|
<center>
 | 
						|
 | 
						|
<iframe src="$frameUrl"
 | 
						|
 height="312" width="900" frameborder="0" scrolling="no" marginheight="0" marginwidth="0">
 | 
						|
your web browser and/or your host do not support iframes as required to display the chessboard
 | 
						|
</iframe>
 | 
						|
 | 
						|
<form action="$thisScript" method="POST">
 | 
						|
<input type="submit" style="width:900px;" value="pgn4web PGN encoder/decoder php example">
 | 
						|
<textarea id="pgnText" name="pgnText" style="height:300px; width:900px; margin:13px;">$pgnTextBox</textarea>
 | 
						|
</form>
 | 
						|
 | 
						|
<div style="width:900px; text-align:left; font-size:66%;">PGN:$pgnLength     encoded:$pgnEncodedLength     ratio:$compressionRatio     url:$frameUrlLength</div>
 | 
						|
 | 
						|
</center>
 | 
						|
 | 
						|
</body>
 | 
						|
 | 
						|
</html>
 | 
						|
 | 
						|
END;
 | 
						|
 | 
						|
?>
 |