summaryrefslogtreecommitdiff
path: root/system/helpers/format.php
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-05-27 15:11:53 -0700
committerBharat Mediratta <bharat@menalto.com>2009-05-27 15:11:53 -0700
commit12fe58d997d2066dc362fd393a18b4e5da190513 (patch)
tree3ad8e5afb77829e1541ec96d86785760d65c04ac /system/helpers/format.php
parent00f47d4ddddcd1902db817018dd79ac01bcc8e82 (diff)
Rename 'kohana' to 'system' to conform to the Kohana filesystem layout. I'm comfortable with us not clearly drawing the distinction about the fact that it's Kohana.
Diffstat (limited to 'system/helpers/format.php')
-rw-r--r--system/helpers/format.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/system/helpers/format.php b/system/helpers/format.php
new file mode 100644
index 00000000..fb8a0294
--- /dev/null
+++ b/system/helpers/format.php
@@ -0,0 +1,66 @@
+<?php defined('SYSPATH') OR die('No direct access allowed.');
+/**
+ * Format helper class.
+ *
+ * $Id: format.php 4070 2009-03-11 20:37:38Z Geert $
+ *
+ * @package Core
+ * @author Kohana Team
+ * @copyright (c) 2007-2008 Kohana Team
+ * @license http://kohanaphp.com/license.html
+ */
+class format_Core {
+
+ /**
+ * Formats a phone number according to the specified format.
+ *
+ * @param string phone number
+ * @param string format string
+ * @return string
+ */
+ public static function phone($number, $format = '3-3-4')
+ {
+ // Get rid of all non-digit characters in number string
+ $number_clean = preg_replace('/\D+/', '', (string) $number);
+
+ // Array of digits we need for a valid format
+ $format_parts = preg_split('/[^1-9][^0-9]*/', $format, -1, PREG_SPLIT_NO_EMPTY);
+
+ // Number must match digit count of a valid format
+ if (strlen($number_clean) !== array_sum($format_parts))
+ return $number;
+
+ // Build regex
+ $regex = '(\d{'.implode('})(\d{', $format_parts).'})';
+
+ // Build replace string
+ for ($i = 1, $c = count($format_parts); $i <= $c; $i++)
+ {
+ $format = preg_replace('/(?<!\$)[1-9][0-9]*/', '\$'.$i, $format, 1);
+ }
+
+ // Hocus pocus!
+ return preg_replace('/^'.$regex.'$/', $format, $number_clean);
+ }
+
+ /**
+ * Formats a URL to contain a protocol at the beginning.
+ *
+ * @param string possibly incomplete URL
+ * @return string
+ */
+ public static function url($str = '')
+ {
+ // Clear protocol-only strings like "http://"
+ if ($str === '' OR substr($str, -3) === '://')
+ return '';
+
+ // If no protocol given, prepend "http://" by default
+ if (strpos($str, '://') === FALSE)
+ return 'http://'.$str;
+
+ // Return the original URL
+ return $str;
+ }
+
+} // End format \ No newline at end of file