トップページ⇒php
1001コメント299KB

くだすれPHP(超初心者用)4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/13(金) 20:32:36ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
http://www.php.net/
http://jp.php.net/



前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/

適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0261nobodyさん2008/09/14(日) 12:14:00ID:???
PHPとか言語は関係ないが、再帰的アルゴリズムがバシッとはまると、俺すげえって思うw
0262nobodyさん2008/09/14(日) 13:35:42ID:???
フレームワークを作った時かな
車輪の〜って言われるだろうが、利用するかはともかく仕組みを考えて実装することに意味がある
と、言いつつ愛用してるが・・・
0263nobodyさん2008/09/14(日) 21:23:06ID:jIYlcJD1
phpでもなんでもそうだけど、本の書いてあること
が理解できるようになったとき。
あとショッピングカートとかブログとかその辺
のアプリができたとき。
0264nobodyさん2008/09/14(日) 22:46:57ID:B7I6GMpn
>>260,261,262,263
観念的で曖昧な質問に答えてくださってありがとうございます。

ちょっと(いや、かなり)質問の仕方が悪かったかもしれません。
「コレを頑張ったら結果をより早く導出できるようになった」という体験を伺ったのです。
「頭打ち状態からブレイクスルーした」という体験はありませんでしょうか?


>>262さんのレスを参考に「フレームワーク 車輪の」でググってみました。
「車輪の再発明」ということですね。
自分でもそういうことをしてしまっている可能性があるので参考になりました。
ありがとうございます。
0265nobodyさん2008/09/14(日) 22:54:51ID:???
その段階だと・・・ひたすら作ってひたすら無駄な労力にorzするのが一番さ
0266nobodyさん2008/09/14(日) 23:41:45ID:???
イヒ体験ってことか

メール送信でPHPが標準でsendmailしか使わんことに気付いた時
大量に送信するにはオーバーヘッドがウザいからSMTP送信をしたいのに出来ない・・・
仕方なくpopenで実装って時にSMTPっつうプロトコルの仕組みを知ってて良かった〜ってことはあった
0267nobodyさん2008/09/15(月) 00:02:57ID:???
しかし、みんな頑張り過ぎw
0268nobodyさん2008/09/15(月) 00:03:46ID:???
誤爆、失礼><
0269nobodyさん2008/09/15(月) 22:32:29ID:???
効率の良いプログラミングをしようと思ったらLL言語使いだろうと
中の仕組みを知っていたほうが良いのは当然だな。
ある程度理解していればプロトコルの詳細はRFC斜め読みでなんとかなる。
0270nobodyさん2008/09/17(水) 12:48:50ID:JTQWTwl/
理解したつもりの関数とか1日で忘れてしまう

substrとか   これなんだっけ ってなる
0271nobodyさん2008/09/17(水) 12:52:42ID:???
それはヤバイな
0272nobodyさん2008/09/17(水) 12:57:46ID:???
学校の勉強はノートに書いて覚えていくけど
プログラミングの勉強となると紙のノートじゃなくPCに依存して勉強したくなるよね
でもメモソフトと紙のノートには雲泥の差の自由度があるから勉強のためのメモとしてはあまり利用出来ないよね
0273nobodyさん2008/09/17(水) 12:59:19ID:???
プログラミングの勉強ってどんなことしてんの
0274nobodyさん2008/09/17(水) 16:13:37ID:???
プログラミングの勉強ってひたすらソース書いてナンボっしょ
0275Noone2008/09/17(水) 16:59:26ID:???
http://www.php.net
0276nobodyさん2008/09/18(木) 00:02:52ID:X0thX7wZ
あげ
0277nobodyさん2008/09/18(木) 07:48:56ID:eOfu22hG
レンタルサーバでPHPの勉強中です。
ファイルのアップロードをしているんですが、php.iniやhttpd.confが直接いじれなくて
.htaccessに

php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 100M

と書いてそれぞれの値を変更しています。
問題は、これらの値がページをリロードする度にサーバのデフォルト値である
post_max_size 32M
upload_max_filesize 32M
memory_limit 90M
になったり、
post_max_size 100M
upload_max_filesize 100M
memory_limit 100M
になったりすることです。

こういった現象を経験された方いらっしゃいませんか?

各値の確認は、
ini_get()関数で確認しています。
0278nobodyさん2008/09/18(木) 08:58:15ID:???
共用サーバーはリソースも共用です。
0279nobodyさん2008/09/18(木) 09:48:54ID:eOfu22hG
>>278
レンタルサーバが、リソースが不足している場合.htaccessが有効にならないような設定がされているということでしょうか?
0280nobodyさん2008/09/18(木) 09:51:27ID:???
リソースが共有されてるのはいいが関係はないな
プロセスが別なのにPARDIRのディレクティブが上書きされるなんて聞いたことがない
0281nobodyさん2008/09/18(木) 10:42:43ID:???
if(!isset($_GET['aaa']) || !isset($_GET['bbb']))

これの真ん中の||とissetの前の!はどういう意味?
0282nobodyさん2008/09/18(木) 10:50:24ID:???
|| は OR と同じ、ちなみに && は AND と同じ「かつ」「または」ってヤツだな

! は反転を意味する。
issetは「初期化されていればtrue」で調べたいことは「定義されていない場合」だからfalseとなるところを!で反転して評価してるんだな
0283nobodyさん2008/09/18(木) 10:50:49ID:???
>>281
マニュアルをどうぞ
0284nobodyさん2008/09/18(木) 10:54:39ID:???
なるほど。

!は反転するということなんですね。
0285nobodyさん2008/09/18(木) 12:44:53ID:???
反転ではなく否定な
0286nobodyさん2008/09/18(木) 13:27:00ID:???
if(!isset($_GET['aaa'])) {

// 値がセットされてなければecho
echo '';
}

こういうことですよね?
0287nobodyさん2008/09/18(木) 13:37:33ID:???
もうちょっと基礎から学習したほうがいいと思うよ
0288nobodyさん2008/09/18(木) 13:50:01ID:???
! の解釈はそれで合ってるけど(まぬあるの「論理演算子」のところを読もう)

> // 値がセットされてなければ
empty() と isset() の説明や比較例を見ると良いです。
?aaa=&bbb=hoge というクエリが飛んできた場合、isset($_GET['aaa'])==TRUE。

言われてるように急がずにゆっくり取り組めばいいと思うよ。
0289nobodyさん2008/09/18(木) 13:51:32ID:???
> isset($_GET['aaa'])==TRUE
isset($_GET['aaa'])がTRUEだと言いたいんだろうがその説明の仕方はだめだw
0290nobodyさん2008/09/18(木) 14:20:02ID:???
あっ、まずかったですか。
言いたかったことはその通りなので、「isset($_GET['aaa']) は TRUE を返す」に訂正します。
0291nobodyさん2008/09/18(木) 14:34:48ID:???
age
0292nobodyさん2008/09/18(木) 14:42:09ID:eOfu22hG
>>280
レンタルサーバの会社に問い合わせたところ詳しくは教えてもらえませんでしたが
>>277で書いたような負荷がかかることはことはしないでくれとのことでした。

根本的な解決はできませんでしたが、こういった現象もあるってことで・・・

しかし、今度はどうやって高負荷時は.htaccessを無視するようなことができるのか
そっちに興味がわいてきました。
Apacheの設定にそういうことができるようなオプションがあるのかな?
0293nobodyさん2008/09/18(木) 14:46:31ID:???
単に違う設定の鯖をロードバランスしてるだけとか
0294nobodyさん2008/09/18(木) 14:56:27ID:???
すいません...

基礎を勉強したいと思います
0295nobodyさん2008/09/18(木) 15:14:50ID:???
珍しく伸びてるな
0296nobodyさん2008/09/18(木) 15:15:16ID:???
そりゃあ鯖のリミッタを外したら怒られるにきまっているだろ
0297nobodyさん2008/09/18(木) 21:33:48ID:???
>>292
だから、>>278って書いたでしょ。

興味を持つのは良い事だけど、
実験したければ、自鯖立ててやってね。
0298nobodyさん2008/09/19(金) 03:16:00ID:???
こんにちわ。
サーバー側が php4 → php5 にしますよ
と言ってきました。

バグってどれくらい出るものでしょうか。
移行された人いらっしゃいますか?
0299nobodyさん2008/09/19(金) 05:25:52ID:???
バグっていうか対応度合いの問題だろ
そんなんアプリによってまちまちとしか言えん
ていうか手元で移行検証くらいしようよ
0300nobodyさん2008/09/21(日) 15:55:59ID:G8wZRX1E
すいません、知っている方がいたら教えてください。
strip_tags()を使用してコメントタグだけを残したい場合はどうしたらよいでしょうか?
$html = strip_tags($html, "<!---->");
という書き方だとコメントタグも削除されてしまいます。
0301nobodyさん2008/09/21(日) 16:35:13ID:???
質問というかアドバイスをください。
プログラミング経験は無いわけではなくC,C++でマルコフ連鎖モンテカルロ法
の実験などを大学の研究でしたりもしているのですが、最近なんとなく
PHPのようなウェブアプリを簡単に作れる言語に興味があります。

が何を作ったらいいかわかりません。
自作で、実用レベルまで比較的に簡単に作れるもの、
というとどういうものがあるでしょうか。お願いいたします。
0302nobodyさん2008/09/21(日) 16:36:57ID:???
掲示板でも作ってみたら?
まぁ何にするにせよ実用性とは程遠いだろうが気にするな
0303nobodyさん2008/09/21(日) 17:51:38ID:???
>>301
何かのウェブアプリを作りたいからphp学びたいんじゃないの?
せめて作りたいものの目標くらい無いとモチベーション続かないと思うんだけど。
なんか目的と手段が逆になってるような気がする。
0304nobodyさん2008/09/21(日) 17:53:03ID:???
>>301
有能な君にはphpbb並の国産高機能BBSをぜひ作ってほしい
0305nobodyさん2008/09/21(日) 18:30:23ID:???
>>301
隠れマルコフモデルを応用して、
形態素解析でインターネット上の情報サンプル集積でもやってみてくれ
0306nobodyさん2008/09/21(日) 18:30:48ID:???
>>300
マニュアルに書いてあるぞ、無理ってな
strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
0307nobodyさん2008/09/21(日) 18:31:56ID:???
誤字った
誤:strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
正:strip_tagsの前後でHTMLコメントを置き換えて逃げるしかないだろうな
0308nobodyさん2008/09/21(日) 20:19:14ID:uUB1weY6
すみません、ほんとに基本の質問だと思いますが
.htmlファイルの中に
<?php
include('file.php?pass=123');
?>
としましたが、includeが実行されません
拡張子は常に.phpでなければいけないんでしょうか?前に試した出来たような気がしたんですが、、
また、上記のようなインクルードファイルに引数をつけた場合、
file.phpの中で$_GET['pass']としてを解釈することは出来るでしょうか?
どなたかご回答お願いします
0309nobodyさん2008/09/21(日) 20:28:27ID:???
無理
0310nobodyさん2008/09/21(日) 20:29:10ID:???
>>308
俺の経験では出来ない。

file.phpの中に関数f_fileを書いて以下の様にすればいい。

<?php
include('file.php'); f_file('123');
?>
03113082008/09/21(日) 20:49:34ID:uUB1weY6
>>309-310
ありがとうございました
phpは .htmlの拡張子のファイルでは動かないということでいいでしょうか?

また、二つ目の質問に関しては
http://okwave.jp/qa4336105.htmlという解決法を見つけました
>>310さんの答えと合わせて考えたいと思います
0312nobodyさん2008/09/21(日) 21:12:27ID:???
>>311
できる
addtypeでググってみ
03133002008/09/21(日) 22:14:17ID:G8wZRX1E
>>306
ありがとうございます。
自分の持ってるPHP辞典には記載されてなかったでわかりませんでした。
なんとも中途半端な仕様ですね。
0314nobodyさん2008/09/21(日) 22:33:44ID:aDAFCUyF
しつもーん。
ttp://jp.php.net/manual/ja/functions.arguments.php
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。

の、主語というか目的語というか、ナニのデフォルトが参照渡しになるんでしょか。

function alter($str){
$str = $str . '!';
}
$nya = 'nya';
alter($nya);
echo $nya;

は PHP 5.2.0-8+etch9~bpo31+1 (cli) では $strを 変更せずに nya が表示されました。
0315nobodyさん2008/09/21(日) 23:03:33ID:???
それは日本語版スタッフの訳が悪いと思う。
原文読むといいかと。
http://jp.php.net/manual/en/functions.arguments.php
0316nobodyさん2008/09/21(日) 23:22:56ID:???
引数がデフォルトでリファレンスよ
やってみれば分かるが&付けなくても参照元の値も変わるぜ

余談だが
PHP4では 「&$arg=null」なんてデフォルト引数が使えないんだが、PHP5から問題なく通る
呼び出し時に引数指定したかどうかでスイッチしてんだろうなぁ
0317nobodyさん2008/09/21(日) 23:29:51ID:???
>>314では&無しでは変わってなくないか?
0318nobodyさん2008/09/22(月) 01:05:35ID:???
PHPで逆IP制限ってできる・・・?
変数$aに1が入ってる時だけ変数$bに入ってるIP以外からのアクセスがあった場合にifコマンド使って、
他の内容を表示するの。
0319nobodyさん2008/09/22(月) 01:09:02ID:???
IP見て比較すれば普通にできるんでない?
03203182008/09/22(月) 01:10:00ID:???
if ( !strcmp ( $ip_address, $list_ip ) )
これ使っていけるかな・・・・・・?
03213182008/09/22(月) 01:10:58ID:???
>>319 それなぜか思いつかなかった。トンクス。
03223182008/09/22(月) 02:51:53ID:???
txtファイルから文字列読み込んだときに改行まで読み込まれて比較ができない。
どうすればよいですか?
0323nobodyさん2008/09/22(月) 03:00:08ID:???
改行文字を除いてから比較すれば?
03243182008/09/22(月) 03:15:17ID:???
>>323どうもうまくいかなかった.........

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);

$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";

if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>

ipアドレスの文字数分引っ張り出して比較することで回避できた。
0325nobodyさん2008/09/22(月) 03:21:01ID:???
ip.txtに入ってるIPの方が今アクセスしてる人のIPより長かったらどうすんの?
03263182008/09/22(月) 03:24:26ID:???
>>325 したら絶対IP違うからエラーでていいんでない?
03273182008/09/22(月) 03:27:42ID:???
一時的にip.txtの中に入ってる一番最初のIPの人以外見せたくないものを作るんだ。
処理が終われば解除されるようなかんじで。

0328nobodyさん2008/09/22(月) 03:39:53ID:???
212.134.32.14
と
212.134.32.143
0329nobodyさん2008/09/22(月) 06:54:54ID:???
>>317
変わってないな
0330nobodyさん2008/09/22(月) 12:43:54ID:???
PerlのNet-CIDRを移植したら?
0331nobodyさん2008/09/22(月) 15:10:26ID:EKIEGJ69
phpでカート作成のHP教えて
0332nobodyさん2008/09/22(月) 15:12:32ID:???
>>331
http://www.nintendo.co.jp/ds/amcj/
0333nobodyさん2008/09/22(月) 15:19:02ID:EKIEGJ69
ありがとう><;
0334nobodyさん2008/09/22(月) 16:42:16ID:???
ワラタ
0335nobodyさん2008/09/22(月) 16:44:51ID:???
>>331
ショッピングカートの基本はセッションを上手く扱うことだと思う
具体的なカート作成のサイトはなくてもセッションに関する記事は多いから、そこから学べば良いかと
どうせ学習目的とかでしょ?
0336nobodyさん2008/09/23(火) 01:10:46ID:KzC+qHTk
>>312
ありがとうございます! 助かりました!
0337nobodyさん2008/09/23(火) 12:55:10ID:BK/ZFWc8
ちょっとまてよ、>>331はPHPを使ってカートを作るHPというのを教えて欲しいんじゃないか?
0338nobodyさん2008/09/23(火) 12:59:43ID:???
さあ?
0339nobodyさん2008/09/23(火) 13:06:07ID:???
>>331-333の流れでネタのようにしか思えん
0340nobodyさん2008/09/23(火) 13:08:38ID:???
>>318は日本語の勉強から始めないと意図が伝わりにくいと思うが
まず何が目的で特定IP以外からのアクセスを制限したいかが不透明

内容からするに何らかの処理をしている期間は別の接続者を拒否したいって意味のようだが
その処理ってのが何度もリクエストを受けて完了するもだとしたら
---
アクセスがある
↓
閲覧者IPのデータを確認する─(IP記録なし)→閲覧者IPを記録し結果表示
↓<(IP記録がある)
IP比較─(一致)→結果表示
└(不一致)→拒否
---
こんな感じでコード書けばいいだろ
記録IPをいつ削除するかは知らんけど、この処理書くどこで詰まってるの?

もし、一回のリクエストの結果表示までにすべて処理が終わってしまうようなものだったら
ファイルロックとかの方法でも調べれれ。IPを比較する意味ない

あとどうでもいいけど改行の削除は置換を使えよ
0341nobodyさん2008/09/23(火) 13:10:56ID:???
<?php
echo(">>331\n");
echo("このサイトを見れ\n");
echo("http://www.nintendo.co.jp/ds/amcj/");
?>

つまりこういうことだな
0342nobodyさん2008/09/23(火) 14:16:43ID:???
echoで括弧を付けるのはダサい
0343nobodyさん2008/09/23(火) 14:20:41ID:???
echoはカッコ付けなくてもエェ子やで
0344nobodyさん2008/09/23(火) 18:25:40ID:???
PHPなんて久しぶりに書いたから忘れてたわw
えーこと聞いた
0345nobodyさん2008/09/23(火) 19:38:04ID:???
fopenを使ってURLを開くとき
複数のURLに対して並列に処理を行いたいんだけど
どういう風にやればいいですかね?
最悪参考になりそうなサイト教えてください。
0346nobodyさん2008/09/23(火) 19:52:08ID:???
fopenはブロックするから並列処理には向かない
0347nobodyさん2008/09/23(火) 20:59:24ID:???
>>346
ブロック?とはどういうことでしょうか?
並列処理に向いているfopenに代わる関数を
教えていただけるとありがたいです。
0348nobodyさん2008/09/23(火) 21:01:16ID:???
そんなのない
0349nobodyさん2008/09/23(火) 21:05:07ID:???
じゃあfopenでがんばるとして
並列処理を行うにはどうすればよいでしょうか?

というかPHPでそんなことするなってことでしょうか?
0350nobodyさん2008/09/23(火) 21:18:43ID:???
>>345
HTTPDのプロセスを複数起動
0351nobodyさん2008/09/23(火) 21:31:31ID:???
>>345 ちなみにPHPではマルチスレッドはできない。
プロセスで何とかする。
0352nobodyさん2008/09/23(火) 22:13:13ID:???
なるほどプロセスを複数起動ですか
とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました
0353nobodyさん2008/09/24(水) 23:43:55ID:???
$a=1;
$b=9;
$c=3;

「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。
0354nobodyさん2008/09/25(木) 00:11:02ID:???
>>353
変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う

例: 連想配列
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
);
0355nobodyさん2008/09/25(木) 00:19:45ID:???
ありがとうございます!
0356nobodyさん2008/09/25(木) 00:20:07ID:???
いいてことよ
0357nobodyさん2008/09/25(木) 05:09:05ID:???
ちょっと疑問に思ったんだけど、
連想配列の場合、
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
 'd' => 9,
);

この場合、どうなるんだろ?
0358nobodyさん2008/09/25(木) 05:29:20ID:???
何がどうなるんだろなのかわからないけどこういうこと?

$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);
0359nobodyさん2008/09/25(木) 06:08:13ID:???
>>358
この出力結果ってb dってなるのかな?
0360nobodyさん2008/09/25(木) 06:21:43ID:???
お前は何を言ってるんだ
■ このスレッドは過去ログ倉庫に格納されています