Location: PHPKode > scripts > SafeMn > safemn/SafeMn.php
<?php
/**
 * Communicates with SafeMn service and allows to shorten the long URLs
 * 
 * @link http://safe.mn/
 * @license LGPL
 * @author Stanislav Shramko <hide@address.com>
 */
class SafeMn {

	/**
	 * SafeNm's API URL
	 */
	const API_URL = 'http://safe.mn/api/';
	
	/**
	 * Sends the request and retrieves the answer
	 * 
	 * @param string $action the kind of action
	 * @param string $url the URL to work on
	 * @throws Exception
	 * @return string
	 */
	protected static function getResponse($action, $url)
	{
		if (!$fh = fopen(self::API_URL . "?$action=" . htmlspecialchars($url), "r")) {
			throw new Exception("Unable to connect to Safe.mn");
		}
		$content = '';
		while (!feof($fh)) {
			$content .= fread($fh, 4096);
		}
		return trim($content);
	}

	/**
	 * Shortens the URL
	 * 
	 * @param string $url the URL to work on
	 * @throws Exception
	 * @return string
	 */
	public static function shortenUrl($url)
	{
		return self::getResponse('url', $url);
	}
	
	/**
	 * Tracks the URL
	 * 
	 * @param string $url the URL to work on
	 * @throws Exception
	 * @return string
	 */
	public static function trackUrl($url)
	{
		return self::getResponse('short_url', $url);
	}
	
}

?>
Return current item: SafeMn