如何在视图中格式化dotProject电话号码字段

时间:2012-12-21 08:19:21

标签: php formatting phone-number dotproject

我目前正在为我们公司使用dotProject版本2.1.3,我想在视图公司视图中对电话号码格式提供一些帮助。目前,它允许您以任何格式放置和分组数字。所以我可以键入(619)555-1234 ext-123,它会以这种方式显示。我的问题是我不希望数字以这种方式存储在数据库中。我只希望数据库只将数字存储为一个整数。

所以我正在使用的是以下代码。如何更改此php页面代码,以一种视觉上令人愉悦的格式显示电话号码,如从55512312125512到此(555)123-1212分机:5512? what the fields currently look like

<tr>
        <td align="right" nowrap="nowrap"><?php echo $AppUI->_('
        '); ?>:</td>
        <td class="hilite"><?php echo @$obj->company_phone1; ?></td>
    </tr>
    <tr>
        <td align="right" nowrap="nowrap"><?php echo $AppUI->_('Phone'); ?>2:</td>
        <td class="hilite"><?php echo @$obj->company_phone2; ?></td>
    </tr>
    <tr>
        <td align="right" nowrap="nowrap"><?php echo $AppUI->_('Fax'); ?>:</td>
        <td class="hilite"><?php echo @$obj->company_fax; ?></td>
    </tr>

这三个电话号码字段以格式(555)123-4567分机显示 - 任意位数,仍然作为连续数字存储在数据库中,如555123456?

非常感谢任何帮助。

谢谢,

2 个答案:

答案 0 :(得分:0)

$data = $AppUI->_('Phone');

if(preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/', $data,  $matches )) {
    $result = '(' . $matches[1] . ')' .$matches[2] . '-' . $matches[3];
    echo $result;
}

这应该有效

答案 1 :(得分:0)

这适用于modules / companies / view.php页面上的dotProject版本2.1.3:

<tr> <td align="right" nowrap="nowrap"> <?php echo $AppUI->_('Phone'); ?>: </td> <td class="hilite"> <?php $data = @$obj->company_phone1; if(preg_match( '/^(\d{3})(\d{3})(\d{4})(\d*)$/', $data, $matches )) { if($matches[4] != '') $result = '(' . $matches[1] . ')' .$matches[2] . '-' . $matches[3] . ' ext.' . $matches[4]; else $result = '(' . $matches[1] . ')' .$matches[2] . '-' . $matches[3]; echo $result; } ?> </td> </tr> </code>

(alex-sorin-dachin)

非常感激地提供了这一点