كود PHP:
<?php
$form = array('url' => 'text|30|put your link');
define('HTTP_HOST', $_SERVER['HTTP_HOST']);
define('DOMEN', 'http://'.HTTP_HOST);
define('PHP_SELF', $_SERVER['PHP_SELF']);
$params = params();
function form( $fields )
{
$form = '';
$form .= '<form action='.PHP_SELF.' method="POST">';
if ( is_array( $fields ) )
{
foreach( $fields as $key => $value )
{
$value = explode('|', $value);
$form .= sprintf("%s <input type='%s' name='link[%s]' size='%s'>",
$value[2], $value[0], $key, $value[1]);
}
}
$form .= '<input type="submit" name="go" value="Go!">';
$form .= '</form>';
return $form;
}
function generate_folder()
{
$result = null;
$lowercase = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','q','r','s','t','u','v','x','y','z');
$uppercase = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Q','R','S','T','U','V','X','Y','Z');
for ( $i = 0; $i <= 2; $i++ )
{
$result .= $lowercase[rand( 0, count( $lowercase ) - 1 )] . $uppercase[rand( 0, count( $uppercase ) -1 )];
}
return $result;
}
function error_msg( $vailed, $params )
{
$errors = array('total_errors' => 1);
foreach( $vailed as $filed => $vaileds )
{
if (!preg_match( $vaileds, $params[$filed ] ) )
{
$errors['total_erros']++;
$errors[$filed] = true;
}
}
if ( $errors['total_erros'] > 0 )
{
return $errors;
}
else
{
return false;
}
}
function params()
{
$params = array();
if ( !empty( $_POST ) )
{
$params = array_merge( $params, $_POST );
}
if ( !empty( $_GET ) )
{
$params = array_merge( $params, $_GET );
}
return $params;
}
function check_url()
{
if ( !$params['url'] )
{
return false;
}
else
{
return true;
}
}
function create_file()
{
if ( check_url )
{
$folder = generate_folder();
if ( !check_field() )
{
write( $folder );
}
else
{
print 'error your link';
echo '<a href="index.php">Go To Back</a>';
exit();
}
echo 'copy your short link <input type="text" size="30" name="url[link]" value="'.DOMEN.'/'.$folder.'.html"><br />';
echo '<a href="index.php">Go To Back</a>';
}
else
{
header("location: test.php");
}
}
function write( $folder )
{
global $params;
$file = $folder.'.html';
$handle = fopen( $file, 'w' );
$http = ( substr( $params['url'], 0, 7 ) != 'http://' ? 'http://'.$params['link']['url'] : $params['link']['url'] );
fwrite( $handle, '<meta http-equiv="refresh" content="0;url='.$http.'" />' );
fclose( $handle );
}
function check_field()
{
$regex = "((https?|ftp)\:\/\/)?"; // SCHEME
$regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass
$regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"; // Host or IP
$regex .= "(\:[0-9]{2,5})?"; // Port
$regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path
$regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query
$regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor
global $params;
$links = array('url' => "/^$regex$/");
$urls = array('url' => $params['link']['url']);
return error_msg( $links, $urls );
}
if ( isset( $params['go'] ) )
{
//print_r( $params['link']);
create_file();
}
else
{
echo form( $form );
}
?>