2011-05-12 9 views
0

とハイパーリンク:「TEL:」に電話番号を変換する私は、次のデータベースから抽出されている必要があり、正規表現の置換

配電盤:265-7404-6、マーケティングホットライン:265から7403、B'ce :333-6848

私はPHPでこのような何かに変換したい:extensの場合に

Expected formatting of data

ザッツは何である265-7404

function printdir() 
{ 
    $mysqli = new mysqli(constant("host"),constant("username"),constant("password"), constant("database")); 

    $storedProc = "SELECT * FROM `directory`;"; 
    $result = $mysqli->query($storedProc); 

    if($mysqli->affected_rows>0) 
    { 
     while($row = $result->fetch_assoc()) { 
      echo $row['telephone']; /*Formatting here*/ 
     } 
    } 
} 

+1

データベースから情報を抽出するために使用するPHPコードを投稿できますか? – joshhendo

+0

function printdir() { $ mysqli =新しいmysqli(定数( "ホスト")、定数( "username")、定数( "パスワード")、定数( "データベース")); $ storedProc = "SELECT * FROM'ディレクトリ ';"; $結果= $ mysqli->クエリ($ storedProc); if($ mysqli-> affected_rows> 0) { while($ row = $ result-> fetch_assoc()){ echo $ row ['telephone'];/*ここでのフォーマット*/ \t} \t} } –

+0

これらの 'constant()'呼び出しは冗長です。あなたは単に '新しいmysqli(ホスト、ユーザー名、パスワード、....)と言うことができる' –

答えて

0
<?php 

function format_number($phone){ 
    $phone = preg_replace("#[^\d{10}\s]#",'',$phone); 
    if(strlen($phone)==7) 
     { 
     $area = substr($phone,0,3); 
    $prefix = substr($phone,3,4); 

    $format = $area."-".$prefix; 
    $phone = "<a href=\"tel:".$format."\">$format</a>"; 
    return($phone); 
     } 
    if(strlen($phone) != 10) return(False); 
    $area = substr($phone,0,3); 
    $prefix = substr($phone,3,3); 
    $number = substr($phone,6,4); 
    $format = $area."-".$prefix."-".$number; 
    $phone = "<a href=\"tel:".$format."\">$format</a>"; 
    return($phone); 
} 

function telephoneText($string) 
{ 
$format_one.= '\d{10}'; //5085551234 

$format_two_and_three .= '\d{3}(\.|\-)\d{3}\2\d{4}'; //508.555.1234 or 508-555-1234 

$format_four .= '\(\d{3}\)\-\d{3}\-\d{4}'; //(508)-555-1234 

$format_five .='\d{3}\-\d{4}'; //(508)555-1234 

$format_five_seven .='\d{7}'; 
$string = preg_replace("~({$format_one}|{$format_two_and_three}|{$format_four}|{$format_five}|{$format_five_seven})~e", 'format_number("$1")', $string); 

return $string; 
} 



?> 

:イオンとして:265-7404-6それだけ解析し私は達成しようとしていた。ありがとうございます..

1
$telnumber = explode('-', $row['telephone'], 3)); 

echo $telnumber[0].'-'.$telnumber[1]; 

を拡張し、何も第二の値が$ telnumberになります後、[2]

+0

申し訳ありません、あなたはそれが正規表現とタグ付けされていることに気づき、私はそれを無視しました。それでも、これはうまくいくはずです。 – gmadd

+0

これは動作しません。それは上記のイメージとして見つけて置き換えなければなりません。電話番号には説明とテキストがあります。例えばHuman Resources:343-3433。モバイルダイヤルを有効にしたい –

+0

私はそれを解決しましたが、私は8時間待たなければなりません。 –

関連する問題