【PHP】下らねぇ質問はID出して書き込みやがれ 107
レス数が1000を超えています。これ以上書き込みはできません。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1304064660/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0908nobodyさん
2011/06/30(木) 09:43:46.75ID:qcWaMuTT【a.html】xxxxxxxxxxxxxxxxxxxxx
<html>
<body>
<div class="a">a</div>
</div>
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxx
というファイルを
a</div>
</div>
</body>
</html>
という風に出力したいと思い、下記のように書いたのですがうまくいきません
a.htmlに改行が含まれているせいだと思ったのですが
公式マニュアルのpreg_replaceの項には
"デフォルトで、PCRE は、検索対象文字列を(実際には複数行からなる 場合でも)単一の行からなるとして処理します。 "
とあり、よくわからなくなりました。
0909nobodyさん
2011/06/30(木) 09:44:29.74ID:qcWaMuTTfunction replace(){
$str = file_get_contents("./a.html");
$rep = preg_replace('/.*<div class=\"a\">/',"",$str);
echo $rep;
}
↑これだと
<html>
<body>
</div>
</body>
</html>
とechoされます
0913nobodyさん
2011/06/30(木) 11:14:21.45ID:???いじってなければ標準の128MBだと思うけど
共有サーバだとその割り当てられたメモリを共有するからメモリミットを極限まで長寝て実験しないと意味ないんだよね
0914nobodyさん
2011/06/30(木) 11:19:56.33ID:qcWaMuTTありがとうございます
preg_replaceですが、容量の大きなhtmlファイル(491KB)では動作しなかったのですが
replace.php
function replace(){
}
これはPHPのメモリ割り当て量の設定が必要ということですか?
0915nobodyさん
2011/06/30(木) 11:25:05.55ID:qcWaMuTTすみません、途中で書きこんでしまいました
b.html ←491KBを、replace.phpで処理
【replace.php】xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
<?php
function replace(){
$str = file_get_contents("./b.html");
$rep = preg_replace('/.*<div class=\"a\">/s',"",$str);
echo $rep;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<title>replace</title>
</head>
<body>
<?php replace(); ?>
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
0916nobodyさん
2011/06/30(木) 11:25:54.68ID:???}
関数に何も定義されてないじゃん・・・・
0917nobodyさん
2011/06/30(木) 11:26:42.55ID:???0918nobodyさん
2011/06/30(木) 11:28:33.73ID:qcWaMuTT<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<title>replace</title>
</head>
<body>
</body>
</html>
0920nobodyさん
2011/06/30(木) 11:46:23.32ID:qcWaMuTT何を使うのがおすすめか教えてくださると助かります
>>919
【a.html】xxxxxxxxxxxxxxxxxxxxx
<html>
<body>
<div class="a">a</div>
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxx
↑のhtmlなら>>915のreplace.phpでちゃんとechoされるのですが、
【b.html】xxxxxxxxxxxxxxxxxxxxx
<html>
<body>
<div class="a">a</div>
中略
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxx
↑このhtmlではechoされません(このb.htmlは個人情報の含まれるファイルなので晒せません;すみません)
容量が491Kbもあるからメモリの問題なのかなと思ったのです
メモリの問題でエラーになった場合何もメッセージは出力されないのでしょうか?
0921nobodyさん
2011/06/30(木) 11:48:35.24ID:???ob_get_contentsしてもソースが取得できないんだ
<?php
ob_start();
include('./test.html');
$bufferHTML = ob_get_contents();
ob_end_clean();
var_dump($bufferHTML);
?>
色々試した結果わかったことは、
「test.html」に以下のようなxml宣言があると
<?xml version="1.0" encoding="Shift_JIS"?>
だめで、これを消すと正常に取得できる。
ちなみに「test.html」をUTF-8に変換して、
宣言の箇所をUTF-8にしてもだめだた
やはり宣言があるとだめみたいだ。
なんぞこれ?
0923nobodyさん
2011/06/30(木) 12:00:00.82ID:???【OS名】CentOS 5.3
【PHPのバージョン】5.16
【連携ソフトウェア】-
【質問内容】>>921
0924nobodyさん
2011/06/30(木) 12:02:58.99ID:???0925nobodyさん
2011/06/30(木) 14:20:36.94ID:???0926nobodyさん
2011/06/30(木) 17:58:12.43ID:OdRUAQ84class hoge{
private static $db;
public static function init($str){
$this->db=$str;
pirnt($this->db);
}
}
hoge::init("テスト");
以上のコードを実行しても、$thisがねーよとエラーが返ってきてしまいます
「::」を使ってアクセスする場合、最初にアクセスした時orコンパイル時に初期化関数が実行、プロパティを定義させるにはどうしたらよいのでしょうか
$hoge=new hoge();
とすればスマートなのですが、一度しか使わないhogeクラスのインスタンスをわざわざ定義するのもスマートではないと思って気が引けています
0927。 ◆oDupeixhZv52
2011/06/30(木) 18:23:41.88ID:???0928nobodyさん
2011/06/30(木) 18:37:41.74ID:OdRUAQ840931nobodyさん
2011/06/30(木) 23:19:24.77ID:???0932nobodyさん
2011/07/01(金) 00:52:39.22ID:???わからないから質問しているんです
質問を質問で返すのはマナー違反ではないでしょうか
それと質問ならIDを出してください
0933nobodyさん
2011/07/01(金) 00:54:21.42ID:???0934nobodyさん
2011/07/01(金) 03:46:57.51ID:???0935nobodyさん
2011/07/01(金) 04:17:23.29ID:???腹立つな
0936nobodyさん
2011/07/01(金) 04:37:03.65ID:???それを聞いてるの
0937nobodyさん
2011/07/01(金) 06:37:44.97ID:???0938nobodyさん
2011/07/01(金) 07:31:49.27ID:???0939nobodyさん
2011/07/01(金) 09:13:54.77ID:???素人が$hoge=new hoge();をスマートと思い込んでる理由を説明してもらわないと回答に困るから
0941nobodyさん
2011/07/01(金) 11:47:02.75ID:???次の方どうぞ
0942nobodyさん
2011/07/01(金) 18:31:21.43ID:???& #876;みたいな形に変換する方法ってありますか?
0943nobodyさん
2011/07/01(金) 18:31:34.87ID:LN8vUPfI0944nobodyさん
2011/07/01(金) 18:45:36.01ID:f1cCs/uIheader('Cache-Control: no-cache');
header('Pragma: no-cache');
キャッシュを無効っていまいちどういうことかわからないのですが、
上記のヘッダーを入れたページにアクセス(ローカルのApacheサーバ)
ブラウザを閉じる(Apacheサーバを停止する)
ブラウザを開いて再度アクセスする(サーバが見つからないのでページ読み込みエラー)
とここまではいいのですが、
このエラーページのソースを表示すると、
最初のページのソースが出ます。(使用ブラウザはFirefoxです)
Firefoxの問題なのかもしれませんが、キャッシュを無効って、
こういうソースをクライアントにとっておかないための処理ではないのでしょうか?
0947nobodyさん
2011/07/01(金) 23:11:13.79ID:???0948nobodyさん
2011/07/02(土) 02:43:30.08ID:???サーバーが落ちてる時にエラーでてソース表示でキャッシュがでるのは仕様
0949nobodyさん
2011/07/02(土) 03:35:54.12ID:U9fkTnQuこの場合やはり毎回count関数が実行されて多少遅くなりますか?
for ($i = 0; $i < count($x); $i++)
$n = count($x);
for ($i = 0; $i < $n; $i++)
0951nobodyさん
2011/07/02(土) 04:42:20.39ID:???散々既出だが・・・
http://php.net/manual/ja/function.count.php#46542
> When running loops with count conditions, the code runs faster
> if you first assign the count() value to a variable and use that
> (instead of using count() directly in a loop condition.
> As you can see, the second method (which doesnt use count() directly
> in the loop) is faster than the first method (which uses count() directly
> in the loop).
つーことで結論は出てるよ。
PHPのコンパイラがどの程度最適化してくれるのか知らんけど
後者の方が早いのは想像に難くない。
0952nobodyさん
2011/07/02(土) 04:58:26.18ID:U9fkTnQu計測方法がわからなかったのですが
今後は試してみたいと思います。
>>951
大変助かりました。ありがとうこざいますm(__)m
0953nobodyさん
2011/07/02(土) 12:49:14.67ID:???XAMPPは使うな
Terapadは使うな
FFFTPは使うな
printは使うな
eregは使うな
0954nobodyさん
2011/07/02(土) 12:49:35.06ID:???dateは使うな
0956nobodyさん
2011/07/02(土) 13:32:22.37ID:???0958nobodyさん
2011/07/02(土) 13:48:27.46ID:DPlLivZ1それらを比較してフォーマットに合致しているかどうか調べたいのですが
そんな関数ないでしょうか?
0959nobodyさん
2011/07/02(土) 14:39:20.52ID:???0960nobodyさん
2011/07/02(土) 15:11:12.85ID:???$_POSTで次の画面に進んでチェックを行う場合
issetを使わないとNOTICEが出る時がありますよね?
issetを使えばNOTICEが出ないからそれはそれでいいんですが
ラジオボックスを未チェックで進んできた場合
input name="hoge"のように指定しているにも関わらず送られてこないようで
hoge自体が送られてこないようで
issetをしてもNotice: Undefined indexというエラーが出てしまいます
何か回避策はありますか?
0961960
2011/07/02(土) 15:11:48.10ID:r89l/c1b0963nobodyさん
2011/07/02(土) 15:20:07.10ID:JEVGTjoI暗号化してないパスワードをa.phpからPOSTでb.phpに渡す時も暗号化したり何らかの処理をした方がいいのでしょうか?
0965960
2011/07/02(土) 15:28:11.57ID:r89l/c1bありがとうございます
原因がわかりました
a.html
<form method="post" action="a.php">
<input type="radio" name="hoge" value="a">a
<input type="radio" name="hoge" value="b">b<br>
<input type="submit">
</form>
a.php
<?php
error_reporting(E_ALL);
function piyo($post) {
if (isset($post)) {
return $post;
} else {
return null;
}
}
echo piyo($_POST['hoge']);
このように関数を通すとだめなようです
でも関数を通したいんですけどどうしたらいいでしょうか?
0967nobodyさん
2011/07/02(土) 15:36:23.80ID:JEVGTjoIはい
SSLってyahooとかでっかい所が使ってるイメージがあるのですが
皆さんも必要があれば使ったりするものなんですか?
0970960
2011/07/02(土) 16:01:54.55ID:r89l/c1b入力の次に入力チェックすると思いますが
入力に問題があって前画面に戻すとき
URLに前画面の入力内容を入れて戻すんでしょうか?
hiddenフィールドに入れてPOSTで戻すとかは
クリックしてもらわないとできないですよね?
0972nobodyさん
2011/07/02(土) 16:42:44.42ID:zLDecbT72)自サーバーに保存
3)保存した画像を整形(縮小)
という処理をしたいと思っています。
他のサーバというのは全く別のサーバ(twitter)で、何の権限もありません。
どうやったら良いでしょうか?
1はクリアできていて、3はgdだからわかるんですが2がわかりません
というかこれは不正アクセスになってしまうんですかね…
0973nobodyさん
2011/07/02(土) 16:56:48.57ID:???データ自体を持ってくる事ができてるんなら、file_put_contents()だかでできるよ。
とりあえずやってみることだ。。。ときどき、なんらかのフィルターが入ってたりして画像として認識されなかったりする事もあるが、その時はそのとき。
っつか、不正アクセスとか言う前に、勝手に画像を加工するのは著作権法の方からひっかかる気がする。
0974nobodyさん
2011/07/02(土) 17:24:42.47ID:???自サーバーに保存するのも画像を加工するのも問題ない。
ただし、その画像を再公開したら当然問題になる可能性はある。
そこら辺は公開元のポリシー次第。
0977nobodyさん
2011/07/02(土) 17:50:42.91ID:???a.phpからb.phpへPOSTって、同じサーバー内?だったらSSLは不要だろ。
ネット上にパスワード送信されないのに暗号化に何の意味があるんだ。
0978nobodyさん
2011/07/02(土) 17:51:26.13ID:???0979nobodyさん
2011/07/02(土) 17:53:45.13ID:???「URLに前画面の入力内容を入れて戻す」だってクリックしてもらわなきゃ無理だろ。
普通はhiddenで「戻る」ボタンで送る。またはセッション変数で送る。
0980nobodyさん
2011/07/02(土) 17:53:57.12ID:???0981nobodyさん
2011/07/02(土) 17:55:28.65ID:???あぁ、勘違い。ユーザーが表示してるa.phpからパスワードを送信するって意味か。
ユーザーがa.phpにアクセスすると自動でb.phpにPOSTされんのかと思ったが
そんな質問するわけないよなw
0982nobodyさん
2011/07/02(土) 17:55:49.24ID:???0983nobodyさん
2011/07/02(土) 17:58:14.38ID:???0986nobodyさん
2011/07/02(土) 18:05:00.48ID:???好きに変更していいよ
ついでにスレタイも「【PHP】下らねぇ質問はここに書き込みやがれ nnn」
形式に戻していいよ
0987nobodyさん
2011/07/02(土) 18:13:06.23ID:???MD5ぐらいは、ねぇ
0988nobodyさん
2011/07/02(土) 18:14:45.71ID:???↑
ココでハッシュ化する意味は無いかと
0989nobodyさん
2011/07/02(土) 18:16:02.69ID:???0990980
2011/07/02(土) 18:40:18.73ID:???テンプレはそのままでいいのかしらん?
http://hibari.2ch.net/test/read.cgi/php/1309599473/
0991nobodyさん
2011/07/02(土) 18:43:33.68ID:???0992nobodyさん
2011/07/02(土) 18:44:22.57ID:???↑
ココでハッシュ化する意味は無いかと
0993nobodyさん
2011/07/02(土) 18:53:49.60ID:???0994nobodyさん
2011/07/02(土) 19:00:35.56ID:???0995nobodyさん
2011/07/02(土) 19:05:53.49ID:JEVGTjoIa.php→b.php→サーバーのDBだったら
↑
ココでハッシュ化する意味は無いかと
とありますが、a.phpでテキストエリアにパスワード入れてPOSTする感じに考えてたんですが
その場合このタイミングではMD5でハッシュ化できなくないですか?
b.phpで受け取ったパスワードをハッシュ化するぐらいしか思いつかないのですが
0996nobodyさん
2011/07/02(土) 19:08:39.11ID:???要するにクライアントが送信するパスワードを盗聴防止のために暗号化したいんだろ?
だったら普通にSSL使えばいい
0997nobodyさん
2011/07/02(土) 19:25:16.00ID:???↑
ココでハッシュ化すれば十分かと
0998nobodyさん
2011/07/02(土) 19:32:01.93ID:???必ずクライアントからサーバーを経由しちゃうものなんですけど
SSL以外の暗号化じゃサーバーに送られてから暗号化されるわけであってSSLみたいな抜き取り防止としてはあんま役に立たないわけでだな
0999nobodyさん
2011/07/02(土) 19:54:47.49ID:???教えて!Watch 解決済みの質問
PHPについての質問です。
http://oshiete1.watch.impress.co.jp/qa4517024.html?order=DESC&by=datetime
元凶はえっ と ええっ とか言ってる奴
1000nobodyさん
2011/07/02(土) 20:00:02.77ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。