【PHP】下らねぇ質問はここに書き込みやがれ 44
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2007/04/12(木) 16:54:47ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0885nobodyさん
2007/04/25(水) 16:55:40ID:j8qAcKjI0888nobodyさん
2007/04/25(水) 17:26:19ID:???http://pc11.2ch.net/test/read.cgi/hosting/1154825445/
好きに評価したらいい
俺は絶対に遠慮する鯖です
0890nobodyさん
2007/04/25(水) 18:08:21ID:bcYDhRpq0892nobodyさん
2007/04/25(水) 18:50:52ID:???スタッフ募集ここんとこずっとかけてないか?
激安サーバーで給料安いから、最近言われるITの3K化の代表格みたいなんじゃないか?
ただ、あなたも知らなかったように、まだマイナーだから負荷は軽いんじゃない?
メールもやってるが、メジャーサイトへのメアド登録でフリーメアドとして弾かれなかった。
それだけマイナー。
0893nobodyさん
2007/04/25(水) 19:48:06ID:???かもんムムキチい
0895nobodyさん
2007/04/25(水) 19:52:29ID:???ドメスレ荒らしのキチガイ
謝れや!
0896nobodyさん
2007/04/25(水) 19:56:06ID:???必ず見つけ出してやる
0897nobodyさん
2007/04/25(水) 20:02:11ID:???0898nobodyさん
2007/04/25(水) 20:31:24ID:???0899nobodyさん
2007/04/25(水) 21:00:09ID:IXKwV2TH以下のようなPHPスクリプトを作りたいと思ってます。
@PHPで、あるシェルスクリプトを実行させる。
Aシェルスクリプトを実行すると、データテキストが作成される。
Bデータテキストの内容をPHPで取り込み、データの内容によって、
OK / NG等の判定を行う。
この手順のAで作成されるデータテキストなのですが、
実際には作成されるまでに、20〜30秒ほど時間が掛かります。
直ぐにBを行うと、不完全な状態のデータテキストを読んでしまうのですが、
PHPで『ファイルが生成されるまで待つ』といった命令や関数等はありますでしょうか。
ご助言よろしくお願いいたします。
0900nobodyさん
2007/04/25(水) 21:01:11ID:???0902nobodyさん
2007/04/25(水) 21:34:24ID:Hk5iwc7Fレスありがとう〜
不眠続きで今起床しました。
これからやってみます!
0903nobodyさん
2007/04/25(水) 21:55:58ID:???Aが完了するまでシェルスクリプト自身がブロックするように、
(シェルスクリプト内でバックグラウンドプロセスを立ち上げないように、)
シェルスクリプトを工夫するほうが簡単確実。
無理ならPHPでsleepとfile_existsをループ。
0904nobodyさん
2007/04/25(水) 22:15:02ID:ooT1ogQPPEARのXML_Tree使って
拡張子がphpのXMLファイル作ったんだが
そこからどうやって読み込めばいいのかわからんorz
$xml = new DOMDocument;
$xml->load('collection.php');
$xsl = new DOMDocument;
$xsl->load('collection.xsl');
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
0905nobodyさん
2007/04/25(水) 22:22:46ID:ooT1ogQPつまりは拡張子phpのファイルをどうやってxmlに変換するかってことです。
0906nobodyさん
2007/04/25(水) 23:31:08ID:ckD8GJA9.htaccess
RewriteEngine on
RewriteRule ^/([0-9A-Za-z)]+)\.html$ /index.php?hoge=$1[L]
http://xxx.jp/index.php
<?php
print $_GET['hoge'];
?>
としてブラウザーへ http://xxx.jp/hello.html としても
404が戻ってきます。
どこを確認すればいいでしょうか?
0907nobodyさん
2007/04/25(水) 23:42:59ID:0HmGKMgnやっぱり最大限安全な順番を採るしかないんですか?
0908nobodyさん
2007/04/25(水) 23:53:02ID:???httpから書けばできると思います、強引で汚いですけど
>>906
confでモジュール読み込んでしてます?
あと[L]の前に半角スペース要りませんでしたっけ
またRewriteRule のfirst argは.htaccessのpathですが
second arg はベースが指定してない場合はdocument root からのpathです
0909nobodyさん
2007/04/25(水) 23:56:03ID:???確認した所必要ないですね
0910nobodyさん
2007/04/26(木) 00:06:50ID:???http://jp.php.net/manual/ja/ref.sem.php
セマフォ
Windows環境も対応したいなら原始的にロックファイル作って。
0912nobodyさん
2007/04/26(木) 00:29:33ID:???それとも、もともと皆がccessって使ってるのか!?
0913nobodyさん
2007/04/26(木) 00:30:47ID:???文字列を、指定した文字で区切り、配列に分割する
関数の名前は何でしたでしょうか・・・
0916906
2007/04/26(木) 00:47:15ID:b54Zcwq0/ が余計だったようです・・・
詰まってて簡単な事も見逃していたようです。
表示されてわかったのですが、[L]の前には半角スペースは必要でした。
ない場合は、表示された「hello[L]になるようです。
ほんとうに助かりました!
0918848
2007/04/26(木) 01:54:55ID:fEqE9au7すみません。
考えてみたのですが、まったく理解できません・・・
もう少し噛み砕いて教えていただけないでしょうか?
0001の部分は0001.phpとしてファイルを作ってあります。
例の0002は現在作成していないファイルということになります。
index.php?hoge=0001 はすでに0001.phpとしてファイルがあるのでそのまま表示
index.php?hoge=0002や中途半端なアドレスの
index.php?hoge=や
index.php
は403 404を表示したいのです。
何度もすみませんがよろしくお願いします。
0919nobodyさん
2007/04/26(木) 02:00:58ID:g6GrkNsNinclude("0001.php");
}else{
header("Location:http://qawsedrftgyhujikol/");
}
0920nobodyさん
2007/04/26(木) 02:03:35ID:???すごく噛み砕いてソースの具体例まで出してくれたのが850だと思うが。
理解できないならどこが理解できないか言ってくれないとこっちも全く理解できないんですよ。
0923848
2007/04/26(木) 02:25:03ID:fEqE9au7やってみようとしたところ、鯖の緊急メンテに入ってしまいました。
数時間のメンテらしいのでメンテ明けにやってみます。
0924nobodyさん
2007/04/26(木) 02:48:03ID:???0925848
2007/04/26(木) 04:34:29ID:fEqE9au7現在index.php には
<?php
$GET_PAGE=$_GET['hoge'];
if(@fopen($GET_PAGE.".php", "r")){
include($GET_PAGE.".php");
}else{
header("HTTP/1.0 404 Not Found", true, 404);
?>
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<p>404 Not Found</p>
</body>
</html>
<?php
exit;
}
としたところ、
index.php?hoge=0001では正常に
index.php?hoge=0002やindex.php?ho などでは
そのアドレスのままページには「404 Not Found」と書かれたページが表示されるようになりました。
ここでさらに踏み込んで、現在自前でエラードキュメントをphpで作っておいてあるのですが、
index.php?hoge=0002やindex.php?ho の場合にそのエラードキュメントで表示するようには出来ないものでしょうか?
上記htmlの部分へ同じようなhtmlを書けばいいのかもしれませんが、せっかくなのでphpで表示したいのですが。
また上の書き方で何か問題はないでしょうか?fopenしてるので、閉じないといけないかもしれませんしもっとスマートは方法とかありそうですが。
0926nobodyさん
2007/04/26(木) 04:51:20ID:???まずは自分で調べるなり考えろ
あとレン鯖で実験するな
> if(@fopen($GET_PAGE.".php", "r")){
このままでも閉じる必要は無い
is_file使えば見やすい
> エラードキュメントで表示するようには出来ないものでしょうか
.htaccess 404
0927848
2007/04/26(木) 05:09:41ID:fEqE9au7レスありがとう。
fopenで閉じなくても問題ないと言うことですのでそのままにしておきます。
またis_fileの方がファイルがそうではないかと言う事みたいなので、is_fileに変更しました。
現在の.htaccessでは、
ErrorDocument 401 /library/error/error.php
ErrorDocument 403 /library/error/error.php
ErrorDocument 404 /library/error/error.php
ErrorDocument 500 /library/error/error.php
としていますが、それでも、
index.php?hoge=0002やindex.php?hogeなのでは、
うまくerror.phpが動作してないようです。
0928nobodyさん
2007/04/26(木) 06:41:01ID:???}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
か
}else{
Location("http://自分のサーバの存在しないURL");
exit;
}
0929848
2007/04/26(木) 07:28:15ID:fEqE9au7何度も申し訳ありません。
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
を試したところ、200が自前error.phpから戻ってきました。また
Location("http://自分のサーバの存在しないURL");
だと問題なくエラー表示されるのですが、アドレスが変わってしまうで自分がやりたいこととは、
少し外れてしまいます。
あまりスレを消費するのもあれなので、この辺で失礼します。
かなり勉強になりました。
レスを頂いた方ありがとうございました!
0930nobodyさん
2007/04/26(木) 10:44:47ID:???0931nobodyさん
2007/04/26(木) 12:15:12ID:MU7hy9Ys参考にしている本のサンプルコードに
while($false !== ($entry = $d->$read())) {
(中略)
}
というコードが出てきました。
これはどういう意味でしょうか?
特に$d->$read()この「->」の意味が分かりません。
どなたかお分かりになるかた、教えてください。
0932nobodyさん
2007/04/26(木) 12:20:49ID:???/⌒ヽ) now loading ...
i三 ∪
〜三 |
(/~∪
三三
三三
三三
三三
三三
0935nobodyさん
2007/04/26(木) 12:48:32ID:???==より===で比較するほうが場合によっては処理が早くなったりするのかね
0936nobodyさん
2007/04/26(木) 12:52:50ID:???0938nobodyさん
2007/04/26(木) 12:53:39ID:???0939931
2007/04/26(木) 13:00:30ID:MU7hy9Ysレスありがとうございます。
クラス内で使用することがあることは知っていたのですが、
そのサンプルコードの中には1度もクラスが書かれていません。
ぐぐったところグローバル変数にも関係するようなのですが、
筋としてはそちらっぽいです。
もう少し調べます。ありがとうございます。
0940nobodyさん
2007/04/26(木) 13:04:16ID:???例えばこんなの
http://jp.php.net/manual/ja/class.dir.php
0941nobodyさん
2007/04/26(木) 13:05:36ID:???0942nobodyさん
2007/04/26(木) 13:13:53ID:???===による厳密な比較ってPHPだけ?
他の言語では==で厳密に比較されるが一般的なのかしら
0943nobodyさん
2007/04/26(木) 13:30:51ID:???0944nobodyさん
2007/04/26(木) 13:31:30ID:???0945nobodyさん
2007/04/26(木) 13:39:50ID:???0946nobodyさん
2007/04/26(木) 13:42:22ID:???0947nobodyさん
2007/04/26(木) 13:57:49ID:???xdebugかmicrotime()使かって10秒程度のループを数回やった記憶
0948nobodyさん
2007/04/26(木) 14:02:46ID:???0949nobodyさん
2007/04/26(木) 14:08:33ID:???0950nobodyさん
2007/04/26(木) 14:20:34ID:???あまりにレベルの低い回答者のせいで質問者が不憫に思えた時なんか。
あ、雑談という体じゃなくてちゃんとした質問時の話ですよ。
0951nobodyさん
2007/04/26(木) 14:22:39ID:???0952nobodyさん
2007/04/26(木) 14:26:58ID:???0953nobodyさん
2007/04/26(木) 14:50:00ID:UlKx/JN4こんな感じに書いてあるんですがXMLの要素が全部でちゃいます。
どうすれば指定した部分だけ取得できるんでしょうか?
print_rしても配列がいっぱいでてきてさっぱりです。
<?php
require_once'XML_Tree/Tree.php';
$xml_filename = "http://map.simpleapi.net/stationapi?x=139.8025&y=35.6657";
$xml_str = join("",file($xml_filename)); // xml_str にファイルを読み込み
$tree =& new XML_Tree();
$root =& $tree->getTreeFromString($xml_str);
if(XML_Tree::isError($root)) {
//エラー処理
}
echo $tree->get();
?>
0954nobodyさん
2007/04/26(木) 15:02:39ID:???1つのphpがPOSTメソッドを受信するプログラムだとします。
別のphpがPOSTメソッドを送信するプログラムだとします。
この時、<form action>で送信した場合画面が切り替わってしまうのですが、
これを遷移させずにデータを送信する方法は何か有りませんでしょうか…
0956nobodyさん
2007/04/26(木) 15:03:35ID:???0957954
2007/04/26(木) 15:05:23ID:6G3Gma2aすみません、忘れていました…
0959nobodyさん
2007/04/26(木) 15:11:33ID:UlKx/JN4指定の仕方がわからないんです…。
phpspotのサンプルでは
$children = $root->children;
って感じになってるんですが
$childrenをprint_rしても配列がいっぱいで…
0961nobodyさん
2007/04/26(木) 15:16:51ID:???子ノード以下のオブジェクトが返ってきてるんじゃないの?
見たい部分をそのまま指定すりゃいいじゃん。
マニュアルは読んだの?
0962nobodyさん
2007/04/26(木) 15:31:18ID:UlKx/JN4xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => [name] => [namespaces] =>
Array ( ) [error] => [use_cdata_section] => [lineno] => 3 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] =>
Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] =>
[name] => [namespaces] => Array ( ) [error] => [use_cdata_section] => [lineno] => 4 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => 越中島駅 [name] =>.....
こんな感じに返ってきてるわけですがこれの「越中島駅」を出す場合
$content = $root->content;
print_r($content);
ってやってみたんですが上手くいかず…
マニュアルを読んでもさっぱりなんです。
0963nobodyさん
2007/04/26(木) 15:34:18ID:???0964nobodyさん
2007/04/26(木) 15:37:35ID:UlKx/JN4スマソ…これ全部一文です。
0967954
2007/04/26(木) 15:43:20ID:6G3Gma2a有難うございます。調べたところ、fsockopenで可能なようです。
ただ、この場合POST値を複数値渡す際の書き方はどうすればいいのでしょう…
http://ml.php.gr.jp/pipermail/php-users/2005-May/026044.html
の、$POST="test_key=test_value";の部分を書き換えれば良いのは分かるのですが…
0968nobodyさん
2007/04/26(木) 15:45:36ID:UlKx/JN4これって$content[ ][ ][ ][ ]ってな感じで探ってくってことでしょうか…?
>>966
http://pear.plus-server.net/package.xml.xml-tree.xml-tree.get.html
この辺かと…
全部じゃなくて指定した部分だけを返すって事ができないのでそこで悩んでおります。
0969954
2007/04/26(木) 15:51:27ID:6G3Gma2a普通にtest_key=test_value&test_key2=test_value2という風にやればいいんですね。
0970nobodyさん
2007/04/26(木) 15:53:19ID:8BvigEmE例えばあるサイトのあるフォームの
textの値を取得したいのですが.
宜しくお願い致します。
0971nobodyさん
2007/04/26(木) 15:55:59ID:???$root->children[1]->children[1]->content
みたいにアクセスするっぽいけど。
そんな事より、公式に書いてある通りXML_SerializerかPHP5でSimpleXMLとか使ったほうがいいよ。
0972nobodyさん
2007/04/26(木) 16:00:29ID:???XMLツリーを取得したらあとは自分で指定するだけ。
PHPの基本的な配列とオブジェクト操作の話。
SimpleXMLやらのサンプルにも載ってる。
>>970
他サイトを読み込んでformのvalueのところ取ってくればok
0973nobodyさん
2007/04/26(木) 16:05:14ID:UlKx/JN4なるほど…こうすれば良かったんですか。
ありがとうございます。
SimpleXMLはサーバーがphp4しか対応してないのでできませんでした、
XML_Serializerをちょっと見てみます。
0974nobodyさん
2007/04/26(木) 16:05:47ID:???>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
0975nobodyさん
2007/04/26(木) 16:09:20ID:???0976nobodyさん
2007/04/26(木) 16:10:17ID:UlKx/JN4…失礼しました。
レンタルなので自分の環境ではphp4しか使えません。
0977nobodyさん
2007/04/26(木) 16:15:49ID:???0978nobodyさん
2007/04/26(木) 16:16:09ID:g6GrkNsN0980nobodyさん
2007/04/26(木) 16:21:34ID:UlKx/JN4会社で指定されたサーバなので変更ができないんです…。
なんとか使い方わかりました。
ありがとうございました。
0982nobodyさん
2007/04/26(木) 16:23:56ID:???0983nobodyさん
2007/04/26(木) 17:27:35ID:???それとも単に要望が出てないから放置してるか、ただめんどくさいだけなのか
0984nobodyさん
2007/04/26(木) 17:41:28ID:???運用中のサーバのソフトのメジャーバージョンをホイホイ上げる管理者も珍しいんじゃないか。
レス数が950を超えています。1000を超えると書き込みができなくなります。