【PHP】下らねぇ質問はここに書き込みやがれ 70
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/25(水) 10:14:08ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0213nobodyさん
2008/06/30(月) 18:00:50ID:???0214nobodyさん
2008/06/30(月) 18:15:19ID:LUnLRZ5m0215nobodyさん
2008/06/30(月) 18:28:19ID:???2.ランダムで1個選択
3.飛ぶ
0216208
2008/06/30(月) 18:45:53ID:???まだSQLの知識が薄く、照合順序とか多すぎてよくわからないので、理解に時間がかかりそうですが……。
とりあえずは、SET NAMES は使わずに mysqli_set_charset なり mysql_set_charset なりのAPIレベルのもので、設定することにして、
SQLの知識をある程度蓄えてから、対策を練ることにします。
お早い回答、ありがとうございました。
# でも、持ってる参考書とか読んでも、文字コードの設定は SET NAMES...
0217nobodyさん
2008/06/30(月) 18:56:15ID:???0218nobodyさん
2008/06/30(月) 19:19:20ID:???0219nobodyさん
2008/06/30(月) 19:25:18ID:???案件の1つにPHPが入ってくるというのはあるが
だいたい普段は.他の言語でWeb以外のことをやっていたりする
つまり一緒だ
プロジェクトに遅れが出れば残業も休日出勤もあるし
そもそも早く終わったからといってノルマ達成で帰っていいよというわけにはいかない
やることがなければ自習になるが普通は何かしら手伝ったりすることになる
PHP専門でやってるような会社はないに等しい
大学生のベンチャーならありえるが
そういうところも将来的にはPHPのみってことはなくなってくる
まぁそんな都合のよい仕事はないので諦めてください
給料は都会のバイト並でよければ地方で探せばまったりな会社あるかもね
0221nobodyさん
2008/06/30(月) 19:59:29ID:???0222nobodyさん
2008/06/30(月) 20:05:31ID:Eb0PY41u意外にサンプル少ないんで泣いてまつ
書籍追加(確認窓もほすぃ
編集
削除
検索
モヌヌメの書籍、webあったらおしえて〜
apache2
php5
mysql5
linux
0223nobodyさん
2008/06/30(月) 20:09:16ID:???0224nobodyさん
2008/06/30(月) 20:20:34ID:???何でだろうね?
小さいサイズのテキストファイル
Content-Transfer-Encoding指定なし
Content-Length指定なし
readfile($filepath);
だと開けた。
0227nobodyさん
2008/06/30(月) 23:08:40ID:???たしかにこれはそのままだ〜!
ってか書籍スレもあったのねw
0228nobodyさん
2008/07/01(火) 00:35:17ID:A4l+wdTUHTMLの前に$textfile="todo.txt"; として
書いてるんですが
require($textfile)で呼び込むと
todo.txtは呼んでるがそのままソースが全部出てきてしまいます
<HTML>
<HEAD>
<BODY>
内容・・・・
</HTML>
みたいな感じです。PHPの設定なんでしょうか?
0229nobodyさん
2008/07/01(火) 00:36:43ID:???0230228
2008/07/01(火) 00:37:45ID:A4l+wdTU勘違いしてました・・・
癖でTODOリストなのに・・・HTMLで書いてしまってました
申し訳ありません・・・
0231nobodyさん
2008/07/01(火) 00:39:30ID:???0232228
2008/07/01(火) 00:45:06ID:???テキストエリアにtodo.txtの編集書き込みが出来るようなソースを
書いていたんですが、todo.txtはテキストなのに
HTML文章で書いてしまっていただけです
HTMLで書いてたからタグが出てきたので気づいて消したら普通に
文章だけ表示されました。すいません
0233nobodyさん
2008/07/01(火) 14:51:09ID:???test.php?test
という形式で値の受け渡しをしているのを見かけるのですが
どうすれば受け取れるのでしょうか?
0234nobodyさん
2008/07/01(火) 14:56:17ID:???0236nobodyさん
2008/07/01(火) 16:03:57ID:???これってバグ??
0237nobodyさん
2008/07/01(火) 16:17:22ID:???原因不明のメモリーエラーで落ちる。
MySQL使った時、それで原因が特定できず大変な目にあった。
preparedを使いたいなら、自分で実装してくれ。それくらい簡単だろ?
0239nobodyさん
2008/07/01(火) 16:27:58ID:???236ではないが、マジか。
この前使ってみて使いやすかったから、今度からこれ使おう、とか思ってたのに。
まだ、取れてないの? そのバグ。
0241nobodyさん
2008/07/01(火) 17:09:30ID:???バージョンは、5.1.6
WindowsXP、BSD6.2の両方で使って、どちらでも落ちた。
起動してから時間が経つと、突然DBへ接続できなくなる。
再起動すると直る。永続的コネクションを利用しても利用しなくても落ちる。
で、同じ構成でphp標準のmySQL関数でやったら直った。
0242nobodyさん
2008/07/01(火) 17:57:28ID:???5.2.1でprepareの無限ループバグをfixedってあるけど、使うSQLによって発生するんかね
0243241
2008/07/01(火) 19:06:47ID:???参照するとデータがかえってこない。更新すると失敗する。っていう現象。
何回もデータが可笑しいのかと確認しちゃって原因究明にすごい時間がかかった。
速度が上がったわけでもないし、プリペアードのためだけだったから、すぐに標準関数に変えた。
それ以内何も起こらず、DBは連続稼働78日目。
0244nobodyさん
2008/07/01(火) 19:26:12ID:r/sMGUKq私のシステムは、データベースへ接続するクラスを用意していまして、
あとは、各業務クラスに以下のようなコードを書いています。
$sql = "INSERT INTO ...";
$databaseClass->($sql);
あちらこちらの業務クラスに生のSQLが書いてあります。
抽象的なご質問ですが、このような実装をどう思いますか?
市販されている解説本を読むと、テーブル毎にデータベース接続用のクラスを分けろと
書いているものもあるのですが、それだと複数のテーブルをjoinする場合、
どちらのクラスに入れるべきか迷うので、そのような実装はしていませんでした。
結構、正規化しているテーブルが多いので、joinするSQLが少なくありません。
データーベースに関する良いクラス設計指針があればアドバイスお願いします。
0245nobodyさん
2008/07/01(火) 19:37:44ID:???joinしてるSQLを発行するクラスは業務毎に纏めてクラスを分けてるな、俺は
業務モデルから業務DAOとテーブルDAOを呼ぶ感じで
0246nobodyさん
2008/07/01(火) 22:52:13ID:ZeCzXD4I普通のhtmlにアクセスしたら認証なんてないのに
0247nobodyさん
2008/07/01(火) 23:45:17ID:FRuokrT4\1000という表示がIEとSafariで バックスラッシュ+1000 になってしまいます
\部分はSQLから引き出してるのではなく、PHPに直書きしてます
winXP、apache2、PHP5.2.3でUTF8を使っています どう対応すればいいでしょう?
アドバイスお願いします
0248nobodyさん
2008/07/01(火) 23:58:57ID:???PHPはブラウザに依存しないサーバサイド言語で
すべて同じ結果が得られるようになっている
ブラウザによって表示が違うなどの不具合は
PHPとは関係ない
バックスラッシュになるのはブラウザの言語指定がおかしいからとか
そういったことが要因
\ではなく文字参照&yen;(&は半角で)で出力するなど工夫すべし
0249nobodyさん
2008/07/02(水) 00:42:01ID:???エラーが起きる最小限のソースを。
>>241
5.2.0から5.2.6でPDOに関する数十ものバグが修正されているし、MySQLでおきたエラーがSQLiteで起こるとは限らない。
0250nobodyさん
2008/07/02(水) 00:45:28ID:???そんな情報どうして知っているの?
関係者?それとも逆コンパイルしてソースをcompareしたとか???
0251nobodyさん
2008/07/02(水) 00:55:51ID:???0252nobodyさん
2008/07/02(水) 00:58:37ID:???0253nobodyさん
2008/07/02(水) 02:09:08ID:TfVbJDoGありがとう! 感謝します!
0256200
2008/07/02(水) 10:40:54ID:???でできました。
http://jp2.php.net/manual/ja/function.readfile.php#47408
0257236
2008/07/02(水) 10:42:53ID:???コマンドラインより、a.phpを実行後すぐに別端末からb.phpを実行する。
b.phpにおいてbeginTransaction();をコメントインすると、
PDO::ATTR_TIMEOUTが無効になる。
と、まぁこんなかんじです。
a.php ---------------
<?php
$pdo = new PDO('sqlite:a.db');
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
$pdo->beginTransaction();
$pdo->exec("insert into a(i) values(5)");
sleep(100);
$pdo->rollBack();
?>
b.php ---------------
<?php
$pdo = new PDO('sqlite:a.db');
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
//$pdo->beginTransaction();
$sth = $pdo->prepare("insert into a(i) values(10)");
if (!$sth->execute()) {
var_dump($sth->errorInfo());
}
//$pdo->rollBack();
?>
0258nobodyさん
2008/07/02(水) 10:47:24ID:???0259nobodyさん
2008/07/02(水) 11:42:57ID:???>sleep(100);
ここは笑うところか
0260236
2008/07/02(水) 11:56:55ID:???う〜ん、そういわれると仕様通りなのかなぁ
でも、トランザクションを開始しないときは、ちゃんと5秒待機するんだよな
sqlite_busy_timeout()と同じように動作させたいだけなんだが・・・
>>259
ソース見てわからないなら、笑ってたらよいと思いますよ
0261nobodyさん
2008/07/02(水) 11:59:11ID:???0262nobodyさん
2008/07/02(水) 12:05:15ID:LR4oDanJfunction array_collect($key, $array) {
$list = array();
foreach ($array as $arr) {
$list[] = $arr[$key];
}
return $list;
}
のような関数が標準であったりしませんか?
0263nobodyさん
2008/07/02(水) 12:06:18ID:???0265nobodyさん
2008/07/02(水) 15:20:48ID:???<html>
<head>
<title>じゃんけんぽん!</title>
<script type="text/javascript" language="javascript">
<!--
function Janken()
{
alert("あなたの負けです!");
}
-->
</script>
</head>
<body>
<input type="button" value="グー!" onclick="Janken()" />
<input type="button" value="チョキ!" onclick="Janken()" />
<input type="button" value="パー!" onclick="Janken()" />
</body>
</html>
0266nobodyさん
2008/07/02(水) 15:32:33ID:???0268nobodyさん
2008/07/02(水) 16:06:21ID:???○アルゴニズム
0270nobodyさん
2008/07/02(水) 17:18:28ID:YKp2VoP0|
+-/admin <- 要認証
|
+-/form
|
form.php
こういうディレクトリ構造になっているところに、
/admin以下にBASIC認証やDigeset認証をかけました。
認証されていないform.phpから、認証がいるadminディレクトリ以下のファイルに書き込むことは可能ですか?
試してみるとOKだったのですが、もしかして事前に自分で認証してしまってそれで通ってしまったのかな?
と不安になったので質問しました。
0271nobodyさん
2008/07/02(水) 17:22:13ID:???影響するのはパーミッションですね。
0272nobodyさん
2008/07/02(水) 17:41:28ID:l+FlpTuRhttp://localhost/index.html
<img src="http://example.com/counter.php" />
PHP側でリファラを取得すると、リファラが「http://localhost/index.html」になってしまいます。
直接PHPを埋め込まないとダメなのでしょうか・・・?
0273nobodyさん
2008/07/02(水) 17:51:45ID:???これでどう?
<img src="http://example.com/counter.php?ref=$_SERVER['HTTP_REFERER']" />
0274nobodyさん
2008/07/02(水) 17:53:53ID:l+FlpTuRそれって「$_SERVER['HTTP_REFERER']」という文字列を渡してるから意味なくね?
0275nobodyさん
2008/07/02(水) 17:59:20ID:???0276nobodyさん
2008/07/02(水) 18:00:03ID:???0277nobodyさん
2008/07/02(水) 18:22:59ID:???∩___∩
| ノ ヽ/⌒)
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/
.( ヽ |∪| /
\ ヽノ /
/ /
| _つ /
| /UJ\ \
| / ) )
∪ ( \
\_)
0279nobodyさん
2008/07/02(水) 19:40:20ID:???phpなのか
0280nobodyさん
2008/07/02(水) 19:55:08ID:???JavaScriptが使える条件になるがJavaScriptで取って渡す。
0281nobodyさん
2008/07/02(水) 22:07:13ID:???データベースと接続して、文字列操作するだけの仕事に尽きるのですが、
phpというかwebの仕事って、みんなこんな単調な仕事なのでしょうか?
もっと、特許がとれる位のアルゴリズムを考えるのが、
プログラマーの仕事だと思っていたので、
仕事に対するマンネリ感が積もっています。
大学で専攻した知識もほとんど役に立ちませんし、がっかりです。
0282nobodyさん
2008/07/02(水) 22:08:42ID:???0284nobodyさん
2008/07/02(水) 22:28:36ID:???早く独立して会社おこしてphpで特許を取れるアルゴリズムを開発しなよ
仕事を貰ってる立場で、しかもどうせ自分で営業した案件じゃないんだろ?
それでがっかりとか、いい身分ですなあ
0285nobodyさん
2008/07/02(水) 22:29:16ID:???0286nobodyさん
2008/07/02(水) 22:31:07ID:???待って与えられた仕事してたら何時の間にか特許取れてたなんてことない
0287nobodyさん
2008/07/02(水) 22:34:58ID:???0288nobodyさん
2008/07/02(水) 22:35:57ID:???で、特許申請に金かかったが誰も使ってくれない。
0289nobodyさん
2008/07/02(水) 22:41:11ID:???0290nobodyさん
2008/07/02(水) 22:50:56ID:???うちの会社の上司と大して変わらないご意見ばかりでした。
思うに、言語のような言語の壁がなく、労働集約型のプログラマーの仕事は、
数年後にはほとんど安い外国の労働市場に持って行かれるのではないでしょうか?
職業としてプログラマーとして従事している方は、もう少し向学心をお持ちになられた方がいいと思います。
少なくても、生産資源が乏しく技術を売りするしか世界で存在価値を示せない日本が、
このような低付加価値の仕事ばかりをしていたら、ますます国力が衰えていくだけです。
0291nobodyさん
2008/07/02(水) 22:53:06ID:???0292nobodyさん
2008/07/02(水) 22:56:28ID:???スレ違いなので、というより板違いなので仕事の愚痴は別板でお願いします。
0293nobodyさん
2008/07/02(水) 22:57:41ID:???0295nobodyさん
2008/07/02(水) 23:09:19ID:???特許料もらえるまで赤字だから研究・特許なんてそうそう許可できん。
いい特許アイデアできたら上司と喧嘩してでも予算とれ
0296nobodyさん
2008/07/02(水) 23:09:19ID:???おチンチンびろーん
∩___∩
| ノ ヽ/⌒)
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/
.( ヽ |∪| /
\ ヽノ /
/ /
| _つ /
| /UJ\ \
| / ) )
∪ ( \
\_)
0297nobodyさん
2008/07/02(水) 23:10:36ID:???0298nobodyさん
2008/07/02(水) 23:30:38ID:???見てる世界狭すぎ。
え、あれ?釣りなの?w
0299nobodyさん
2008/07/02(水) 23:36:45ID:???0300nobodyさん
2008/07/03(木) 04:37:49ID:???当たり前だが営利企業は斬新だろうが普通だろうが金になる事が正義
0301nobodyさん
2008/07/03(木) 14:31:17ID:3X5/4UgX複数のディレクトリーがあってその中には複数のhtmlファイルが入っています。
複数のhtmlのそれぞれの更新日時を調べて更新日時順で
ファイル名・更新日時・ページタイトル を一覧で出すにはどんな流れで書いていけばいいんでしょうか?
全ファイルの一覧や上位10件とかもあればなお良いのですが。
0303nobodyさん
2008/07/03(木) 15:09:10ID:???readdir
ディレクトリだったら再帰
ファイルだったら必要な情報を調べる。配列にでも格納
次のファイルへ
全部調べたら好きなように加工
0304nobodyさん
2008/07/03(木) 15:16:00ID:3X5/4UgX各ファイルの更新日時・URL・ページタイトルなど必要な情報は個別に取得できていて
すでにsitemapとしてgoogleに登録してるのですが、
それを更新日時順に並べるのが出来ていない状況です。
更新日時とファイル名の関連付け?がどうすれば出来るのかって事でしょうか。
0305nobodyさん
2008/07/03(木) 15:17:34ID:???0306nobodyさん
2008/07/03(木) 15:30:45ID:???$dirurl[] = '../test2/';
foreach($dirurl as $key =>$value){
$dir = @opendir($value);
while($file = @readdir($dir)) {
if (!is_dir($file)){
@include_once($value.$file);
if($sitemap_ok != '1') continue;
$pegedata = explode("." , $value.$file);
$lastupdate = @date("Y-m-d\TH:i:s\+09:00",@filemtime($value.$file));
$sitemaps = <<<_EOD_
<url>
<loc>http://$SERVER_NAME$pegedata[2].html</loc>
<priority>$priority</priority>
<changefreq>$changefreq</changefreq>
<lastmod>$lastupdate</lastmod>
</url>
_EOD_;
echo $sitemaps;}}
closedir($dir);}
今こんな感じです。それぞれ必要な内容は取り出せているのですが、これを更新日時順で並ばせたいと思っています。
arsort($xxx,SORT_NUMERIC);などで更新日時順で並べれる事は分かるのですが、どこをどうすればいいのやら…
もう1ど最初から作り直した方がいいでのでしょうか。
0308nobodyさん
2008/07/03(木) 15:40:30ID:???DBすか!やっぱりその方がいいんでしょうね。
将来の事もあるのでsqlを少し勉強した方がよさそうですね。
あまり長くなるのも迷惑なので勉強して出直してきます。失礼しました。
0310nobodyさん
2008/07/03(木) 15:49:46ID:???たとえばarsort使いたいなら
$array_nanika[更新時間unix_time] = ファイル名;
みたいな配列を一度作って、arsort。
ただコレだと同じ時間に更新されたファイルがあるとダメだからもう一工夫は要るね。
なんにせよ一度配列に収めろってことです
0311nobodyさん
2008/07/03(木) 18:51:15ID:0wf3u7xU引数のチェックに失敗したときはクラスの作成自体を中止したい場合ってどうすればいいんですかね?
class hoge{
public function __construct($fuga){
if(!$fugaのちぇっく){
//ここで自分自身を破棄?
return false;
}
〜
}
みたいな
0312nobodyさん
2008/07/03(木) 19:05:16ID:???まあ例外投げるんじゃね
■ このスレッドは過去ログ倉庫に格納されています