【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/03(火) 01:09:36ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0609nobodyさん
2009/06/18(木) 23:39:01ID:???0610nobodyさん
2009/06/18(木) 23:43:23ID:???0611nobodyさん
2009/06/19(金) 01:47:29ID:???保存すますたw
0612nobodyさん
2009/06/19(金) 01:48:10ID:???0613nobodyさん
2009/07/01(水) 11:28:04ID:???arras theme というテーマを使っているのですが
そのテーマにはトップページに記事のサムネイルを表示する
javascript のスライドショーがあります。
それを他のページ(たとえば普通のページなど)にも
設置することはできるでしょうか。
home.php のそれっぽい場所をコピーして single.php に貼り付ければ
出来なくもなさそうなんですが、複雑でわかりにくいのと
そもそもそういう設定ができるかもしれないので質問しました。
環境はwordpress のバージョンは2.8 arras theme は最新のものを使っていて
自分は php と javascript であれば編集できます。よろしくお願いします。
0614nobodyさん
2009/07/02(木) 11:12:33ID:???foo($array, 'a', 'b') なら $array['a']['b'] を返すには
function foo() {
// ???
}
をどうしたらいいでしょうか。
func_num_args() を使って再帰で、
なんて思ったのだけど、考えがまとまらなくて。
0615nobodyさん
2009/07/02(木) 14:46:54ID:???$var = foo($array, 'a');
なら
$var = $array['a'];
でいいじゃん
0616nobodyさん
2009/07/02(木) 15:38:49ID:???foo($array, array('a', 'b')) を $array['a']['b'] にするんだったら
foo($array, $arr_keys) みたいに渡したいのかなとも思うんだけど。
0617614
2009/07/02(木) 15:41:46ID:???E_ALL 環境で isset() が面倒なんので、
foo 内で isset して値を返したり、
値があるか判定するのを作ろうと思って。
0618nobodyさん
2009/07/02(木) 16:47:20ID:???foo:セットされてないときfalse,セットされているときはその配列の内容が返る
$arr["a"]["b"]["c"] = "hoge-c";
$arr["a"]["b"]["d"] = "hoge-d";
$arr["a"]["b"]["e"] = "hoge-e";
var_dump(foo($arr,"a", "b")); // result array
var_dump(foo($arr,"a", "b","c")); // resurt string
var_dump(foo($arr,"a", "c")); // resutl false
var_dump(foo($arr,"b")); // result false
function foo() {
$cnt = func_num_args();
$var = func_get_args();
$arr = $var[0];
for ($i=1; $i<$cnt; $i++) {
if (!isset($arr[$var[$i]])) return false;
$arr = $arr[$var[$i]];
}
return $arr;
}
0620nobodyさん
2009/07/02(木) 21:49:43ID:???0621nobodyさん
2009/07/03(金) 06:14:31ID:???のような、出力するHTMLタグ内の※の部分に変数を置きたいのですが、
今までname=".$aaa.">のように". ."の間に変数名を入れて繋いでいたところ、
たまたま違う人がname={$aaa}>と{ }で囲っているのを見つけました。
変数の中身を{ }で参照できるのは納得できたのですが、
". ."で囲う場合、変数ではなくname=".session_name()."のようにできるところを
{ }で囲う場合はどうすればよいでしょうか。
PHP5
0622nobodyさん
2009/07/03(金) 06:15:55ID:???0623nobodyさん
2009/07/03(金) 06:21:26ID:???". ."は超自己流なんで定番が知りたく。
0624nobodyさん
2009/07/03(金) 06:23:18ID:???0625nobodyさん
2009/07/03(金) 06:31:04ID:???0626nobodyさん
2009/07/03(金) 06:36:58ID:???0627nobodyさん
2009/07/03(金) 06:39:26ID:???もうちょい詳しい人に聞いてみます
0628nobodyさん
2009/07/03(金) 06:40:56ID:???0629nobodyさん
2009/07/03(金) 06:45:36ID:???0631nobodyさん
2009/07/03(金) 10:55:19ID:???0632nobodyさん
2009/07/03(金) 11:43:51ID:???0633nobodyさん
2009/07/03(金) 11:50:14ID:???埋め込めてるのはダブルクオーテーションの機能だろ
{}は区切り文字なだけ
0634nobodyさん
2009/07/03(金) 12:48:46ID:???" や ' 以外の括り文字でもあればいいのかもね。
それとは別に Perl や Ruby の q| | とかもほしいなぁ。
0635nobodyさん
2009/07/03(金) 23:23:32ID:???プラグインで smoothview というのがあったので
そのインターフェースを改造しました。
0636nobodyさん
2009/07/04(土) 07:55:20ID:???smartyって{}を多用するよね。
0637nobodyさん
2009/07/05(日) 21:23:19ID:???と表示しなくてもいいCMSはありませんか?
0638nobodyさん
2009/07/08(水) 11:36:42ID:???レンタルサーバの設定では、PHPを「FastCGI アプリケーションモード」で動かしているらしいのですが
結構頻繁に「The FastCGI process exceeded configured activity timeout」ってエラーが出ます。
サーバ会社に聞くと、「FastCGIに対応したコードを記述してないからです」と言われたのですが、
当方、参考書を見ながら作成しているのですが、どこにもFastCGIについて書かれておらず
どこかにその対応コードなどが記載されているような参考にできるサイトを知っている方はいらっしゃらないでしょうか?
0639nobodyさん
2009/07/08(水) 11:48:42ID:???_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|FastCGI PHP │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
0640nobodyさん
2009/07/08(水) 11:52:55ID:???0641nobodyさん
2009/07/08(水) 11:59:11ID:???すいません、すでにいろいろとぐぐってはいるんですが
サーバ側でFastCGIを導入する方法ばかり記載されており、PHPでサイトを作る際の注意点などが記載されているものがなく
困っております。
そこで、そのような記載があるサイトがないかお尋ねしたのですが、やはり難しいのでしょうか。
0642nobodyさん
2009/07/08(水) 12:01:18ID:???0643nobodyさん
2009/07/08(水) 12:11:40ID:???ありがとうございます。
タイムアウトの設定を変える内容のようですが、そちらはPHPファイルのどの当たりに記載すればよろしいのでしょうか?
そのコードがレンタルサーバ会社の言う、こちらが記載すべき「FastCGIに対応したコード」というものなのでしょうか。
なんどもお聞きしてしまって申し訳ありません
0644nobodyさん
2009/07/08(水) 12:37:53ID:???0645nobodyさん
2009/07/08(水) 12:55:07ID:???ありがとうございます。
調べたところ、レンタルサーバの管理上FCGIext.iniの編集はこちらではできないようになっているようです
わからないことばかりなので、もうすこしぐぐったりして基礎知識から勉強をしなおそうと思っています
ご助言をしていただいた方々、ありがとうございました
0646nobodyさん
2009/07/08(水) 14:16:07ID:???考え方といいますか、流れを教えてください。
XHTMLとCSSで縦2分割サイトを考えており、左に配置したドロップダウンリストから選択、
右側に内容表示というよくあるパターンです。内容はMySQLから取り出す予定です。
ここでわからないのが、内容の表示位置の指定です。
MySQLのデータとCSSタグを一緒に出力すればよいのでしょうか?
根本的な勘違いをしているような気がしてならないのですが、どこが勘違いなのかも
よくわからないです。
0647nobodyさん
2009/07/08(水) 14:34:54ID:???CSSでその位置を指定すればいいのでは
0648nobodyさん
2009/07/09(木) 12:14:47ID:???推奨はしないけど。
0649nobodyさん
2009/07/09(木) 13:19:44ID:???ありがとう。
その方法だとうまくいかないのです。
サイト全体が置き換わってしまうので、結局すべてのHTMLにメニューをつけないと
ダメっぽいです。
>>648
ありがとう。
いまググってみました。
たしかにやりたいことと合致します。
ただ、これから言語をマスターするので、より簡単といわれているPHPを覚えたい
という気持ちがあります。JSと両方覚えれば済む話ではあるのですが、オレには
キャパがないです。たぶん。
0651nobodyさん
2009/07/09(木) 17:26:11ID:???連携しないと実現出来ない事も多々あるし。
0653nobodyさん
2009/07/09(木) 18:48:35ID:???>>650
ありがとう。
iframeは考えたんですけど、XHTML1.1で非サポートになり、策定中のHTML5.0でも
廃止になるということで、使わない方向を考えてました。
>>651
ありがとう。
JavaScriptも必須ですか。
まったくの初心者なので、PHPの公式マニュアルを読むだけで苦労してます。
0654nobodyさん
2009/07/09(木) 21:36:35ID:???0655age
2009/07/09(木) 22:48:26ID:DwSsHHgt強制的にサーバとPCとのコネクションを切断する事は可能ですか?
0657nobodyさん
2009/07/10(金) 12:50:37ID:???iframeは、XHTML1.1ではすでに無いです。
W3Cの勧告でもHTML5.0で無くす方向で進めているようです。
0658ユキ
2009/07/12(日) 04:36:26ID:au+P+rHJPHPど素人です。
インターネットで調べながらPHPの問題に取り組んでいますが、
2週間以上掛けても全く分かりません。
どのように書くのか教えていただけないでしょうか。
『EmEditor Free Version 6.00.4』とザンプを使っています。
問題は以下のとおりです。
『数値1〜9があります。全て4桁です。
9つの数字の中の最大値と最小値を出力しなさい。
負の数と5桁以上の数値が入力された場合エラーと出力する。
さらに数値1〜9のどの数値が最大値、最小値か出力しなさい。』
ループとfunctionを使うそうなんですが、どう使えばいいのか分からず、
ゼロの状態です。
皆様、お忙しいと思いますが、助けていただきたいです。
お願い致します。
0659nobodyさん
2009/07/12(日) 05:09:19ID:???0660nobodyさん
2009/07/12(日) 08:09:56ID:???数値1を入力する
数値2を入力する
数値3を入力する
数値4を入力する
数値5を入力する
数値6を入力する
数値7を入力する
数値8を入力する
数値9を入力する
↓
数値1に入れられた数値を、$aに入れる
、、、、
数値9に入れられた数値を、$iに入れる
0661nobodyさん
2009/07/12(日) 08:11:34ID:???もし5桁以上なら、エラーを吐いて死ぬ。
4桁なら、こんどは、$aが負の数かどうかを調べる。
0以上なら、おk。
もし負の数なら、エラーを吐いて死ぬ。
$aのチェックが終わったら、$b、そして
、、、、$i。
0662nobodyさん
2009/07/12(日) 08:14:51ID:???そんで、その中の最大値を調べる(専用関数あり)
そして、こんどはその配列の、最小値を調べる(専用関数あり)
そんで、最大値のvalueに一致するkeyを調べて、
「この数値○が最大でした」って表示
次に、最小値がでたところのvalueのkeyを調べて、
「この数値のときに最小でした」って表示。
以上。あとは上記の仕様書をプログラマーに食わせれば
ソースコードを吐く。
0663nobodyさん
2009/07/12(日) 08:24:10ID:???それだと「さらに数値1〜9のどの数値が最大値、最小値か出力しなさい」
の設問には答えられないので、もう一工夫が必要。
0664nobodyさん
2009/07/12(日) 08:51:58ID:???0665ユキ
2009/07/12(日) 14:48:56ID:tG558Uf0ご親切にありがとうございます!!!!!
おかげさまで$aの桁を調べるまで出来ました!
書いていただいた内容をヒントにもう少し自分で頑張ってみます!
0666ユキ
2009/07/12(日) 22:27:20ID:tG558Uf0これからどのようにfunctionとループを使えばいいのかどうしても分かりません。
解答、あるいはヒントを頂けないでしょうか?
度々すみません。
if($a > 9999 or $a < 0){
echo "<div>エラー</div>";
} else { echo "<div>$a</div>";
}
if($b > 9999 or $b < 0){
echo "<div>エラー</div>";
} else { echo "<div>$b</div>";
}
if($c > 9999 or $c < 0){
echo "<div>エラー</div>";
} else { echo "<div>$c</div>";
}
if($d > 9999 or $d < 0){
echo "<div>エラー</div>";
} else { echo "<div>$d</div>";
}
if($e > 9999 or $e < 0){
echo "<div>エラー</div>";
} else { echo "<div>$e</div>";
}
0667ユキ
2009/07/12(日) 22:28:07ID:tG558Uf0if($f > 9999 or $f < 0){
echo "<div>エラー</div>";
} else { echo "<div>$f</div>";
}
if($g > 9999 or $g < 0){
echo "<div>エラー</div>";
} else { echo "<div>$g</div>";
}
if($h > 9999 or $h < 0){
echo "<div>エラー</div>";
} else { echo "<div>$h</div>";
}
if($i > 9999 or $i < 0){
echo "<div>エラー</div>";
} else { echo "<div>$i</div>";
}
$x = array( $a , $b , $c , $d , $e , $f , $g , $h ,$i );
echo " 最大値: " .max($x). "<br />\n";
echo " 最小値: " .min($x). "<br />\n";
0668nobodyさん
2009/07/12(日) 23:06:46ID:???0669nobodyさん
2009/07/13(月) 02:32:15ID:???受けてたとしたらこの段階でこんな問題出した教師が悪い
0670nobodyさん
2009/07/13(月) 11:10:34ID:???function は 一部の値だけを変えて同じ処理が続く場合に使います。
>>666-667を良く見てみると、同じ記述が見つかりますね。
まずは、共通化できる処理をfunction化してみましょう。
ループ(for while fareach)は、
一部の値を変化させながら同じ処理を繰り返すときに使います。
同じような命令が繰り返している箇所をループ化してみましょう。
0671nobodyさん
2009/07/13(月) 18:25:41ID:???実際のフルパスを書き換えないでテストできる
フリーの開発ツールを前に何かで見つけたのですが
ご存じないでしょうか?
0672nobodyさん
2009/07/13(月) 18:29:50ID:???どうすればいいの?
0673nobodyさん
2009/07/13(月) 19:15:29ID:???パスは設定ファイルに入れておけばいいじゃない。
完全一致を期待してるとカスタマイズとかのときにも
パスの全チェックをしなきゃいけなくなるから面倒だよ。
または、Windows/OSXにもそれぞれ仮想環境ツール
が出ているから、仮想環境ツールに、お目当てのOS
を入れて、Explorer/Finderからコードを更新できるよう、
Sambaあたりを入れて動かしておけばいいかと。
0675nobodyさん
2009/07/13(月) 21:11:07ID:???php.iniで簡単に出来ました。
ただすべてのページにbase hrefを入れているので階層めぐりは無理でしたorz
どこかにコールバック関数と連携させてうまく開発出来る海外のツールがあったと思うんだけどなぁ。。
もう一度探してみます。ありがとうございました。
0676nobodyさん
2009/07/15(水) 03:07:14ID:???[質問] メンバ関数をメンバ変数の連想配列にぶち込みたい。
※2が通るような使い方をしたいのですが、やりかたをご教授いただけませんでしょうか、、、。
----------------------------
※1 OK
function HogeFunc {
echo "Called HogeFunc1";
}
class HogeClass1{
public function Action() {
foreaech( $m_Array as $key => $value ) {
$value();
}
}
$m_Array = array( "HOGE_TAG", "HogeFunc1" ); //! 呼び出しOK
};
----------------------------
※2 こいつはNG
class HogeClass2 {
public function Action() {
foreaech( $m_Array as $key => $value ) {
$value();
}
}
public static function HogeFunc2 {
echo "Called HogeFunc2";
}
$m_Array = array( "HOGE_TAG", "HogeClass2::HogeFunc2" ); //! 呼び出すとエラー
}
※※エラー内容※※
Fatal error: Call to undefined function HogeClass2::HogeFunc2() in ....省略
----------------------------
0677nobodyさん
2009/07/15(水) 03:15:04ID:???0678nobodyさん
2009/07/15(水) 03:16:29ID:???色々ひどい。HOGE_TAG関数もないし
0679nobodyさん
2009/07/15(水) 05:17:03ID:???0681nobodyさん
2009/07/15(水) 15:59:14ID:???0682nobodyさん
2009/07/16(木) 17:37:24ID:???全く繋がらないんだが俺だけかな?
0683nobodyさん
2009/07/16(木) 18:39:37ID:???jp.php.net jp2.php.netとかはつながった
0685質問です
2009/07/22(水) 01:15:02ID:???他ページにおいてるphpを読み込むには
どうしたらいいですか?
いまはとりあえず、インラインとかobjectタグで
呼び出しています
ほかに良い方法があればお教えください
0687nobodyさん
2009/07/22(水) 16:32:04ID:???$ar = array(1,2); とすると
Array ( [0] => 1 [1] => 2 ) と表示されるのですが、
$date = "1,2";
$ar = array($date); とすると
Array ( [0] => 1,2 ) と表示されてしまいます。
$dateにはテキストボックスから自分で数字とコンマを入力して代入するようになっているのですが、
これらを配列として扱うようにするには、どのように記述すればよいのでしょうか。
申し訳ありませんがよろしくお願いします。
0688nobodyさん
2009/07/22(水) 17:05:38ID:???while ($i == 0){
$date1 = mt_rand(0,1000);
$date2 = mt_rand(0,1000);
if ($date1 == $date[0]){
if ($date2 == $date[1]){
break;
}
}
}
$ar = array($date1,$date2);
0689687
2009/07/22(水) 17:05:52ID:???$ar = array($date); を
$ar = explode(",", $date); とすることでうまく動きました。
お手を煩わせて申し訳ありませんでした。
0692nobodyさん
2009/07/23(木) 15:34:36ID:???$this->mail = "メアド";
$this->tel = "電話";
などとあった場合、$thisの配列の中身を全部一括出力したい場合どうすればよいでしょうか
0693nobodyさん
2009/07/23(木) 15:39:20ID:???ちなみに配列じゃないけどね
0695nobodyさん
2009/07/23(木) 16:51:40ID:???入力画面に戻って修正箇所を再入力、というような普通のフォームを作っているのですが、
修正入力のときにフォームのリセットボタンが動作しません(全消去ではなくセッションで渡された内容に戻ってしまう)
スクリプトの挙動としては作った通りなので当然なんですが、機能としてどうも違うような気がします
何か解決方法はないでしょうか
0696nobodyさん
2009/07/23(木) 17:44:36ID:???0697nobodyさん
2009/07/23(木) 17:57:10ID:???0698695
2009/07/23(木) 18:08:13ID:???0699nobodyさん
2009/07/23(木) 22:50:23ID:???Apacheを入れたPCでは現在使えています。
0700nobodyさん
2009/07/23(木) 23:04:04ID:???0701nobodyさん
2009/07/23(木) 23:49:44ID:???パスphp.exe -l "%1"
これでダメなのです。
Apacheを入れてるときは動いてたのですが
0702nobodyさん
2009/07/24(金) 10:45:01ID:???0703nobodyさん
2009/07/24(金) 18:48:34ID:???としてフォームからPOSTされた中身を一括して$_SESSION["input"]に放り込んでるんですが、
さらにそれを一括してhtmlspecialcharsする方法はないでしょうか
現状べた書きでずらずらっと書いてるんですがどうも美しくなく・・・
PHP5
0704nobodyさん
2009/07/24(金) 18:57:24ID:???0705nobodyさん
2009/07/24(金) 19:15:54ID:???if (is_array($data)) {
return array_map('h', $data);
}
else {
return htmlspecialchars($data, ENT_QUOTES);
}
}
0706nobodyさん
2009/07/24(金) 19:49:53ID:???0707nobodyさん
2009/07/24(金) 20:12:12ID:???ありがとうございます
勉強がてら意味を追いながら似たような関数も合わせて調べてるんですが、
addslashes($data);
とするとフォームに"が入力されたとき\\\"と\が3つ増える怪現象にはまって脱線中ですw
ググろうにも\がGoogleにエスケープされるというw
>>706
本当にやりたいのはそれなんですが、出力用データがHTMLを含んでるので表示がおかしくなってしまうんです
■ このスレッドは過去ログ倉庫に格納されています