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

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

ただいまの
回答率

90.47%

  • PHP

    20812questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    9271questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • WordPress

    7420questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • API

    1560questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 898

442ky119

score -91

題名の通り、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/20 16:57

    ご回答ありがとうございます。
    ご指摘の通り、ページ(HTML)の先頭行に記載されているドキュメントタイプは<!DOCTYPE html>です。
    また、Lhankor_Mhyさんの回答を参考に「やってみた」との事ですが、pi-chanさんが提示した修正後のphpコードを実際に書きました。
    質問ですが、<!DOCTYPE html>だと電話発信ができないのですか?
    また、最終的に出力されるHTMLが<td><a href="tel:03-xxxx-xxxx">03-xxxx-xxxx</a></td>のような形になりません。</td>の後ろに=$0という形になります。
    どうすれば、HTMLが<td><a href="tel:03-xxxx-xxxx">03-xxxx-xxxx</a></td>のような形になりますか?

    キャンセル

  • 2016/05/21 00:43 編集

    まず「<!DOCTYPE html>」はダメではなく「OK」です。
    そして、「</td>の後ろに=$0」となる理由はよく分かりませんが、この事自体は本件と無関係だと思います。(仮に表示が乱れるとしても、リンクの表示とは無関係)
    それと、新たに確認した内容によれば、下記のように「ハイフンなし」で記載しないとダメなようです。
    「<a href="tel:0120123456678">0120-1234-5678</a>」

    (参考)
    > http://uq-design.tokyo/smart-phone-call/

    キャンセル

  • 2016/05/21 09:50

    ご回答ありがとうございます。
    「ハイフンなし」で記載しないとダメなようです。と回答文に記載されていますが、僕が作成したphpコードの場合<td>%3$s</td>なので、ハイフンで表示することはできません。理由は、apiから電話番号を取得するためです。

    キャンセル

  • 2016/05/21 11:54

    APIから取得でも大丈夫ですよ。
    APIから受け取った文字列を加工すれば良いだけです。
    お試し出来る環境が無いのできとんと動くコードは書けませんが、雰囲気を回答欄に追記しておきます。

    キャンセル

  • 2016/05/22 11:17

    apiから受け取った文字列を加工する方法を教えて下さい。

    キャンセル

  • 2016/05/22 12:10

    回答欄の追記は、きちんとご確認頂いたのでしょうか??ご確認頂けないなら回答しても意味が出来ます無いですね~。str_replace関数で文字列から「-」を除外するだけなのですが・・・

    キャンセル

  • 2016/05/22 12:29

    すみません、ちゃんと読んでいなかったので。
    str_replace関数とは何ですか?

    キャンセル

  • 2016/05/22 17:27

    ご回答ありがとうございます。電話発信することができました。
    ただ、二つ質問があります。上記のphpコードを実装したら一つはurlの部分のセルが空欄になり、urlが最寄り駅の部分のセルに挿入されます。どうすれば、元通りになりますか?
    二つ目はurlが表示されません。クリックしても表示されません。どうすれば表示されますか?

    キャンセル

  • 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で質問しよう!

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

関連した質問

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

  • PHP

    20812questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    9271questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • WordPress

    7420questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • API

    1560questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。