PHPでパスの作成方法に関して教えて下さい

このQ&Aのポイント
  • PHPでファイルパスを生成する方法について教えてください。
  • 変数を使用してファイルパスを生成しようとしていますが、正しく生成されません。
  • 初心者のため、具体的な記述方法を教えていただけますか?
回答を見る
  • ベストアンサー

PHPでパスの作成方法に関して

教えて下さい。 あるファイルを開こうと考えていますが、ファイル名をその都度変更したい為、 変数に格納してあり、その変数を使ってパスを作成しようと考えています。 以下のような記述をしましたが、正しくパスを生成してくれません。 どのような記述をすれば良いでしょうか? 初歩的な質問で申し訳ありませんが、教えて下さい。 <?php print("<TABLE BORDER='0'>\n"); print("<TR>\n"); print("<td width='100' height='20'><font size='2'><A Href='//192.999.999.999/doc/'.'$tmp_no'.'.pdf' Target='_blank'>AAAAA</A></font></td>\n"); print("</TR>\n"); print("</TABLE>\n"); ?> ※ $tmp_noに値が格納されています。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

そもそもは二重引用符で括っているんですよね。途中で単引用符+文字列連結になっているのが不思議ですが・・・ print("<a href='//192.999.999.999/doc/$tmp_no.pdf' Target='_blank'>AAAAA</A>"); もしくは print("<a href='//192.999.999.999/doc/" . $tmp_no . ".pdf' Target='_blank'>AAAAA</A>");

asamix_000
質問者

お礼

agunuz様、ご回答ありがとうございます。 問題なくパスを設定する事ができました! ありがとうございました!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>'$tmp_no' この部分クォーテーションで囲わなくてよい

asamix_000
質問者

お礼

yambejp様、ご回答ありがとうございます。 ご指摘の通りクォーテーションを削除しましたが、どうしても 結合されず、//192.999.999.999/doc/ までで切れてしまっています。 $tmp_noには必ず値が入っている為、結合の仕方が問題でしょうか、、 教えて下さい。 よろしくお願いします。

関連するQ&A

  • 日付取得のJavascriptの動作不良に関して

    教えて下さい。 下記のソースの中にある日付をテキストへ表示するJavascriptがどうしても動き ません。 phpとの兼ね合いがあるのかもしれませんが、どこが悪いのか掴めず。。。 日付のJavascript は http://www.kanaya440.com/contents/js/calendar/index.html よりダウンロードしてきてあり、ソース内に記述してあります。 恥ずかしながら、どこに不具合があるのかをご指摘頂ければ幸いです。 よろしくお願いします。 《ソース》 <?php $hiduke = "'mm/dd'"; ?> <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> ********* ここにダウンロードしたカレンダーJavascript を貼る </SCRIPT> <TITLE>行動予定登録</TITLE> <META Http-Equiv="Content-Type" Content="text/html;charset=shift-jis"> </HEAD> <BODY> <CENTER> <FORM ACTION="zkoudou_update2.php" METHOD="POST"> <INPUT TYPE="hidden" NAME="item" VALUE="2"> <TABLE BORDER=1 WIDTH="70%" CELLPADDING="10" CELLSPACING="0"> <TR> <TD ALIGN="center"> <TABLE BORDER="0" WIDTH="100%"> <TD WIDTH="20%"> <FONT SIZE="2"> </FONT> </TD> <TD WIDTH="60%" ALIGN="center"> <B><U>行動予定登録</U></B> </TD> <TD WIDTH="20%" ALIGN="right"> <FONT SIZE="2">戻 る</A></FONT> </TD> </TABLE> <FONT COLOR="#FF0000"><B></B></FONT><BR> <?php print("<TABLE BORDER=0 CELLPADDING='5'>\n"); print("<TR>\n"); print("<TD NOWRAP WIDTH='20%'><FONT SIZE='2'><B>【名前】</B></FONT></TD>\n"); print("<TD WIDTH='60%'></TD>\n"); print("<TD WIDTH='20%'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP WIDTH='20%'><FONT SIZE='2'><B>【内線NO】</B></FONT></TD>\n"); print("<TD WIDTH='70%'></TD>\n"); print("<TD WIDTH='10%'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='3'><B>【行  先】</B></FONT></TD>\n"); print("<TD NOWRAP SIZE='30'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='3'><B>【戻り時間】</B></FONT></TD>\n"); print("<TD>\n"); *********** このJavascripit が動かない。。。。 print("<input type='text' name='p1' id='p1' size='30' maxlength='10'> <input name='Calendar' type='button' value='日付セット' onClick='wrtCalendar(event,this.form.p1,$hiduke)'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD>\n"); print("</TD>\n"); print("<TD><FONT SIZE='2'> ※ 戻り時間はダブルクリック\n"); print("</FONT></TD>\n"); print("</TR>\n"); print("</TABLE>\n"); print("<INPUT TYPE='submit' NAME='exec' VALUE='登録する'>\n"); print("<INPUT TYPE='hidden' NAME='no' VALUE='$out_no'>\n"); print("<INPUT TYPE='hidden' NAME='busyo' VALUE='$out_busyo'>\n"); ?> </TD> </TR> </FORM> </TABLE> <FONT SIZE=2><I> Copyright (C) 2001-2004 All right reserved by CGI KON </I></FONT> </CENTER> </BODY> </HTML>

  • セレクト表示方法について

    DBのトップ画面で選択画面の表示項目を1つだけ表示表示して矢印で開けるようにしたいのですが書き換え方がわかりません。 一応、表示部分の↓に書いて見ました sub html { # 表示開始 &header; print <<"EOM"; <table bgcolor="#B5B5B5" cellpadding=4 cellspacing=0 border=0 width="45"> <tr><td align="center"> <A HREF="$homepage" STYLE="text-decoration:none;color:black">戻る</A> </td></tr> </table> <center> <hr width="400" noshade> <font color="$t_color" size="$t_size" face="$t_face"><b>$title</b></font> <hr width="400" noshade> <P> <table><tr><td> $TopMessage </td></tr></table> <form method="POST" action="$script"> <input type=hidden name=mode value="search"> <table border=0 cellpadding=15><tr> EOM # 配列1 $size1 = @part1 + 1; print "<td valign=top><font color=\"$t_color\">■</font> <B>テス</B><br>\n"; print"<select name=P1 size=\"$size1\">\n"; print "<option value=\"99\" selected>指定なし\n"; foreach (0 .. $#part1) { print"<option value=\"$_\">$part1[$_]\n"; } print "</select></td>\n"; print "</tr></table>\n"; print "<font color=\"$t_color\">■</font> <b>キーワード</b> (任意)<br>\n";

    • 締切済み
    • CGI
  • PHPのスタイルシート割り当て

    現在、MySQL+PHPでアドレス帳を作成中です。 該当するデータを検索で拾い出し、while文を使ってtableで配置しています。 検索結果が複数ある時に、見やすくする為に交互に色有り、色無しとスタイルシートを割り当てたいのですがどうすればよろしいでしょうか? ここ(OKWave)の質問一覧(http://okwave.jp/c256.html)で 交互にグレー、白で表示されてます。 こんな感じにしたいのです。 現状: $res = mysql_query($sql, $con); print("<table border=\"0\">"); print("<tr><td>No</td><td>社員No</td><td>ジョブNo</td><td>所属</td><td>氏名</td><td>ふりがな</td><td>写真</td><td>表示</td></tr>"); while($row = mysql_fetch_array($res)) { print("<tr>"); print("<td>".$row["no"]."</td>"); print("<td>".$row["idno"]."</td>"); print("<td>".$row["jobno"]."</td>"); print("<td>".$row["shitenno"]."</td>"); print("<td>".$row["name"]."</td>"); print("<td>".$row["furigana"]."</td>"); print("<td>".$row["photofilename"]."</td>"); print("<td><a href= \"profile.php?no=".$row["no"]."\" target=\"_blank\">表示</a></td>"); print("</tr>"); } print("</table>"); よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php クラス

    phpエクラスの勉強をしているのですが、参考書に書いているメンバ変数に値を代入している意味がよくわからないので教えてください。メンバ変数の値を書かなくtも動作できるのになぜ必要なのでしょうか? 参考書 <html> <head> <title>サンプル</title> </head> <body> <?php $pr = new Person; $pr->name = "鈴木"; $pr->age = 56; ?> <table border="2"> <tr bgcolor="#AAAAAA"> <th>名前</th> <th>年齢</th> </tr> <?php print "<tr><td>"; print $pr->getname(); print "</td><td>"; print $pr->getage(); print "</td></tr>"; ?> </table> <?php class Person { public $name ="姓名"; public $age = 20; function getname(){return $this->name;} function getage(){return $this->age;} } ?> </body> </html> テスト <?php class Person { public $name ;←ここに値を格納する意味 public $age ;←ここに値を格納する意味 function getname(){return $this->name;} function getage(){return $this->age;} } ?>

    • ベストアンサー
    • PHP
  • php sql文

    DB内のデーターをphpで表示させています。 どうしてよいかわからず困っています。 DB内のデーターは id | page_id | cat_id | parent_id | name 1 | 1 | 1 | 0 | AAAAA 2 | 1 | 2 | 1 | BBBBB 3 | 1 | 3 | 2 | CCCCC 4 | 2 | 4 | 0 | DDDDD 5 | 2 | 5 | 4 | EEEEE 6 | 3 | 6 | 1 | FFFFF 7 | 3 | 7 | 6 | GGGGG 8 | 4 | 8 | 3 | HHHHH 9 | 5 | 9 | 2 | IIIII 10 | 5 | 10 | 9 | JJJJJ join等を使用してデーターの一覧表示はできているのですが、 <table> <tr> <th>名前</th> <th>ページID</th> </tr> <tr> <td>AAAAA</td> <td>1</td> </tr> <tr> <td>AAAAA</td> <td>2</td> </tr> <tr> <td>AAAAA</td> <td>3</td> </tr> <tr> <td>AAAAA</td> <td>4</td> </tr> <tr> <td>AAAAA</td> <td>3</td> </tr> </table> と表示されます。 ここで上記の ページIDが1のやつは名前をCCCCC ページIDが2のやつは名前をEEEEE ページIDが3のやつは名前をGGGGG ページIDが4のやつは名前をHHHHH ページIDが5のやつは名前をJJJJJ と表示させたいです。 sql文等はjoinだらけで長くなるため省略させていただきます。 省略部分もありますが、お分かりの方がいらっしゃいましたらsql文などをおしえていただけると助かります。

    • 締切済み
    • PHP
  • 文字化けを直す方法

    ホームページ作成中です。 あるCGIで出来たリストの一部だけをSSIで表示させようとしています。 イメージとしては買い物籠CGIの登録されている商品名だけを一覧表示みたいなものです。 リストのdatファイルは「EUC」で保存されています。 下の表示させるCGIと表示先のhtmlは「S-JIS」で保存しています。 リスト表示は他のCGIからコピーして少々変更しただけの物です。 ------------------------ #!/usr/bin/perl require './jcode.pl'; #jcode::convert(\$str, 'euc', $code); print "<center>\n"; print "<TABLE>\n"; print "<TR><TD>語録一覧</TD>\n"; print "</TR>\n"; print "<TR><TD>\n"; open (FILE2,"./data/word.dat"); @file = <FILE2>; close FILE2; $no = -1; foreach (@file) { $no++; # local($file,$number,$word,$yomi)= split /\t/,$data[$i]; local($file,$number,$word,$yomi)= split /\t/; print "$word<BR>\n"; } print "</td></TR>\n"; print "</table>\n"; print "</CENTER>\n"; exit; ------------------------------- こうすると、リスト($word)が文字化けします。(英数は化けずに表示。って当たり前ですね) どうにかしてEUCのリストのみ表示するときS-JISに変換する方法などないでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIのカスタマイズについて

    ネットレスキューさんの簡易データベースについて search.cgiの表示部分でテーブルを一つずつ生成させようと思ったのですがエラーが出ます。 どこが悪いのでしょうか? ----------ここから------- foreach $data (@NEW) { ($d,$DATE,$PREF,$NAME,$EMAIL,$HURL,$AGE,$HANDLE,$REM) = split(/\,/,$data); print "<table width="450" border="0" cellspacing="0" cellpadding="0" class="p12_16">\n"; print "<tr>\n"; print "<td colspan="2" bgcolor="#CC0033" height="14"><font color="#FFFFFF">● $NAME</font></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width="70">地域</td>\n"; print "<td width="380">$PREF</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td height="14">Eメール</td>\n"; print "<td><a href=\"mailto:$EMAIL\">$EMAIL</a></td>\n"; print "</tr>\n"; ---中略---- print "<td height="14">内容</td>\n"; print "<td>$REM</td>\n"; print "</tr>\n"; print "</table>\n"; if ($next_num ne '') { while (($key,$val) = each %FORM2) { if ($key ne 'FF') { $buf = "$buf&$key=$val"; } } print "<h3>↓<a href=\"search.cgi?$buf&FF=$next_num\">次の$page件</a></h3>\n"; } } print "</body></html>\n\n"; exit; --------------ここまで----- splitの扱い方が良く分っていません。 御存知の方御指導下さいませ。

    • ベストアンサー
    • CGI
  • PHPの読解お願いいたします

    PHP初心者です。 環境 XAMPP1.7.0(最新) アパッチなど一括ダウンロード OS:ビスタ 多次元配列について以下のコードについて疑問があります。 ●の部分が疑問点となっております ~~~~~~~~~~~~~~~~~~~~~~~~~~~ <body> <table border="2"> <tr> <th>都市名</th><th>最高気温</th><th>最低気温</th> </tr> <?php $data=array( array("東京",32,25), array("名古屋",28,21), array("大阪",27,20), array("京都",26,19), array("福岡",27,22), ) foreach($data as $city){ print "<tr>"; ● foreach($city as $value) print "<td>{$value}</td>"; ●● } print "</tr>"; ?> </table> </body> </html> ~~~~~~~~~~~~~~~~~~~~~~~~~~ ●・・ここで<tr>を持ってくる必然性がわかりません。 例えば print "<td>{$value}</td>"のコードの<td>の横に付けることでも可能ではないのしょうか? ●●・・foreachがネストになり、多次元配列となっています。 まず$dataを取得しそれぞれを$cityに格納、次のforeachで$cityに格納された1行目のarray("東京",32,25)を一つづつ$valueに格納していくのだとは思いますが、例えばこのforeachネストの一連の流れを以下のように1つのforeachで記載することがなぜエラーになるのか分かりません。 foreac($data as $city){ print "<tr><td>{$city}</td></tr>" } $cityの中にはarray("東京",32,25) array("名古屋",28,21), array("大阪",27,20),array("京都",26,19),array("福岡",27,22), が格納されているので、別にこれをネストして{$value}に格納しなくてもそのまま変数$cityのみで表を作成できるのではないかと思っています。 まあでもエラーが出ますので、私の考えに大きな誤りがあるわけですが、誤っている部分をご指摘ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpについて質問です。

    php初心者です。 以下のようなコードを書きました。テストの点数を配列に用意し最大値を表示したいのですがうまくいきません。 どなたかご教授お願いします。 <html> <body> <?php $score = array(20, 21, 59, 100, 78); $max = 0; ?> <table border = "2"> <tr bgcolor = aqua> <th>番号</th> <th>点数</th> </tr> <?php for($i=0; $i<count($score); $i++){ if($max < $socre[$i]) $max = $score[$i]; print"<tr>"; print"<td>{$i}</td><td>{$score[$i]}</td>\n"; print"</tr>\n"; } print"</table>\n"; print"</br>\n"; ?> <?php print"最高点は{$max}です。\n"; ?> </body> </html> foreachをつかえばうまくいきました。 for文ではいけないのでしょうか。 最大値が0と表示されるのでどうやらif文の条件分岐がうまくいってないようなのですが..... 初心者なので勘違いをしているところがあると思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • カレンダ-の表示

    下記はカレンダ-を表示するプロガラムです、 画面の一番上から表示したいのですが何行か下に表示されます、 一番上から表示するのは、どうしたら良いですか、 よろしくお願いします。 #!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>カレンダ-</TITLE>\n"; print "</HEAD>\n"; ########################################## @youbi = ('日', '月', '火', '水', '木', '金', '土'); print "<BODY BGCOLOR=\"WHITE\">\n"; print "<CENTER>\n"; print "<TABLE BORDER=\"0\" cellpadding=\"1\" cellspacing=\"2\"><TBODY><TR VALIGN=\"top\" BGCOLOR=\"BLUE\"><TD>\n"; $tuki = 0; for ($k = 1; $k <= 12; $k++) { print "<TABLE BORDER=\"0\" BGCOLOR=\"BLUE\" cellpadding=\"2\" cellspacing=\"1\" width=25%><TBODY>\n"; print "<TR ALIGN=\"middle\"><TD colspan=\"7\"><FONT SIZE=\"2\" COLOR=\"WHITE\">$year年 $ntuki月</FONT></TD></TR>\n"; print "<TR>\n"; for ($i = 0; $i < 7; $i++) { print "<TH BGCOLOR=\"SKYBLUE\"><FONT SIZE=\"2\" COLOR=\"BLACK\">$youbi[$i]</FONT></TH>\n"; } if (($k == 4) || ($k == 8)){ print "</TBODY></TABLE></TD></TR><BR CLEAR=\"all\"><BR><TR VALIGN=\"top\" BGCOLOR=\"BLUE\"><TD>\n";} elsif ($k == 12) { print "</TBODY></TABLE></TD></TR></TBODY></TABLE><BR CLEAR=\"all\"><BR>\n";} else { print "</TBODY></TABLE></TD><TD>\n";} $kuuhaku = 0; $hiduke = 0; } print "</CENTER>\n"; print "</BODY>\n"; print "</HTML>\n";

    • ベストアンサー
    • CGI

専門家に質問してみよう