2017-06-26 24 views
1

我对PHP还是一个新手,我有点困扰时间弄清楚如何格式化从数据库中取出的电话号码。从数据库格式化电话号码

我生成一个表,下面的代码:

<?php 
include ('database.php'); 
$result = mysql_query("SELECT * FROM members") or die(mysql_error()); 

echo "<div class='container'>"; 
include ("header.php"); 
echo "<h4>Members</h4><div class='pull-right'><a class='btn btn-primary btn-sm' href='new.php'>New Member</a></div>"; 
echo "<hr>"; 
echo "<table class='table table-striped'>"; 
echo "<tr><th>ID</th> <th>First Name</th> <th>Last Name</th> <th>Birthday</th><th>Phone Number</th><th></th> <th></th></tr>"; 
while ($row = mysql_fetch_array($result)) { 
    echo "<tr>"; 
    echo '<td>' . $row['id'] . '</td>'; 
    echo '<td>' . $row['first_name'] . '</td>'; 
    echo '<td>' . $row['last_name'] . '</td>'; 
    echo '<td>' . $row['birthday'] . '</td>'; 
    echo '<td>' . $row['phone_number'] . '</td>'; 
    echo '<td><a href="edit.php?id=' . $row['id'] . '"><span class="fui-new"></span></a></td>'; 
    echo '<td><a href="delete.php?id=' . $row['id'] . '"><span class="fui-trash"></span></a></td>'; 
    echo "</tr>"; 
} 
echo "</table>"; 
echo "</div>"; 
?> 

,我想他们在常规美国时尚格式:(XXX)XXX - XXX。

我很感谢你的帮助。

+0

http://php.net/substr可能想显示它是如何存储在数据库中... – Devon

+1

**停止**使用不推荐的mysql_ API。使用mysqli_ * it PDO – Jens

+0

**警告**:如果您只是学习PHP,请不要学习过时的['mysql_query'](http://php.net/manual/en/function.mysql-query .php)界面。这很糟糕,并且已经在PHP 7中被删除了。像[PDO不是很难学的东西](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-php-pdo- for-database-access /)以及[PHP The Right Way](http://www.phptherightway.com/)等指南有助于解释最佳实践。确保**你的用户参数[妥善转义](http://bobby-tables.com/php),否则你将以严重的[SQL注入漏洞](http://bobby-tables.com/ )。 – tadman

回答

1

这是我写的格式10位数电话号码的功能,如美国加拿大和其他一些国家使用。

function FormatPhoneNum($ph) { 
$ph = str_replace(array('(',')','-','.', ' '), '', $ph); 
if (strlen($ph) ==10){ $ph = '('. $ph['0']. $ph['1']. $ph['2'].')  '.$ph['3'].$ph['4'].$ph['5'].'-'.$ph['6'].$ph['7'].$ph['8'].$ph['9'];} 
return $ph; 
} 

地方添加该功能在您的脚本,然后使用这样的功能...

echo '<td>' . FormatPhoneNum($row['phone_number']) . '</td>'; 
+1

这里有一些关于电话号码的非常疯狂的假设。 '+44 303 123 7300'是一个有效的号码吗? – tadman

+0

我使用美国和加拿大电话号码的功能。我已经更新了我的答案以包含该信息 –