- 1 名前:nobodyさん mailto:sage [2007/12/19(水) 03:33:51 ID:???]
- まず読め→【PHP マニュアル】www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。 過去スレ、関連スレ、FAQなどは>>2-10辺り ◆前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 60 pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 ◆質問後の注意 ・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない) ・2回目以降は最初に質問した際のレス番号を名前欄に入れること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ ・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
- 101 名前:nobodyさん mailto:sage [2007/12/21(金) 15:53:53 ID:???]
- ""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。 初心者質問スマソ。
- 102 名前:nobodyさん mailto:sage [2007/12/21(金) 16:01:46 ID:???]
- > ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) > ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 > ・ 己の行った操作、変更などを詳しく明記すること。 > ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 > ・ 質問者として、態度をわきまえること。 > ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
- 103 名前:nobodyさん mailto:sage [2007/12/21(金) 16:03:59 ID:???]
- >>101
www.php.net/manual/ja/language.types.string.php
- 104 名前:101 mailto:sage [2007/12/21(金) 16:04:34 ID:???]
- 自己解決しました
<a href="index.html">2ちゃんねる</a>だったら ↓ echo "<a href=\"index.html\">2ちゃんねる</a>";とするか echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。 君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ
- 105 名前:nobodyさん [2007/12/21(金) 16:11:34 ID:Bll92Vnt]
- Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は エラー時にロールバックするためにそれぞれの関数の頭に $db = $this->backend->getDB(); $db->db->autocommit(false); $db->begin(); これを書く必要がありますか? それとも $db = $this->backend->getDB(); だけでOKですか?
- 106 名前:nobodyさん mailto:sage [2007/12/21(金) 16:13:00 ID:???]
- 最近>>1読まないやつ多いな
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
- 107 名前:nobodyさん mailto:sage [2007/12/21(金) 16:23:19 ID:???]
- $db = $this->backend->getDB();
$db->begin(); のみでOK
- 108 名前:101 mailto:sage [2007/12/21(金) 16:40:25 ID:???]
- >>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。 >>104さん、他人を騙ってる割にはいい人ですね感謝。
- 109 名前:90 [2007/12/21(金) 16:57:32 ID:mXpbsFrG]
- あれま、レスが無いと思いきや、同じくsageてました。失敬。
あらかじめロックファイルの方で排他ロックを制御できれば 処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で data.datに対しての同時書き込みは防げますでしょうか?
- 110 名前:nobodyさん [2007/12/21(金) 17:00:05 ID:mCAqxYSI]
- 音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。 一覧ページで再生する曲をチェックし、フォームで取得しています。 form actionで指定したページに <OBJECT ID='Player' width='300' height='48' CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'> <PARAM name='autoStart' value='true'> <PARAM name='URL' value='file_name.asx'> <embed src='file_name.asx' autostart='true' width=300 height=48></embed> </OBJECT> を記述しています。 PHP5.2.4 APACHE2 よろしくお願いいたします。
- 111 名前:nobodyさん [2007/12/21(金) 17:00:17 ID:bUxsI4En]
- ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません session_start(); /* ログイン情報問い合わせ-----------------------------------------*/ require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み $DB = NewADOConnection(_DB_TYPE);//接続の設定 $DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME); if(!$DB){//接続エラー時 header("Location: /system/index.html?ec=1");?//エラーページへ exit; } php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません //if文の中のheader;とexit;をコメントアウトすれば、省略されてる <html>タグ以下のページデザイン部分が表示されます headerはすべての出力よりも先に書くというルールは知ってるんですが 何も出力してないはずでわけがわかりません 低レベルですみません、教えてください
- 112 名前:nobodyさん [2007/12/21(金) 17:01:30 ID:bUxsI4En]
- すみません、間違えました
×入力されたID・パスが違うとき ○接続エラーのとき
- 113 名前:nobodyさん mailto:sage [2007/12/21(金) 17:01:36 ID:???]
- >>106
テンプレのスレなんてねーぞコラ
- 114 名前:nobodyさん mailto:sage [2007/12/21(金) 17:02:43 ID:???]
- 自分で立てろカス
- 115 名前:nobodyさん mailto:sage [2007/12/21(金) 17:15:35 ID:???]
- >>113
あるだろボケ pc11.2ch.net/test/read.cgi/php/1186096518/
- 116 名前:105 [2007/12/21(金) 17:35:04 ID:Bll92Vnt]
- >>107
ありがとうございます。助かりました。 >>106 すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。
- 117 名前:nobodyさん mailto:sage [2007/12/21(金) 18:01:23 ID:???]
- >>110
音楽ファイルを読み込む前か後ろにカウント処理
- 118 名前:nobodyさん mailto:sage [2007/12/21(金) 18:02:09 ID:???]
- >>111
headerの使い方をもう一度確認
- 119 名前:110 [2007/12/21(金) 18:42:10 ID:mCAqxYSI]
- >>117
やってみたのですが、やっぱりページカウンターになってしまいました。 if(isset($_POST['maker'])) { $db = new mysqli("*","*","*","*"); $stt = $db->prepare("select * from music_lank where url=?"); $stt->bind_param("s",$_POST['maker']); $stt->execute(); if($stt->fetch()!==TRUE) { $sql="insert into music_lank(url,count) values(?,1)"; } else { $sql="update music_lank set count=count+1 where url=?"; } $stt->close(); $stt2 = $db->prepare($sql); $stt2->bind_param("s",$_POST['maker']); $stt2->execute(); $db->close(); print(" <OBJECT ID='Player' width='300' height='48' CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'> <PARAM name='autoStart' value='true'> <PARAM name='URL' value='ASX/{$_POST['maker']}.asx'> <embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed> </OBJECT> <br> "); } 冒頭の「isset」が原因なのはわかるんですが 埋め込みのメディアプレーヤーの再生ボタンを 押した瞬間にPHPを発動できれば解決なんですが・・・。
- 120 名前:nobodyさん mailto:sage [2007/12/21(金) 19:39:49 ID:???]
- そりゃそんなところに仕込めばページカウンターになるw
- 121 名前:110 [2007/12/21(金) 19:49:36 ID:mCAqxYSI]
- どこに仕込めばよいのかがわからないです・・。
- 122 名前:nobodyさん mailto:sage [2007/12/21(金) 19:55:42 ID:???]
- >>119
>埋め込みのメディアプレーヤーの再生ボタンを >押した瞬間にPHPを発動できれば解決なんですが・・・。 むり。どうしてもやりたいならAjaxとかFlashつかえ
- 123 名前:nobodyさん mailto:sage [2007/12/21(金) 19:57:20 ID:???]
- 1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む
- 124 名前:110 [2007/12/21(金) 20:00:51 ID:mCAqxYSI]
- >>122
無理でしたか。それが分かっただけで一歩進めました。 ありがとうございました。 >>123 ありがとうございます。
- 125 名前:nobodyさん mailto:sage [2007/12/22(土) 00:11:25 ID:???]
- windows, xammp な環境で
ttp://localhost/rawurlencode(UTF8なファイル名).html のようにアクセスすると、ローカル上の UTF8なファイル名.html ではなく SJISなファイル名.html にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか? firefox, ie7 共になります。 これって windows じゃなくて linux サーバ上だと EUCなファイル名.html を見にいったりすることになるんですかね?厄介。
- 126 名前:nobodyさん mailto:sage [2007/12/22(土) 00:13:29 ID:???]
- >>1
◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
- 127 名前:nobodyさん [2007/12/22(土) 00:15:38 ID:YFLFW+ip]
- echo <<<EOF
〜〜 EOF ってのがよくあるけど、この〜〜の部分で関数を実行できないの? echo <<<EOF <td>$hoge->gethoge(1);</td> EOF って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。
- 128 名前:nobodyさん mailto:sage [2007/12/22(土) 00:26:48 ID:???]
- >>127
>>1 ◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
- 129 名前:nobodyさん [2007/12/22(土) 00:45:03 ID:VmEGw74T]
- 教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか? セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか? 私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。 現在アクセスが集中しています。 現在アクセスが集中しており表示しにくい状態となっております。 申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。
- 130 名前:nobodyさん mailto:sage [2007/12/22(土) 00:49:58 ID:???]
- >>129
httpのステータスコード見て判別すれ
- 131 名前:nobodyさん mailto:sage [2007/12/22(土) 01:39:24 ID:???]
- >>127
できるよ。ある関数を使うけどね
- 132 名前:nobodyさん mailto:sage [2007/12/22(土) 01:40:47 ID:???]
- >>129
考えられる方法 1.apacheの設定 セッション使うのはもったいないからapacheの設定だな
- 133 名前:133 [2007/12/22(土) 03:51:34 ID:PQDDH9MU]
- レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録 →サーバスペースやメールboxが作られる この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。 phpとDB系を組み合わせればできる?
- 134 名前:nobodyさん mailto:sage [2007/12/22(土) 04:03:34 ID:???]
- >>129
DB関連でエラー出たらそれ出してるんだと思ってた。。 セッションやApacheへの接続数より、DBがボトルネックになることが 多い気がするし、「現在アクセスが集中しています。」の表示が出るまで ちょっと時間かかるサイトが多いし。 ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う 通りApacheでやるのが一番いいかなあ。 Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理 入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する ようにうまく調整するのが一番よさそう。
- 135 名前:nobodyさん mailto:sage [2007/12/22(土) 04:21:23 ID:???]
- >>133
メールサーバとサーバOSもかな。Webサーバもね。 ・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。 本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して 返信する。 ・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら 登録拒否とかでもいいかもだけど。。 ・メールボックス作成はやったことないんでよくわからん。 コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。 ・Webサーバの知識はWebアプリ作る以上当たり前。 その機能を実装するだけなら通り一遍の知識でも動くと思うけど、 サーバスペース貸与サービスってレンタルサーバでできるのかな? できないなら自分でサーバたてて運用することになるんで結構大変。 特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。 知り合いがそういうサービス個人でやってたけど、自宅にサーバ 置いてたしなあ。
- 136 名前:127 mailto:sage [2007/12/22(土) 05:00:56 ID:???]
- 自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました
- 137 名前:nobodyさん mailto:sage [2007/12/22(土) 05:57:17 ID:???]
- >>133
分かりにくい質問だけどメールサーバ関係ないんだろ? セッションやmd5でユニークな値を持つチケットを発行すれば済む話
- 138 名前:133 mailto:sage [2007/12/22(土) 06:35:51 ID:???]
- >>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。 それでそんなプログラムできればいいかな、と。 PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw 135さんのレスをもとに勉強の方針立てて頑張りたいと思います。 ところでこんな時間にレス、て何者?w
- 139 名前:nobodyさん mailto:sage [2007/12/22(土) 09:36:10 ID:???]
- 今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、 最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。 踏み台になって周りに迷惑かけないようにね。
- 140 名前:133 mailto:sage [2007/12/22(土) 11:10:17 ID:???]
- >>139
余計なお世話です。
- 141 名前:nobodyさん [2007/12/22(土) 11:21:56 ID:JyLvDbSd]
- classが存在するか調べる方法はありませんか?
PEARでDB.phpが読み込まれているかチェックするために クラスチェック("DB")のようにしたいのです
- 142 名前:nobodyさん [2007/12/22(土) 11:24:26 ID:JyLvDbSd]
- class_existsで解決しました
- 143 名前:nobodyさん [2007/12/22(土) 13:21:02 ID:iV97cpSO]
- $str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て ありましたかね?
- 144 名前:nobodyさん mailto:sage [2007/12/22(土) 13:21:36 ID:???]
- >>143
eval
- 145 名前:nobodyさん [2007/12/22(土) 13:36:39 ID:iV97cpSO]
- >>144 ありがとう。
$str = "1+2"; echo $str. "\n"; eval("\$str2 = $str ;"); echo $str2. "\n"; 解決した。
- 146 名前:138 mailto:sage [2007/12/22(土) 13:46:19 ID:???]
- >>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。 ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに PHPならPHPだけって感じでやっていったほうがいいと思う。 メールサーバは半日放置すればすぐ踏み台にされるし、他のメール サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。
- 147 名前:nobodyさん [2007/12/22(土) 15:17:14 ID:JyLvDbSd]
- PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params); をしたときに、メールの件名・本文の文字コードを取得したいのですが、 本文はcontent-typeにありますけど、件名がありません。 どこで取得すればよいのでしょうか?
- 148 名前:nobodyさん [2007/12/22(土) 15:29:17 ID:XDbomIjm]
- 本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?
勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。 よろしくお願いします。
- 149 名前:nobodyさん mailto:sage [2007/12/22(土) 15:35:26 ID:???]
- >>148
pear zend framework あたりかな
- 150 名前:148 [2007/12/22(土) 15:40:37 ID:XDbomIjm]
- >>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが 洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方 教えてください。よろしくお願いします。
- 151 名前:nobodyさん mailto:sage [2007/12/22(土) 15:49:04 ID:???]
- シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな #昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、 #/* */使って問題箇所を切り分けようとしたら酷い目にあった
- 152 名前:nobodyさん mailto:sage [2007/12/22(土) 15:50:38 ID:???]
- >>150
「気がする」程度なら必要ない それよりまず日本語ドキュメントを完全マスターすべし
- 153 名前:nobodyさん mailto:sage [2007/12/22(土) 15:54:32 ID:???]
- >>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ 俺はめまいがして静かにエディタを閉じたけどw
- 154 名前:nobodyさん mailto:sage [2007/12/22(土) 15:54:49 ID:???]
- ユーザーが入力した式を
evalで実行してます。 (計算機のようなものです) でもこうすると、ユーザーがたとえばファイル読み書きなんかの 命令を入れたら実行されてしまいます。 なんかいい方法はありますか? ちなみに単純な計算機ではなく、関数など複雑な 式を入力することが出来きることが条件です。
- 155 名前:nobodyさん mailto:sage [2007/12/22(土) 15:55:21 ID:???]
- pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?
- 156 名前:nobodyさん mailto:sage [2007/12/22(土) 16:00:36 ID:???]
- pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、 物凄いバグありバージョンがあったな 設置だけして使ってはいなかったけど
- 157 名前:nobodyさん mailto:sage [2007/12/22(土) 16:13:35 ID:???]
- >>154
なんのためにそんなの作ってんの?
- 158 名前:nobodyさん mailto:sage [2007/12/22(土) 16:23:32 ID:???]
- >>154
自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。 簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。 正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。 jp2.php.net/tokenizer
- 159 名前:nobodyさん mailto:sage [2007/12/22(土) 17:20:10 ID:???]
- >>157
複雑な検索条件入力 ですが?
- 160 名前:nobodyさん mailto:sage [2007/12/22(土) 18:52:20 ID:???]
- >>154
>>1 ◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
- 161 名前:148 mailto:sage [2007/12/22(土) 19:01:21 ID:???]
- >>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。 >>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが 時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。 お二方、お礼が遅くなりすみませんでした。ありがとうございました。
- 162 名前:nobodyさん mailto:sage [2007/12/22(土) 20:40:17 ID:???]
- >>150
Advanced PHP Programming がいいよ(洋書)。
- 163 名前:nobodyさん mailto:sage [2007/12/22(土) 23:19:52 ID:???]
- >>162
すごい、きになる。 やっぱ洋書がいいのかなあ
- 164 名前:nobodyさん mailto:sage [2007/12/23(日) 01:20:47 ID:???]
- 別に変わらんと思うが
- 165 名前:nobodyさん mailto:sage [2007/12/23(日) 01:28:41 ID:???]
- そりゃまぁ、書いてある事は同じだろ。
というか違う事が書いてあったら困る。
- 166 名前:nobodyさん mailto:sage [2007/12/23(日) 02:11:39 ID:???]
- >>163
もう少しで新しいバージョンのが出るらしい。 今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。 もったいない。 この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style, K&R style のそれぞれの説明とかがある。 あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」 なんて章があって、SAPIで使ってる構造体から説明してる。 データベースマッピングの複数のデザインパターンの説明もあって、 The Active Record Pattern とかいろいろ書いてある。 もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、 キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。 なんて言うか、本格的。 なんで日本語訳されてないんだろう。
- 167 名前:nobodyさん [2007/12/23(日) 03:32:32 ID:KIQSv7/M]
- [a.php]
<? $hoge = 'a'; 〜インクルードここまで $hoge = 'b'; ?> [include.php] <? include 'a.php'; echo $hoge; ?> $hoge = a にしたい場合、ifで制御する方法はありませんか? include_break();みたいな
- 168 名前:167 [2007/12/23(日) 03:33:34 ID:KIQSv7/M]
- ifで制御 → if以外で制御
- 169 名前:nobodyさん mailto:sage [2007/12/23(日) 04:06:10 ID:???]
- ファイル分ければ?
- 170 名前:nobodyさん mailto:sage [2007/12/23(日) 04:16:30 ID:???]
- >>167
わざわざ難しく考えないで、今できる知識で組めよ。 コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ
- 171 名前:nobodyさん mailto:sage [2007/12/23(日) 04:57:03 ID:???]
- phpに関する初歩的な質問です。書いたコードは下に示します。
htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。 process('test',false)としてfunction test($values)と受け取るのですが、 具体的にvaluesが何の値を受け取っているのかがよく分からないのです。 下のコードでいうと function mail($values) { mb_send_mail(??????????????); } のところで、「valuesって一体何?」と思うわけです。 直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、
- 172 名前:nobodyさん mailto:sage [2007/12/23(日) 04:57:57 ID:???]
- ryaku
$form->addElement('header',NULL,'お問い合わせ'); $form->addElement('text','name','名前'); $form->addElement('text','mail','メールアドレス'); $form->addElement('text','subject','件名'); $form->addElement('text','body','本文'); $form->addElement('submit','sbm','送信'); $form->addRule('name','名前を入力してください。','required','client'); $form->addRule('mail','メールアドレスを入力してください。','required','client'); $form->addRule('mail','メールアドレスを正しく入力してください。','email','client'); $form->addRule('body','本文を入力してください。','required','client'); $form->setRequiredNote('<font color="Red">*</font> 必須項目です。'); $form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。'); if($form->validate()) { $form->process('mail',FALSE); } else { $form->display(); } function mail($values) { mb_send_mail(??????????????); } ?>
- 173 名前:nobodyさん mailto:sage [2007/12/23(日) 05:00:50 ID:???]
- ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
- 174 名前:nobodyさん mailto:sage [2007/12/23(日) 06:07:25 ID:???]
- SimpleXMLElementで、
<data> aaa <p>bbb</p> ddd </data> てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって アクセスしたらいいでしょう?? asXML()すると復元できるんだよなぁ
- 175 名前:nobodyさん [2007/12/23(日) 06:23:36 ID:/N04QiDA]
- sageてしまった……すいませんorz
SimpleXMLElementで、 <data> aaa <p>bbb</p> ddd </data> てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって アクセスしたらいいでしょう?? asXML()すると復元できるんだよなぁ 1つ思いついたのは、 $dom = dom_import_simplexml($xml); $dom->firstChild->nodeValue = 'zzz'; $sXml = simplexml_import_dom($dom); とやる。 ってこれじゃーSimpleXMLの意味がない
- 176 名前:nobodyさん mailto:sage [2007/12/23(日) 07:02:39 ID:???]
- XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ
単独のテキストノードなの? aaa〜dddまでひとつのノードじゃないかって気がするんだけど。 <data></data>しかないじゃん。 さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、 "aaa"や"ddd"へのアクセスってのとの関連がよくわからん。
- 177 名前:nobodyさん mailto:sage [2007/12/23(日) 07:13:23 ID:???]
- んでいちお意図を汲み取ると
<?xml version='1.0' standalone='yes'?> <data> <content>aaa</content> <content><p>bbb</p></content> <content>ddd</content> </data> ってことになるのかな。 $dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。 後半意味が分からんのは変わらんので、 jp2.php.net/manual/ja/ref.simplexml.php ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。 あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで 保存してIEあたりで開けば分かるよ。
- 178 名前:nobodyさん mailto:sage [2007/12/23(日) 07:19:03 ID:???]
- >$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。
ここ紛らわしいかな。 $xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る $content0 = $xml->content[0]; // aaa $content2 = $xml->content[2]; // ddd ってことね。
- 179 名前:175 [2007/12/23(日) 07:45:21 ID:/N04QiDA]
- <data>
aaa <p>bbb</p> ddd </data> この状態でXMLとして正しくてDOMで厳密にいうと、 Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。 2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。 んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。 $sXML = new SimpleXMLElement($xml); $dom = dom_import_simplexml($sXml); $dom->firstChild->nodeValue = 'zzz'; $sXml = simplexml_import_dom($dom); ってやると、結果は <data>zzz<p>bbb</p> ddd </data> となる。 'zzz'の部分を"\nzzz\n"とすれば、 <data> zzz <p>bbb</p> ddd </data> こうなる。
- 180 名前:175 [2007/12/23(日) 07:49:19 ID:/N04QiDA]
- あっしまった。s/sXML/sXml/です。
ちゃんと書くとこう。 <? $xml = <<<XML <data> aaa <p>bbb</p> ddd </data> XML; $sXml = new SimpleXMLElement($xml); $dom = dom_import_simplexml($sXml); $dom->firstChild->nodeValue = 'zzz'; $sXml = simplexml_import_dom($dom); echo $sXml->asXML(); ?>
- 181 名前:nobodyさん mailto:sag [2007/12/23(日) 10:36:41 ID:???]
- すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません
というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に 持ち込めない状況です $address1_PD = $callData->makeKenPd("address1",$address1,1); (↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします) echo <<<DOC <select name="address1"> $address1_PD; </select> DOC; とやってもうまくいきません $address1_PD = print($callData〜 なども 試したんですがダメでした お手数をおかけしますが、回答お願いします php5 apache2 winxpです
- 182 名前:nobodyさん [2007/12/23(日) 10:37:51 ID:6DPIzhWO]
- すみません 上の181書き込みe-mail欄を消去しそこねました
アドバイスよろしくお願いします
- 183 名前:nobodyさん mailto:sage [2007/12/23(日) 11:22:06 ID:???]
- おっぱいカッコ
- 184 名前:nobodyさん [2007/12/23(日) 11:42:34 ID:MvcJEZMN]
- fgetcsvについて質問です。
A,B,C,D,E F,G,H,I,J K,L,M,N,O という内容のテキストファイルcount.txtから $handle = fopen("count.txt", "r"); $data = fgetcsv($handle); for ($c=0; $c < 5; $c++) { echo $data[$c]; } fclose($handle); というコードを用いてファイル内容を表示させようとしてるのですが 一行目までのABCDEまでしか値を取得出来ません。 二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。 PHPManualを見ても、どの条件が該当するのか分からなかったので よろしくお願いします。
- 185 名前:nobodyさん mailto:sage [2007/12/23(日) 11:53:45 ID:???]
- >>184
jp2.php.net/manual/ja/function.fgetcsv.php 例をよく見ろ
- 186 名前:nobodyさん [2007/12/23(日) 12:12:21 ID:MvcJEZMN]
- >>185
すみません、質問が悪かったですね。 Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが !== FALSEがファイルの終端での全処理終了条件であることを除けば 単純にfor文を繰り返してるだけに見えるんです。 ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、 ご教授お願いします。
- 187 名前:nobodyさん mailto:sage [2007/12/23(日) 12:41:31 ID:???]
- >>186
fgetcsv()すればファイルポインタが1行進む。 しまくればいずれEOFに到達して終わる。
- 188 名前:nobodyさん [2007/12/23(日) 13:01:34 ID:MvcJEZMN]
- >>187
whileの継続条件で用いられているfgetcsvが、 同時にポインタを進める役割も果たしてたということですか。 ポインタについてあまり学んでいないので気づきませんでした。 回答ありがとうございました。
- 189 名前:nobodyさん [2007/12/23(日) 13:06:40 ID:Dd+txFZ/]
- 質問です。
変換するコマンド、をexecさせたいのですが、 どうしても引数を受け取る関数が必要なのでしょうか? 例えば、 exec("convert $hoge $huga); $hogeが引数のファイル $hugaがconvertした後のファイル としたいのですが、失敗してしまいます。
- 190 名前:nobodyさん mailto:sage [2007/12/23(日) 13:25:53 ID:???]
- 上の文を訳しなさい。【30点】
- 191 名前:nobodyさん mailto:sage [2007/12/23(日) 13:37:38 ID:???]
- 質問です。
FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが どうしても出力を受け取る第二引数が必要なのでしょうか? 例えば、 exec("convert $hoge $huga); $hogeが変換するファイル名 $hugaが変換後のファイル名 としたいのですが、失敗してしまいます。
- 192 名前:nobodyさん [2007/12/23(日) 13:39:07 ID:j7tEfXX4]
- 質問があります。
PHP+PostgresqlまたはPHP+mysqlでシステム を作ろうと思うのですが、PHP5が認識をしてくれません。 PHP info();でその部分がでてきません。 なんのパッケージをインストールしたらいいのでしょうか? OSはFedora core4です。 板違いかもしれませんが、よろしくお願いします。
- 193 名前:nobodyさん mailto:sage [2007/12/23(日) 13:42:43 ID:???]
- >>192
何をしたけど認識をしてくれないの?
- 194 名前:nobodyさん mailto:sage [2007/12/23(日) 13:48:06 ID:???]
- SQLを、じゃない?
- 195 名前:194 mailto:sage [2007/12/23(日) 13:48:45 ID:???]
- 誤爆
- 196 名前:nobodyさん mailto:sage [2007/12/23(日) 14:46:06 ID:???]
- >>192
板違いです 「fedora core4 php mysql インストール」とかでググレカス
- 197 名前:nobodyさん mailto:sage [2007/12/23(日) 14:55:33 ID:???]
- 板違いだが教えよう。
普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね
- 198 名前:176 mailto:sage [2007/12/23(日) 15:49:32 ID:???]
- >>175
そのXMLであってるのか。。 DOM的には確かにノードの扱いはそうなると思うけど、XML的には \naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。 なので、 ・DOM使ってXML的にもノードがばらけるように変換する。 ・XML文字列を適当に文字列変換する。 くらいしかやっぱりないような気がするけどなあ。
- 199 名前:nobodyさん mailto:sage [2007/12/23(日) 16:13:53 ID:???]
- >>175、>>176
\naaa\nはTextNode <data></data>、<p></p>はElementNode firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。 そしてSimpleXMLElementにそれがあるかどうかは知らない。
- 200 名前:nobodyさん [2007/12/23(日) 17:04:49 ID:4Xlz9Mde]
- 複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか?
if (empty($var1) && empty($var2) && empty($var3)) 今こんな風になってます。
|

|