【PHP】質問スレッドpart23【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/10/05 17:36:38ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
そのままこのように書けばよいのですよ
$str = "this is $foo[bar]";
0344nobodyさん
04/10/13 00:01:07ID:???>>338の(2)もそうだけど、それでは24時間以上は調べられないから意味がない。
>>321では10から100000秒まで範囲という話だから、24時間以上の数値が入ることが
あり得る。
// 25.8μs
$s = $sec % 60;
$m = ($sec / 60) % 60;
$h = floor($sec / 3600);
"{$h}時{$m}分{$s}秒";
// 9.8μs
gmdate('H時i分s秒', $sec);
// 10.3μs
sprintf("%02d時%02d分%02d秒",$sec/3600,($sec/60)%60,$sec%60);
// 35.6μs(338と同実験により1割ほどこちらのほうが低速)
echo sprintf("%02d時%02d分%02d秒",date("H",$sec)-date("H",0),date("i",$sec),date("s",$sec));
調整しようと思ったがミスがあったので一番下から再度計算してください。
こちらの結論としては24時間分までしか計算できないものの、
gmdate('H時i分s秒', $sec);が一番高速。
0347nobodyさん
04/10/13 00:14:48ID:???>>343の方をお勧めしとく。
取り合えず{ }でくくれば良い。
他にも $str = 'this is ' . $foo['bar'];
という書き方もあり、速度的にはこっちの方が早いというデータをどっかで見た気がする
が、分かりやすさからいって{ }でくくるのが一番かと思う。
0348nobodyさん
04/10/13 00:29:46ID:???「スレ違い。elispスレに池」
あるいは
「a separete fileの仕様も出さずにどう答えろというのだ」
まあここに張り付いている連中にはelispなんぞ分からんっちゅうことはよく分かったろ?
// 7.9 μs 7.9 μs "this is $foo[bar]";
// 14.4μs 14.3μs "this is {$foo[bar]}";
// 8.1 μs 8.2 μs "this is {$foo['bar']}";
// 5.5 μs 5.6 μs 'this is ' . $foo['bar'];
0350nobodyさん
04/10/13 05:59:21ID:I9UFXdzG今、私2chの過去ログを保管するサイトを運営しているのですが、
スレの進行が結構速くて正直更新が大変です
それで、phpで、技術的には
この作業を全自動化することなんかはできますかね・・?
2chのスレ一覧を読み込み、そのスレだと思われるものを特定してログの取得を開始
↓
1001まで行ったらそれを鯖側に出力 同時に次スレのログの取得も開始
↓
出力されたスレへのリンクをhtmlに書き込む
こんな感じで・・・
Readだけだったら、2chは外部からの規制してませんし、いけそうな気がするんです
あ、「こういうPHPをください」っていってるわけではないので・・あくまでできるかどうかききたいんです
もしできるようでありましたら、ちょっと本買って本気でPHPの勉強しようかと思ってます
ちょっと来年あたりから現実が忙しくなるから、少しでも更新を楽にしようかと思いまして
ではよろしくおねがいします
0351nobodyさん
04/10/13 06:23:21ID:???出来るよ。
但し、php"だけ"では無理だった希ガス。
・phpだけでやる場合
→何かトリガーになるページを置いてそこにアクセスするたびにスクリプト実行
但し、タイムアウトになる可能性がある。(マニュアルにそうならない方法は書いてあるけど)
・そうでない場合
→cronが使えるならそっちの方が確実だしタイムアウトもない。
0352nobodyさん
04/10/13 09:19:32ID:???ログの取得を全自動にするつもりならPHPで作る意味はない。
Perl, Python, Rubyあたりでやるほうがいろいろな意味で楽。
それと過去ログ収集サイトはけっこうあるからどんな仕組みなのか
ひととおり見て回ったほうが吉。
0353nobodyさん
04/10/13 09:47:04ID:???普通FlashやSVGとの連携でやりくりしますよね?
0354nobodyさん
04/10/13 10:10:27ID:???0355250
04/10/13 10:40:33ID:???別に馬鹿ではないんじゃない?
0357nobodyさん
04/10/13 10:58:22ID:???鯖の制約やプログラミングの経験がどんなもんかわからねーと何ともイエネ。
Subject.txtを取得して適当な単語を含むDatを選んでローカルと比較、更新されてるか初物なら取得、
デコードしてHtml化して保存、1000ならHtmlも更新、程度なら超簡単。HTTPの知識がネックか。
データ取得しっかりやると面倒だけど、最悪 $data = file('thread url'); でOK。この手軽さは泣ける。
リスト化したり人手を偽装したり検索なんかの活用も考えてスレタイの変更にも耐えて
間違ったの取得したら削除して、Html化待ちならログインしてテンプレートエンジンつかって
コメント受け付けてレスアンカー書き換えてJavascriptでポップアップしたりimu.nu置換したり
Htmlに改行つけたり〜みたいなことやりだすと糞面倒。
あとread.cgiから読み出すのは公衆道徳上よろしくないし、Htmlをパースすんのは面倒くさいと思う。
datはtransfer/contentエンコしたものしか取れないとかphp以外に2chの特殊な仕様の知識も必要に。
0358nobodyさん
04/10/13 11:07:11ID:???カールと比べてアレだけ普及しているにもかかわらずだから救えない。ColdFusionは専用言語を除いて悪くない製品だが。
はい手を引くのが遅かった負け組みですが何か。
0359nobodyさん
04/10/13 11:15:13ID:???0360nobodyさん
04/10/13 13:21:56ID:???GDで円グラフとか折れ線グラフって描けます?
そもそもドロー描画できるんでしょうか?
0361nobodyさん
04/10/13 13:42:06ID:qHQqzIawif文やswitch文で一つずつ書く以外に簡単な方法ってないでしょうか?
0364nobodyさん
04/10/13 14:14:22ID:???0365nobodyさん
04/10/13 14:15:17ID:???0367nobodyさん
04/10/13 15:57:01ID:???0368nobodyさん
04/10/13 16:04:37ID:???変換元のエンコーディングが不明の場合は、どのような対応をとればいいでしょうか?
変換対象は複数の項目があり、
文字長が長いものと短いものがあります。
エンコーディングは、複数の項目間では一緒です。
自分で考えた方法ですが、
mb_detect_encoding()で長い項目からエンコーディングを取得し、
全ての項目をそのエンコーディング扱いで、
mb_convert_encoding()してやろうと思うのですが。
繋げられたみたいです。ありがとうございました。
調べたらPHP5でのmysql接続出来ない状況は
多いみたいでした。
私のサイトは30分ごとに取得作業を行ってる。
// 30分ごとに実行するプログラム
include_once(DIR . 'lib/2chpilot.phps');
$chp = new chpilot();
$chp->maxlog_get();
// 呼び出されるファイル
ttp://f9.aaacafe.ne.jp/~fcafe/fbox/lib/2chpilot.phps
// 中で呼び出されるHTTP接続ライブラリ
ttp://f9.aaacafe.ne.jp/~fcafe/fbox/lib/sock.phps
酷いプログラムだけど見てみるとよろし。参考までに。
0372nobodyさん
04/10/13 19:43:23ID:hDof3Q9hその一部分をちょっと可変(brタグとか入れる)して他のHTMLに出力するのって簡単??
なんか>>350に似てるけどスレ読むわけじゃないです
自分のサイトの中のHTML読んで、同じく自分のサイトの中のHTMLに出力したいです
0375340
04/10/13 20:02:13ID:???0376nobodyさん
04/10/13 20:06:23ID:hDof3Q9hまさかhtmlだけでもできるとかですか!?!?あqwせdrftgyふじこl
0377nobodyさん
04/10/13 20:07:19ID:???0378nobodyさん
04/10/13 20:46:58ID:???モジュール版PHPで使っていた「virtual」関数が、CGI版PHPでは
使えないと知りました。
CGI版PHPの場合だと、別途で動作しているCGI(Perl)を、例えば
「sample.php」内で実行させることは不可能でしょうか?
それともPHPを諦めてSSIにしてしまう方がいいのでしょうか?
0379nobodyさん
04/10/13 21:01:43ID:hDof3Q9hSSIって、読み込んだ部分を弄って出力できるんですか?
0380nobodyさん
04/10/13 21:09:08ID:wYSmj1/uちなみにPHPは一切しりません 1からです(´・ω:;.:...
0381軟式PHP
04/10/13 21:11:33ID:q2MkK+Af0382nobodyさん
04/10/13 21:13:18ID:???こちらをどうぞ。
http://pc5.2ch.net/test/read.cgi/php/985315574/l50
0383nobodyさん
04/10/13 21:43:38ID:???<input type="text" name="name" value="'. $_COKKIE["hoge"] .'" />
フォームの初期値に、クッキーの値が入った状態で表示されると思うんですが
この時点でクッキーの値は、サーバー←→クライアント間を渡ってますか?
0384nobodyさん
04/10/13 21:51:50ID:???0386383
04/10/13 22:29:38ID:???IE6でやりたかったんですが、クッキー値の表示がクライアント側だけで処理されてるなら
この時点ではSSLとか通さなくていいなー、という願望があったんですけど……
まあ、普通に渡ってますよね。すいません。
0387nobodyさん
04/10/13 22:36:17ID:???サーバーが、一旦クライアントのクッキーを取得してから、それごとブラウザに出力してるのか、
『ここに$COKKIE["hoge"]の値を入れろ』って命令だけをクライアントに出力してるのか聞きたかったのです。
質問がまとまってなくてすいません。
0388nobodyさん
04/10/13 23:15:07ID:cB7iGFRXすごく簡単なことだけど。
ブラウザに対してPHP言語で命令したところで、ブラウザが正しく解釈して動作するとでも思う??
HTTPヘッダの勉強も合わせてオススメしておきます。
0389nobodyさん
04/10/14 00:03:21ID:DAgLrERP0391nobodyさん
04/10/14 04:12:14ID:???0392nobodyさん
04/10/14 06:11:43ID:???【合法】【スクリプト】【PHP】【2ch】2chまとめサイト用、現在進行スレ自動リンク.zip Q0Wcfwt4o8 2,494 be17b15acfb4910cb1aab0225201f9ea
0393nobodyさん
04/10/14 10:07:39ID:O0i9cJSU$a="太郎";
$m="{$a}さん、こんにちは。";
print $m;
?>
これは、「太郎さん、こんにちは。」って表示されますよね。
この、$mの部分を別ファイルに書き出して、
m.txtとかにして、
<?php
$a="太郎";
$m=file("m.txt");
print $m[0];
?>
としても、うまくいきません。
「{$a}さん、こんにちは。」とそのまま表示されます。
これを、{$a}が変数に展開されるうまい方法はありませんか?
0394nobodyさん
04/10/14 10:19:54ID:???0397nobodyさん
04/10/14 11:26:05ID:???でくわしました。これは途中で自分が切り替わったりするんでしょうか?
0398397
04/10/14 11:27:07ID:???0399軟式PHP
04/10/14 11:34:46ID:???$a = "{$a}さん、こんにちは。";
より
$a = $a."さん、こんにちは。";
としてしまうよ。まぁ、どっちでもいいんだけど。
0400nobodyさん
04/10/14 11:41:56ID:???0401nobodyさん
04/10/14 12:08:20ID:???evalで出来ました。トンクス!
ちょっとエスケープする文字が多いのが
めんどっちい感じだけど。例も
そうなってるから、仕方ないね。
>>399
Smartyとかのテンプレートでやってるみたいに、
メッセージの記述とロジックの部分を分離
したいんですよ。
そうすれば、m.txtを書き換えるだけで、
「春ですね、{$a}さんはどこかへ行きましたか?」
とかに変更できるでしょ?
0402軟式PHP
04/10/14 13:01:34ID:???いや別にやりたいことがわからない訳じゃないよw
データ・ロジックの分離なんて基礎中の基礎だし。
コーディングの違いということです。まぁ、本当どっちでもいいことだから気にせず。
0404389
04/10/14 15:09:31ID:TTA2I0is0406nobodyさん
04/10/14 15:19:26ID:???つーかビュー側でEvalして変数展開ってすげー無駄だ罠。
コンパイルされてて処理があるならともかくエコーしてテキストを
取り出すだけって、、、そういうのもテンプレートって言っていいのかどうか。
>>398
つーことはpukiはphp5では動かんね。やはり無茶はよくない。
0407nobodyさん
04/10/14 15:31:48ID:???こういうのはsmartyの仕事じゃないと思われ
本来、piたるphpそのものの範疇かと
程度問題ですけども
>>406
2重処理くさくもあるが、viewでやってるとは限らない罠
0408nobodyさん
04/10/14 15:34:00ID:???単体でも簡易的なhttpdの機能があるからそう思ったんじゃないの?
「上」では無理。CGIを使った連携は…出来たっけ、アレ。
0409nobodyさん
04/10/14 16:42:23ID:???excuteMultipleで値を格納すると、値が文字化けしてしまうのですが、
queryで値を格納すると、文字化けせずに正常に実行できます。
他のスクリプトではこんな現象はなく、格納しようとしている文字列と
DBの文字コードは一致しています。
何か考えられる原因はあるでしょうか?
0412nobodyさん
04/10/14 17:25:04ID:???0414nobodyさん
04/10/14 17:42:38ID:???わざわざ無駄なことしなくてもいいのに
>>409
executeQueryメソッドが怪しい。何がどう化けてるのか知らんが
0415nobodyさん
04/10/14 18:20:08ID:???0416389
04/10/14 18:20:38ID:TTA2I0isCGIが動くみたいなのでそれならPHPもいけるかと
思ったのですが
0418nobodyさん
04/10/14 18:28:03ID:qGGw0aZU・lang/php4, www/mod_php4, www/php4-cgi ってどう違うの?
・とりあえず lang/php4 をインスコしたんだけど、"Premature end of script" って出るんですが・・AddType は書いた気がするし、php.iniも作った気がする。
FreeBSD 5.2.1-R, Apache 2.0.49, PHP 4.3.9 っぽいです。チェックポイントなど教えて下さい。
0420nobodyさん
04/10/14 19:13:07ID:???「CGIが動く」ならPHPも動くでしょ。それもCGI(のSAPIのPHPなら)なんだから
tomcatが動く環境でありながら、PHPが動かない環境は多分無い。
ビルド済みのバイナリが用意されてる/されてないはあるかも知れんが。
0423nobodyさん
04/10/14 20:47:49ID:???PEARパッケージのコードの話ですが、コンストラクタから別のメソッドを呼び
出すような場合に、エラー発生時はPEAR_Errorまたはそのサブクラスのインス
タンスをセットして返すという方法が、以前はよく使われていました。
その方法ではPHP5でエラーになるため、最近は使われないようになってきてい
ます。
0424nobodyさん
04/10/14 22:54:39ID:QAwUm/MO↑のような、blogで使われる日付を複数とって
どちらが新しいか?を比べたいのですが、
1文字1文字比較する以外の方法があるでしょうか?
javaで(int)2004-10-13T02:19:16+09:00みたいな。
0425nobodyさん
04/10/14 23:02:21ID:???あるよ
PHP: 日付・時刻関数 - Manual
http://jp2.php.net/manual/ja/ref.datetime.php
0426424
04/10/15 00:06:21ID:r1Bc5wszstrtotimeですね!
ちょー便利!
ありがとう。
0427nobodyさん
04/10/15 00:09:50ID:???煽りではなく、PHPのテンプレートエンジンだかを使う人って
自分の理解の浅さを理解したほうがいいですよね?
include()とか超々基本的な技法すら理解できてないから、
テンプレが有用だと思えてしまうということを気づいて欲しい。
規模による
私は出力コントロールを使ってスキン適用してる。
mod_layout使おうと思ったけど面倒で、
でもやっぱり分けれたほうが楽だからさ。
テンプレートエンジンは使ってないけど大まかにはわけてるよ。
プログラム部分とデザイン部分とで。
0430nobodyさん
04/10/15 01:30:24ID:???Module compiled with module API=20040412, debug=0, thread-safety=1
PHP compiled with module API=20020429, debug=0, thread-safety=1
These options need to match
in Unknown on line 0
↑こんなんでましたけど、何でしょう
0432nobodyさん
04/10/15 02:26:53ID:???ん〜、見たことないエラーだけど予想してみる。
モジュールを動的に組み込んでたりする場合に出そうな予感。
というわけで、動的に組み込んだモジュールをもう一回入れ直すべし!
あと、OSくらいは書いて欲しかった。
WindowsとLinuxとかでは設定の仕方が全然違うから。
すみません
OSはWindows
PEARをいじってたら出ました
PHP5です
0434nobodyさん
04/10/15 02:59:25ID:???0435ポルコ
04/10/15 12:07:20ID:FVcyWQqoポストグレーSQLを用いてサーバーからデータを取り出すプログラムを
作成してるのですが検索結果が一つのページに全部出てしまうので
10件づつ表示したいのですがどうもうまくいきません
仕様OSはリナックスのレッドハットです
一応PHP部を記しておきます
<?php
$name = "syusyoku";
$use = "postgres";
$con = pg_connect( "dbname=$name user=$use");
$d1 = "kigyoudata";
$d2 = "kyuujindata";
$se = "所在県";
$se2 = "会社コード";
$cheacka = 0;
$query = "SELECT * FROM \"$d1\" where \"$se\" like '%$_POST[ken]%'";
$rs = pg_query($con,$query);
$maxrows = pg_num_rows($rs);
$maxcols = pg_num_fields($rs);
$goukei = $maxrows;
//表示♪
echo("<P align=\"center\">");
echo("$_POST[ken]");
echo("について検索しました。");
echo("</p>");
0436ポルコ
04/10/15 12:12:02ID:FVcyWQqoecho("<P align=\"center\">");
echo("残念ながら当データーベースには該当の企業はありませんでした。");
echo("</p>");
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo("<P align=\"center\">");
echo("$maxrows");
echo("社の登録を発見しました。");
echo"</p>";
for ($row = 0; $row < $maxrows; $row++) {
$rowdata = pg_fetch_row($rs, $i);
$query2 = "SELECT * FROM \"$d2\" where \"$se2\" like '%$rowdata[0]'";
$rs2 = pg_query($con,$query2);
$rowdata2 = pg_fetch_row($rs2,$i);
if($rowdata2[25]==f){
0437ポルコ
04/10/15 12:17:20ID:FVcyWQqoecho"<TABLE BORDER=\"1\" WIDTH=\"700\">\n";
echo"<tr>";
if($cheacka==0){
echo"<td width=\"20\"></td>";
echo"<td width=\"80\">";
echo"会社コード";
echo"</td>";
echo"<td width=\"145\">";
echo"会社名";
echo"</td>";
echo"<td width=\"145\">";
echo"カイシャ名";
echo"</td>";
echo"<td width=\"200\">";
echo"ホームページ";
echo"</td>";
echo"</tr>";}
echo"<td width=\"20\"><input type=radio name=kensaku value=$rowdata[0]></td>";
0438ポルコ
04/10/15 12:18:28ID:FVcyWQqoecho("<td width=\"145\">".htmlspecialchars($rowdata[1])."</td>");
echo("<td width=\"145\">");
echo("$rowdata[2]");
echo("</td>");
if($rowdata[27]==NULL){
echo("<td width=\"200\">");
echo("登録されていません");
echo("</td>");
}else{
echo("<td width=\"200\">");
echo("<A href=\"$rowdata[27]\">");
echo("$rowdata[27]");
echo("</a>");
echo("</td>");}
echo("</tr>");
echo"</TABLE>";
$cheacka = $cheacka+1;}}}
0439ポルコ
04/10/15 12:19:53ID:FVcyWQqoif($maxrows==0){
}else{
echo("<P align=\"center\">");
echo("残念ながら今年は、求人がありませんでした。");
echo("</p>");}
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo"以上";
echo"$cheacka";
echo"件の求人があります。";
echo("<br><center><INPUT type=\"submit\" name=\"送信\" value=\"詳細検索\"></center></CENTER></FORM></BODY></HTML>");}
?>
長々とプログラムを貼って申し訳ありません。あと汚いソースで申し訳ないです
ご教授の方お願いいたします
0440nobodyさん
04/10/15 12:29:17ID:???Zend Studio 3.5 日本語版リリースですよ〜!
0441nobodyさん
04/10/15 12:33:03ID:iLe5NUwSosはfedracore2なんだけど
■ このスレッドは過去ログ倉庫に格納されています