1

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

所以我正在使用的是以下代码。如何更改此 php 页面代码以以视觉上令人愉悦的格式显示电话号码,例如从 55512312125512 到 (555)123-1212 分机:5512? 字段当前的样子

<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>

让这 3 个电话号码字段以 (555)123-4567 ext-任意位数的格式显示,并且仍以连续号码(如 555123456)的形式存储在数据库中?

任何帮助将不胜感激。

谢谢,

4

2 回答 2

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;
}

这应该工作

于 2012-12-21T08:25:30.350 回答
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)提供的

于 2012-12-28T23:24:00.010 回答