【PHP】下らねぇ質問はここに書き込みやがれ 46
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/12(土) 16:43:57ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0321nobodyさん
2007/05/16(水) 04:55:24ID:???0322313
2007/05/16(水) 07:12:33ID:9TTx9/gyレスありがとうございます。
>大丈夫か?変数に入ってる値は計算されたあとの値だぞ
常識といわれるかもしれませんが、
こういうことは今まであまり意識したことがなかったので、
基礎プログラム力に欠けてるのかもしれません。
サンプルいじりながら勉強したのがまずかったかなぁorz
いろいろ基礎から勉強しなおしたいと思います。
0324nobodyさん
2007/05/16(水) 07:40:47ID:???これ嘘だよね?
$result = mysql_query('select * from table');
$result1 = $result;
ってやってもid受け渡しされるだけでしょ
こんなので丸々コピーされてたらえらいことになる
0325nobodyさん
2007/05/16(水) 08:02:38ID:???※たまには質問者も回答者になりたいんです
※長い目で見てやってください
^ o^
0326nobodyさん
2007/05/16(水) 08:53:56ID:ygtreCsOのように、関数名に!をつけてfalseを得たいのですが
この書き方が通用しない関数はありますか?
0327nobodyさん
2007/05/16(水) 09:14:03ID:???無いんじゃない?
>>322
誰だって初めは分からんよ。
プログラム力がある人って何だ。生まれたときからプログラムの仕組みについて把握してる人のことかよ。
皆本やらWebサイトで地道に学んできたんだよ。
ぐちぐち言ってないでいいからリンク先のPHPマニュアルでいいから読めよ。んで理解するよう努力しろ。
意味不明な言い訳してそれすら避けてる奴こそ軽蔑に値するわ。
0328nobodyさん
2007/05/16(水) 09:20:33ID:???Cの入門書かって1ページであきて
そんなおれだけどPHPの公式マニュアルの関数一覧以外のページは一通り通した。
おれにできたことは>>322にもできるよ
0329nobodyさん
2007/05/16(水) 10:31:07ID:s+XLyY4I自分自身のURLを取得するにはどうすればいいですか?
0331nobodyさん
2007/05/16(水) 10:34:43ID:???0332nobodyさん
2007/05/16(水) 10:42:41ID:???ありがとうございます
情報がかなり細切れにされていますが
絶対URLは、これらの値を組み合わせて作るしかないですか?
あとhttpかhttpsかの情報が入ってないようですが
どうすれば分かるのでしょうか
0333nobodyさん
2007/05/16(水) 10:55:35ID:???あとID消さないように
0334nobodyさん
2007/05/16(水) 11:22:37ID:s+XLyY4ISERVER_PROTOCOLというのがありました
ありがとうございました
0335nobodyさん
2007/05/16(水) 11:22:39ID:wGr5bjeW完全に行き詰まってしまったので書き込みさせていただきます
フォームに入力した項目をメールとFAXで受信したいのですが
メールでの受信までは確認できたのですが
FAXでの受信方法が今ひとつわかりません
検索したのですが何やらソフトが必要みたく
それもいっぱいあってどれを使ったらできるのかが
わかりません。
どなたか分かるかたいらっしゃるでしょうか??
ちなにみOSはXPです。
0336nobodyさん
2007/05/16(水) 12:12:14ID:wGr5bjeW完全に行き詰まってしまったので書き込みさせていただきます
フォームに入力した項目をメールとFAXで受信したいのですが
メールでの受信までは確認できたのですが
FAXでの受信方法が今ひとつわかりません
検索したのですが何やらソフトが必要みたく
それもいっぱいあってどれを使ったらできるのかが
わかりません。
どなたか分かるかたいらっしゃるでしょうか??
0337nobodyさん
2007/05/16(水) 12:21:08ID:???0338nobodyさん
2007/05/16(水) 12:24:48ID:???http://pc11.2ch.net/test/read.cgi/hp/1178272099/384
0340nobodyさん
2007/05/16(水) 12:30:22ID:???一体PHPとなんの関係があるのか問い質したい。
0341nobodyさん
2007/05/16(水) 13:25:20ID:???いっぱいあるのなら、どれでも良いじゃないか
フリーのやつだってあるんだから、試してみろ
GUIで文章を設定するようなやつは除外だぞ
0343nobodyさん
2007/05/16(水) 15:25:20ID:qm+GGeYHhttp://pc11.2ch.net/test/read.cgi/php/1169725490/417
制作板でも同じようなの見た希ガス
0346nobodyさん
2007/05/16(水) 16:18:51ID:???http://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.server
マニュアル嫁。
あと質問したいならID出せ。
0347nobodyさん
2007/05/16(水) 17:03:32ID:???マニュアルも糞もないだろ。httpsは結局後付のport番号で判定するしかない。
_SERVER変数にわたる「プロトコール」は、HTTP over SSLでしかない。つまりはHTTPであって
httpsではないんだよ。わかるか?
0348nobodyさん
2007/05/16(水) 17:06:12ID:???> 'HTTPS'
> スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。
>
> ISAPI を IIS で使用している場合は、HTTPS プロトコルを通さないでリクエストが行われたときの値は off となることに注意しましょう。
0349nobodyさん
2007/05/16(水) 17:08:28ID:???0350nobodyさん
2007/05/16(水) 17:27:05ID:???これだからマニュアルは読んどかないと。
0351nobodyさん
2007/05/16(水) 18:42:59ID:???0352nobodyさん
2007/05/16(水) 20:41:26ID:xTzSxSz1strstrとかで検索してやるほかになんかありますか?
0353352
2007/05/16(水) 20:42:48ID:xTzSxSz10354nobodyさん
2007/05/16(水) 20:49:05ID:???0355nobodyさん
2007/05/16(水) 20:56:14ID:???0356352
2007/05/16(水) 20:59:27ID:xTzSxSz1正規表現系で処理するしかない?
0357nobodyさん
2007/05/16(水) 21:03:04ID:???0358352
2007/05/16(水) 21:06:25ID:xTzSxSz10359nobodyさん
2007/05/16(水) 21:12:20ID:???0360352
2007/05/16(水) 21:16:13ID:xTzSxSz1ごめん結局rtrimでいいような設計に作り直したので質問終了で。
0361nobodyさん
2007/05/16(水) 21:30:59ID:???0362352
2007/05/16(水) 21:33:13ID:xTzSxSz10363nobodyさん
2007/05/16(水) 21:55:32ID:c3gVMJYw0365nobodyさん
2007/05/16(水) 22:01:19ID:???ペッパーランチは全店臨時休業するべき
0366nobodyさん
2007/05/16(水) 22:16:15ID:QKxTyLUD以下のスクリプトをshowList($cid)に適当な引数をつけて実行してるんですが、
DBに登録してあるデータが print_r($ctgAry)."<br><br>"; print "<br><br>".$ctgAry[0];
ともに帰ってきません。 $ctgAry は対応データ数分の要素を持つ連想配列には
なっているんですが、値が格納されてません。 なぜでしょう? どなたかお願いします。
<?php
class Category{
private $_cid; private $_cname; private $_img;
public function getCid(){return $this->_cid;}
public function getCname(){return $this->_cname;}
public function getImg(){return $this->_img;}
public function setCid($cid){$_cid = $cid;}
public function setCname($cname){$_cname = $cname;}
public function setImg($img){$_img = $img;}
//$cidをparentにもつ(子)カテゴリの一覧を表示
public static function showList($cid){
$ctgAry = array();
$db = new mysqli("localhost","root","pass","php5");
$rs = $db->query("select * from src_category where parent=".$cid);
while(($row = $rs->fetch_array(MYSQLI_ASSOC)) != FALSE){
$ctgObj = new Category;
$ctgObj -> setCid($row['cid']);
$ctgObj -> setCname($row['cname']);
$ctgObj -> setImg($row['img']);
$ctgAry[] = $ctgObj;
}
$db->close;
print_r($ctgAry)."<br><br>";//@
print "<br><br>".$ctgAry[0];//A
}
}
0367nobodyさん
2007/05/16(水) 22:18:48ID:???>対応データ数分
日本語おかしいよ
0368nobodyさん
2007/05/16(水) 22:21:32ID:???$this抜け?
public function setCid($cid){$_cid = $cid;}
public function setCname($cname){$_cname = $cname;}
public function setImg($img){$_img = $img;}
0369nobodyさん
2007/05/16(水) 22:31:26ID:???非常に読みにくい。
showListメソッドの返り値が○○であることを想定しているのですが
××が返ってきます。
$cfgAry配列にキーはセットされていますが値が入っていません。
原因が分からないので教えてください。
でおk。30点。
0370nobodyさん
2007/05/16(水) 22:39:25ID:AwoOmWos記入項目のたくさんある掲示板スクリプトはないでしょうか?
普通は名前、メアド、URL、本文程度ですが、この項目が5つとか6つとか
自由に増やしたりできるようなスクリプトです。
探すと以外になくて困り果てています。どうかお願い致します。
0371nobodyさん
2007/05/16(水) 22:42:25ID:???【CGI】こんなCGI探してますver.22
http://pc11.2ch.net/test/read.cgi/hp/1166794984/2-3
0372366
2007/05/16(水) 22:42:49ID:QKxTyLUD現在 print_r($ctgAry)."<br><br>";//@ の実行結果は以下が返ってきています
Array ( [0] => Category Object ( [_cid:private] => [_cname:private] => [_parent:private] => [_img:private] => )
[1] => Category Object ( [_cid:private] => [_cname:private] => [_parent:private] => [_img:private] => ) )
自分としては、以下のかたちになると思っていたので、なぜ失敗してるのか知りたいのです
Array ( [0] => Category Object ( [_cid:private] =>200 [_cname:private] =>つり [_parent:private] =>100 [_img:private] =>tsuri.jpg )
[1] => Category Object ( [_cid:private] =>300 [_cname:private] =>読書 [_parent:private] =>100 [_img:private] =>book.jpg ) )
どなたかよろしくお願いします
0374nobodyさん
2007/05/16(水) 22:53:19ID:???public function setCid($cid){$_cid = $cid;}
$_cid じゃなくて $this->_cid じゃないの
0376nobodyさん
2007/05/16(水) 23:28:19ID:M7GC2N8vpreg_matchを使って文字列の半角英数記号をチェックしています。
if (preg_match("/^[a-zA-Z0-9\s\(\)\_\-\+\!\?\.\,]+$/", $str)) {
echo ("Error");
}
基本的に問題無く動いているのですが、何故か文字列に”,”(カンマ)が含まれると
エラーとなりません。
ググってもそれっぽいのが見付かりません・・・orz
どうかよろしくお願いします。
0377nobodyさん
2007/05/16(水) 23:30:27ID:???0378366
2007/05/16(水) 23:36:31ID:QKxTyLUDすみません、>>368さんのアドバイスが良くわからなくて考えてました
できました! って言っても>>374さんの言うとおりにしただけですけど…
とにかく助かりました
ちょっと変数の参照方法と有効範囲を理解してないみたいなんで勉強しなおします
ありがとうございました
0379nobodyさん
2007/05/16(水) 23:41:32ID:???変数のスコープとかより
「オブジェクト指向」「クラス」「プロパティ」「メソッド」
について勉強したほうがいいと思うよ。
それら知らないでクラス使っても意味ないし。
0380376
2007/05/16(水) 23:48:24ID:M7GC2N8vさっそくの返事ありがとうございます。
カンマの前のエスケープを外して試してみましたが、
結果は変わりませんでした。
0381nobodyさん
2007/05/16(水) 23:50:22ID:???試してみた
$str = "sdavdszfba,bgdsdc";
if (preg_match("/^[a-zA-Z0-9\s\(\)\_\-\+\!\?\.\,]+$/", $str)) {
echo ("Error");
}
出力「Error」
0382366
2007/05/16(水) 23:55:06ID:QKxTyLUDですよねー
でも、勉強して本読んでもぴんと来ないんで、とりあえず作ってみるかという状況です
右往左往しながら身に着けたいと思います
ありがとうございました
0383376
2007/05/17(木) 00:28:06ID:CgLLPlaf試して頂き、ありがとうございます。
自分でもいろいろ調べてみたところ、
どうやらカンマを?と変換していることが原因でした。
(表示すると、カンマで表示されるので気が付きませんでした。)
そこでこの”?”をpreg_matchで引っ掛ける方法を探しましたが
見付かりませんでした。
どなたかよろしくお願いします。
0384nobodyさん
2007/05/17(木) 00:31:35ID:???0386376
2007/05/17(木) 00:42:05ID:CgLLPlafアドバイスありがとうございます。
383では?と変換なっていますが、カンマを半角の”&#44;”に変換していました。
384さんの言う通り、変換せず、preg_matchを行うことで解決しました。
皆さん、ありがとうございました!!
0387nobodyさん
2007/05/17(木) 01:46:20ID:???0388nobodyさん
2007/05/17(木) 01:50:18ID:???0389nobodyさん
2007/05/17(木) 02:43:19ID:fM6fqwb/以下のIF文を簡潔に書きたいのですが、どうすればよいでしょうか・・・。
if($id !=3 and $id !=4 and $id != 7 and $id !=10 ){
略
}
こんな感じでうま〜くまとめたいなと思っているのですが当然エラーになってしまいます。
if($id !=(3,4,7,10)){
}
ググろうにもどんな言葉で検索すればよいのか分からず・・・。
よろしくお願いします。
0390nobodyさん
2007/05/17(木) 03:17:54ID:???if(in_array($id, $os)) ){
}
0392389
2007/05/17(木) 03:36:48ID:fM6fqwb/in_arrayという関数があるのだね。
どうもありがとー!^^
0393nobodyさん
2007/05/17(木) 03:41:13ID:???case 3:
case 4:
case 7:
case 10:
break;
default:
...
}
簡潔というか 最初の書き方が一番素直で 何をしたいのかわかりやすい
(読みやすい)と思うけども
0394389
2007/05/17(木) 03:44:31ID:fM6fqwb/どうもありがとう。
これでもよかったのですが、今後アクションをしたくない$idが増えることもあってカンタンに数字を追加できるような仕組みにしたいなと思っていたのです。
ちょうど今、in_array使って解決しました!
0395nobodyさん
2007/05/17(木) 06:57:02ID:kwGc8Yxoコードに問題があって、たとえばforで無限ループしたりでCPU使用率が100%担った場合があります
そういうケースを防ぐためのphp.iniかapacheで設定ってありませんか?
環境はWinXP、PHP5.2..2、Apache2.0.59です。
0396nobodyさん
2007/05/17(木) 09:50:12ID:???基本的にPHPには無限ループ対策としてデフォルトで30秒のタイムアウトが設定されていたはず
任意で設定したいならプログラム内で
set_time_limit(秒数);
で設定できる
※ただしexecなどでシステムのセッション増やして負荷かける場合は別
0397nobodyさん
2007/05/17(木) 09:57:36ID:tXPJ1ejE多次元配列で使うには、ほとんど一度一次元に落とし込んでからしか使えないのでしょうか?
※女性のポイントの合計は?
array_sum($a) ... $a[0][women][piont]
二次元以上の特定キーの合計を求めたり…
0398nobodyさん
2007/05/17(木) 09:58:32ID:kwGc8YxoレンタルサーバでCGIなどでCPUに一秒以上負荷かけると処理を停止するようなことをどこかで見たので
1秒に設定しました
0400nobodyさん
2007/05/17(木) 10:13:51ID:???http://jp.php.net/manual/ja/function.array-walk-recursive.php
0403nobodyさん
2007/05/17(木) 16:11:58ID:M9OeXCs3配列$sampleAry に対して print_r($sampleAry); を実行したら以下の結果を得ました
Array ( [0] => Category Object ( [_cid:private] => 120 [_cname:private] => 読書 [_parent:private] => [_img:private] => c120.gif )
[1] => Category Object ( [_cid:private] => 110 [_cname:private] => つり [_parent:private] => [_img:private] => c110.gif ) )
この配列から 読書 という結果を得るには、どうしたらいいんでしょう?
print_r($sampleAry[0]["cname"];
としてもエラーが出るのですが…
0404nobodyさん
2007/05/17(木) 16:14:27ID:???0406nobodyさん
2007/05/17(木) 16:52:58ID:???print_r($sampleAry[0]->cname);
とかやってみて
多分
Fatal error: Cannot access private property 〜
オブジェクトに値を取得するメソッドが用意されてるはずだよ
0407nobodyさん
2007/05/17(木) 16:55:10ID:???したいのですがどうしたらいいのでしょうか?
>>403
echo $sampleAry["0"]->_cname; かな?
0410nobodyさん
2007/05/17(木) 17:55:45ID:LNZtxJHm何か方法はありませんか?
開いているファイルのディレクトリ名を取得しようと
dirname("./")を試しましたがダメでした。
インクルードファイルで取得したいので、
個別にファイル名を入力できません。
ファイル名を別に取得し、入力すれば良いかもしれませんが、
何かもっとスマートなやり方があるような気もします。
ご存知の方がいましたら、ご教授お願いします。
0411nobodyさん
2007/05/17(木) 18:05:05ID:???0413nobodyさん
2007/05/17(木) 18:32:08ID:LNZtxJHm>>411
すみません、記述不足でした。
カレントディレクトリ名とは別に、
一階層上のディレクトリ名も取得できるようにしたいのですが、
それも含めて方法はありませんか?
0415403
2007/05/17(木) 18:42:59ID:M9OeXCs3ありがとうございました
[0] => Category Object ( [_cid:private] => 120 [_cname:private] => 読書 [_parent:private] => [_img:private] => c120.gif )
は配列じゃないんですね オブジェクトになるんですね。理解できてない点がわかって良かったです。
あと、>>406-407 さんのやり方で変数にアクセスする方法もわかりました。
とても助かりました。ありがとう!
0416nobodyさん
2007/05/17(木) 19:00:52ID:???だとしたら無理じゃないか?includeは文字列とってきてevalしてるだけだと思うし
chdir("mydir");
include(."hoge.php");
//hoge.phpでdirname(getcwd());
chdir("../");
0417nobodyさん
2007/05/17(木) 19:18:57ID:LNZtxJHmgetcwd( );がまったく初見でしたので、
これについてもう少し勉強してから来ます。
ググッた感じでは何とかなりそうです。
ありがとうございました。
0418nobodyさん
2007/05/17(木) 19:52:40ID:LNZtxJHmあくまでディレクトリ名のみを抽出したいのです。
例えば
ttp://www2.2ch.net/test/2ch.html
で test というディレクトリ名のみを抽出するにはどうしたら良いでしょうか?
現時点で思いつく方法は
dirname(getcwd()); で抽出した
ttp://www2.2ch.net/testを
explodeを使い「/」指定で削り取るというものですが、
これが最も簡潔な方法でしょうか?
0419nobodyさん
2007/05/17(木) 20:04:26ID:???■ このスレッドは過去ログ倉庫に格納されています