質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.37%

電話発信ができるタグが知りたい。

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,322

442ky119

score -85

題名の通り、phpで電話発信ができるタグが知りたいです。
urlを表示させたい場合は<a>タグを使うことは知っていますが、電話発信をする場合はどんなタグを使えばいいですか?
<a href="tel:03->みたいなのを使えば電話発信ができると聞きましたが、僕のphpコードの場合、発信したい電話番号が作成時には表示されておらずwordpressに表示するときにしか表示されないため、<a href="tel:03->の方法は僕のphpコードには向いていないのではないでしょうか?電話番号の部分は%3$sで表示されています。Yahoo!のapiを利用しているので、電話番号はもともと書いていません。
※phpコードとhtmlコードを下記に掲載します。

<td>03-xxxx-yyyy</td> = $0
$html     = '<tr><td>%1$s</td><td>%2$s</td><td>%3$s</td><td>%4$s</td><td>%5$s</td><td>%6$s</td><td><a>%7$s"target="_blank"</a></td></tr>';
     $i        = 1;

foreach ( $xml->Feature as $key => $item ) {

    printf( $html, $item->Name, $item->Property->Yomi, $item->Property->Tel1, $item->Property->Address, $item->Property->Station->Railway, $item->Property->Station->Name . '駅', $item->Property->Detail->PcUrl1 );
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2016/05/18 20:04

    以前にも同様の質問されていましたが解決済みにもなっておらず、新たに質問されているようですが一度
    https://teratail.com/help/question-tips
    https://teratail.com/tour
    などを読まれてから質問されることをオススメします。

    キャンセル

  • 退会済みユーザー

    2016/06/13 13:41

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

+2

いくつか確認させてください。

まず、Lhankor_Mhyさんの回答を参考に「やってみた」との事ですが、実際に試したのは以下の事ですか?

【修正前】

$html     = '<tr><td>%1$s</td><td>%2$s</td><td>%3$s</td><td>%4$s</td><td>%5$s</td><td>%6$s</td><td><a>%7$s"target="_blank"</a></td></tr>';

【修正後】

$html     = '<tr><td>%1$s</td><td>%2$s</td><td><a href="tel:%3$s">%3$s</a></td><td>%4$s</td><td>%5$s</td><td>%6$s</td><td><a>%7$s"target="_blank"</a></td></tr>';

つまり、今の場合はPHP側を修正して、最終的に出力されるHTMLが

<td><a href="tel:03-xxxx-xxxx">03-xxxx-xxxx</a></td>


のようになっているということなのですが。

次に、この「電話発信可能なリンク」というのはHTML5の仕様なのですが、gfbfhさんのPHPコードが生成するHTMLのバージョンは何になっていますか?

つまり生成されたページ(HTML)の先頭行に記載されているドキュメントタイプは

<!DOCTYPE html>

となっていますか?

(ご参考) <!DOCTYPE> - ドキュメントタイプ    

最後に、結果の確認に使用しているスマホの機種は何ですか?
これはスマートフォン用の機能なので、PC版のブラウザ上で確認しても確認できません。

ですから、スマートフォンの実機上で確認するか、開発用のシミュレーターを使う必要があると思います。

イロイロなシミュレーターが公開されていますので、例えば下記ページなどを参考に、適当な物をダウンロードして試してみてください。
本当に使える! スマホ 【シュミレーター】 【エミュレーター】はこれだ - NAVER まとめ


(コメントに対する追記)

$html     = '<tr><td>%1$s</td><td>%2$s</td><td><a href="tel:%3$s">%4$s</a></td><td>%5$s</td><td>%6$s</td><td>%7$s</td><td><a>%8$s"target="_blank"</a></td></tr>';

foreach ( $xml->Feature as $key => $item ) {

    printf( $html, $item->Name, $item->Property->Yomi, str_replace("-", "", $item->Property->Tel1), $item->Property->Tel1, $item->Property->Address, $item->Property->Station->Railway, $item->Property->Station->Name . '駅', $item->Property->Detail->PcUrl1 );

要するに、以前に記載した例だと
<a href="tel:%3$s">%3$s</a>
のようにタグの部分と画面表示の部分にAPIから取得した文字列をそのまま渡していましたが、
<a href="tel:%3$s">%4$s</a>
のように別々にして、%3 の方には「03xxxxxxxx」、%4 の方には「03-xxxx-xxxx」を渡すようにします。
そして、%3 の方に渡す分は、APIから取得した文字列から str_replace関数 を使って「-」を削除してやれば良いだけです。

上記の「例」は、コーディング方法として必ずしも良いお手本ではないですから、必ずご自身でしっかり理解した上でコーディングを行ってください。
PHPでプログラミングする上で文字列の加工は基本中の基本ですから、PHP マニュアル を再確認して、どんな事が出来るのかを把握してからプログラミングすることを強くオススメします。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/22 20:58

    横から失礼します。
    電話発信については解決したのであれば質問を解決済みにした方が良いです。
    追加の質問は「別の質問」として投稿して、この質問はクローズするべきです。

    キャンセル

  • 2016/05/22 23:38

    まだ問題は解決していません。

    キャンセル

  • 2016/05/23 01:30

    「str_replace関数とは何ですか?」とのご質問ですが、回答をきちんと読んで頂いていますか?str_replace関数について詳細が分かるよう、わざわざリファレンスに対する「リンク」にしてありますから、そこをクリックするだけで詳細を確認出来るはずなのですが…
    そもそも、PHPでプログラミングするに当たり、基本的な関数の仕様について、自力で調べられないようでは先が思いやられます。
    それと「上記のphpコードを実装したら」とありますが、意味も考えずにただコピペして済ませようとされていませんか!?
    そのような取り組み方では、結局はいつまでも自力でプログラミングできるようにはならないですよ。
    (回答欄は修正しておきましたが)原因はおそらく、こちらのタイプミスで「str_replace」と「(」の間に空白が混入していたために、printf関数の引数と $html に定義されている引数の番号付けがずれてしまったためだと思います。
    余計な空白を削除した上で、引数の番号付けを再点検して見てください。

    キャンセル

0

不明な点が多いのでなんとも言い難いですが、

<a href="tel:%3$s">%3$s</a>


って書けばいいんじゃないですかね。たぶん。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/18 20:15

    やってみましたが、できませんでした。

    キャンセル

  • 2016/05/18 20:29

    どんな風にやってみて、どんな風にできなかったを書いていただければ、なにかアドバイスができるかもしれませんね。

    キャンセル

  • 2016/05/19 00:08

    <a href="tel:%3$s">%3$s</a>と入力しましたが、電話発信ができるタグが出てきませんでした。

    キャンセル

  • 2016/05/19 23:54

    htmlソースコードを本文に掲載しました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る