【PHP】下らねぇ質問はID出して書き込みやがれ 112
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/10/31(月) 05:11:09.81ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0556nobodyさん
2011/11/16(水) 20:14:59.77ID:???foreach( $items as $var=>$val)
if ($_POST[$var])echo $_POST[$val];
---------------------------------------------
for($i=1;$i<=3;$i++)
if ($_POST["enter_$i"])echo $_POST["name_$i"];
(セキュリティについてはサンプルってことで書かないけど、
こういうのが ネットにこう書いてあったって使われちゃったり)
0557nobodyさん
2011/11/16(水) 21:12:17.78ID:???普通h同じセッションになるので不可能だと思いますが何か方法があれな教えて下さい。
0560553
2011/11/16(水) 22:11:49.03ID:eLkUclYQ最近勉強し始めたので、セキュリティはあまりわかっていません…。
サニタイジングはもちろんします。今回は長くなるので省略しましたが…。
0561nobodyさん
2011/11/16(水) 22:44:23.46ID:???var_dumpの結果をechoで出そうと思い、以下のスクリプトを作成しました。
~$ cat hoge.php
#!/home/php/bin/php
<?php
$data = 'aaa';
$result = var_dump($data);
echo "result=$result\n";
?>
ところがこのスクリプトを実行すると、結果が以下のようになってしまいます。
~$ ./hoge.php
string(3) "aaa"
result=
おそらく、var_dumpの結果がresultに入ってないと思うのですが、
そうするためにはどうしたらいいでしょうか?
0562nobodyさん
2011/11/16(水) 22:51:04.72ID:+5IKw5hh0563nobodyさん
2011/11/16(水) 23:01:58.01ID:???http://php.net/manual/ja/function.var-dump.php
マニュアルを読もう
答えがそのまんま書いてある
0564nobodyさん
2011/11/16(水) 23:08:04.54ID:???0566nobodyさん
2011/11/16(水) 23:13:03.42ID:???var_exportね
0567nobodyさん
2011/11/16(水) 23:24:57.87ID:???ワイルドカードなんてものはないのでループなり自分で調べるしかない
普通は配列で扱う
<?php
foreach ($_POST['enter'] as $id) { echo $_POST['name'][$id]; }
for($i = 1; $i <= 3; $i++) {
printf('<input type="text" name="name[%s]"><input type="submit" name="enter[%s]" value="送信">', $i, $i);
}
0568nobodyさん
2011/11/16(水) 23:40:12.68ID:???0569>>561
2011/11/17(木) 00:36:00.90ID:P0oL6Kj5マニュアルをみたのですが、var_exportの説明は以下のようになっています。
説明:”変数の文字列表現を出力または返す”
そして、var_dumpの説明は以下のようになっています。
説明:”変数に関する情報をダンプする”
以下の3つの具体的な意味についてご教授ください。
「ダンプする」
「出力する」
「返す」
0570nobodyさん
2011/11/17(木) 01:07:37.67ID:???0571553
2011/11/17(木) 01:37:36.08ID:70iwFN0Dありがとうございます。
Linuxにあるので、あるものだと思っていました…。
それを参考に書いてみようと思います。
0572nobodyさん
2011/11/17(木) 02:09:20.00ID:???>>564はなぜスルーされたのか。。
>>571
Linuxにあるんじゃなく、シェルにある。
phpでなら正規表現を使えばいいよ
0573nobodyさん
2011/11/17(木) 03:41:11.72ID:???0574nobodyさん
2011/11/17(木) 11:44:23.47ID:???http://www.lancers.jp/work/detail/27050
0575nobodyさん
2011/11/17(木) 13:59:57.52ID:izk/KJxq0576nobodyさん
2011/11/17(木) 17:29:14.46ID:0Ntos03Vif (isset($date'day'])) {
echo 1;
} else {
echo 0;
}
とした場合、配列でもないのに1が表示されます。
「$dateが配列で、連想配列のdayが存在する場合」
という条件式はどう書けばいいのでしょうか?
0577nobodyさん
2011/11/17(木) 17:30:10.36ID:???if (isset($date['day'])) {
0578nobodyさん
2011/11/17(木) 17:40:40.09ID:???0579nobodyさん
2011/11/17(木) 17:48:00.34ID:???if (isset($date['day'])) {
こんな感じですか。でも、これって$date自体がなかったらエラーになりませんか?
0580nobodyさん
2011/11/17(木) 18:16:28.76ID:???$date = null;
var_dump(isset($date,$date['day'])); // false
$date = array();
var_dump(isset($date,$date['day'])); // false
$date = array('day'=>null);
var_dump(isset($date,$date['day'])); // false
$date = array('day'=>'');
var_dump(isset($date,$date['day'])); // true
$date = null;
var_dump(isset($date) && is_array($date)); // false
$date = array();
var_dump(isset($date) && is_array($date)); // true
$date = array('day'=>null);
var_dump(isset($date) && is_array($date) && isset($date['day'])); // false
$date = array('day'=>'');
var_dump(isset($date) && is_array($date) && isset($date['day'])); // true
これぐらいは自分で試せ
0581nobodyさん
2011/11/17(木) 19:06:01.97ID:???すこし話はずれるけど、そもそもの事象について説明しとく。
isset($date['day']) が真になる理由だけど、
$dateが配列ではなく文字列のため、添え字演算子は文字列インデックス(整数)を要求することになる。
んで、'day'を整数評価した値は0になるため、
isset($date['day'])はisset($date[0])となり、$date[0]は1文字目、つまり'2'が設定されているため、真になる。
なのでこうする。
isset($date) && is_array($date) && isset($date['day'])
array_key_existsとの違いにも気をつけること。
>>580
関係ないことずらずら書いててワロタ
0583nobodyさん
2011/11/17(木) 19:38:01.70ID:0Ntos03Vありがとうございます。大変勉強になりました!
0584nobodyさん
2011/11/17(木) 23:51:19.67ID:???<form 〜
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
</form>
の順で出力させてるのに、
ソースコード見たら
<form 〜 ></form>
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
の順で出力されてる…怖い…
0586nobodyさん
2011/11/18(金) 00:09:05.38ID:???あとテーブル使ってますが絶対に記述してない<tbody>が出力されてます
ajaxで書き換えた後のソース部分なんですが…
0588nobodyさん
2011/11/18(金) 00:14:48.11ID:???0589nobodyさん
2011/11/18(金) 00:26:14.18ID:???firebugは入れてないです
別のPCのfirefoxだとソース部分ではちゃんと順番に出力されてますがそのリンク自体が表示されなくなりました…
0590nobodyさん
2011/11/18(金) 00:45:57.86ID:???0591nobodyさん
2011/11/18(金) 00:49:20.18ID:???ajaxで書き換えるソースコードが書かれているphpファイルに
ヘッダタグ等の必要な情報を一切書いていなかったのが原因でした。
大変失礼しました…
0593nobodyさん
2011/11/18(金) 13:07:57.29ID:0E07J79Yリンク先のページの全体像みたいのが画像で表示されますが
HTMLを画像にするようなことができるのでしょうか?
何か関数やヒントになるキーワードがあれば教えてください
0595593
2011/11/18(金) 13:23:38.38ID:0E07J79Yありがとうございます!
0596nobodyさん
2011/11/18(金) 16:34:31.24ID:CLCMBLd4ファイル名に日本語を使いたいのですが、文字コードの指定が分かりません。
まず、windowsのファイル名の文字コードはUTF-8との事ですが
UTF-8のphpから
error_log("test",3,"ログファイル.txt");
と書いて"ログファイル.txt"というファイル名のファイルを作ったつもりでも、作成されたファイルをエクスプローラで見ると文字化けしてしまいます。
mb_convert_encoding($file,"SJIS-win","UTF-8");とファイル名の文字コードを変換すれば正常なファイル名が作成されるのですが
UTF-8のはずのwinodowsで何故sjisへの変換作業が必要なのでしょうか
これが解決出来れば、ファイル名は全てutf-8で統一されてファイル名の文字コードに気を使う事が無いのですが。
0597nobodyさん
2011/11/18(金) 16:59:21.29ID:???0598nobodyさん
2011/11/18(金) 17:08:53.82ID:???0599nobodyさん
2011/11/18(金) 17:27:57.11ID:jAJu9/rrsort系のGETを入れたいと思っています。
hoge.com?page=1&type=1… 様々な GET… &sort=asc
hoge.com?page=1&type=1… 様々な GET... &sort=desc
これにより、様々な条件下で抽出されたリストから
並びかえができるようになってるのですが、
"様々な条件下で、生成されたGET要素入りURL"
は、どうやって取得したらよろしいでしょうか。
0600nobodyさん
2011/11/18(金) 17:56:56.87ID:???$url = explode("?",$url);
print $url[1];
かもしれない。
0603nobodyさん
2011/11/18(金) 18:52:56.78ID:???様々な条件下で、生成されたGET要素入りURLってのが、アクセスしてきたアドレスとは
限らないじゃないかというオチャラケだよ。
本人が違うって書いてくれればいろいろ分かるのに。
>>602
ユニコードで取得する方法はあるから、PHPが対応してないってこと。
0604nobodyさん
2011/11/18(金) 22:23:23.54ID:???>>601は落ちつくべき。
0605nobodyさん
2011/11/18(金) 23:04:14.52ID:???0606600
2011/11/18(金) 23:05:20.43ID:???0607nobodyさん
2011/11/18(金) 23:25:01.53ID:tf7WOWeBどのようなものがあるのでしょうか?
0608nobodyさん
2011/11/18(金) 23:26:24.08ID:???0610nobodyさん
2011/11/18(金) 23:41:33.43ID:???0611nobodyさん
2011/11/18(金) 23:46:36.76ID:tf7WOWeBすみません
ただ単純に、画像を取得して例えばブラウザに表示させたいと思いまして
自分はcURLを使って全体を取得してテキスト文はDOM使って表示させたのですが、
画像の表示のさせ方が分からなかったもので
0613nobodyさん
2011/11/18(金) 23:57:18.17ID:???プロキシみたいなことしたいのかな
0614nobodyさん
2011/11/19(土) 00:01:05.04ID:djjAwZHJなるほど・・・
確かにそうですね
教えてくれてありがとうございます
ちょっと試してみます
0615nobodyさん
2011/11/19(土) 00:07:40.97ID:???0616nobodyさん
2011/11/19(土) 00:07:46.89ID:djjAwZHJデータベースやディレクトリに保存しようと思いまして
ブラウザは簡単なテスト環境と思いまして
0617nobodyさん
2011/11/19(土) 00:10:43.56ID:???0618nobodyさん
2011/11/19(土) 00:14:21.83ID:???0619nobodyさん
2011/11/19(土) 00:29:41.91ID:djjAwZHJハハハ、いや、エロ画像を集めるつもりはないのですが・・・
しかし訳がわからなくなってきました
cURLで取得したHTMLを(CURLOPT_RETURNTRANSFERを使用しているのでファイルには保存していません)、
DOMDocumentにてloadHTMLしてquery('//img/@src')などとしたし、
ブラウザに表示する場合はhttp://hoge.com/を付けるのまでは分かるのですが、
こっからどのような処理をすればディレクトリやデータベースに格納できるのでしょうか?
ザッと見、cURLやDOMDocument系にはそのような関数がないように思えるのですが
0621nobodyさん
2011/11/19(土) 00:40:35.70ID:djjAwZHJあぁ、やっぱそうなると>>611で質問したように、
file_get_contents()しかないんでしょうか?
0622nobodyさん
2011/11/19(土) 00:43:32.98ID:???0624nobodyさん
2011/11/19(土) 00:54:00.85ID:???0626nobodyさん
2011/11/19(土) 11:06:26.33ID:???0627nobodyさん
2011/11/19(土) 12:50:04.81ID:???0628nobodyさん
2011/11/19(土) 15:09:54.67ID:djjAwZHJマッチした値を排除するような使い方をしたいのですがどのようにすればいいのでしょうか?
foreach()で値を得て、それらを正規表現で・・・と思ったのですが
$iのように数字を使い、array_slice()を使うのかなとも思いましたが良く分かりませんでした
0630nobodyさん
2011/11/19(土) 15:28:21.89ID:???その場合はarray_slice($arr, $i-1, 1)とかのようにするのでしょうか?
それとも全く別の配列を作成し、マッチしなかったものをその別の配列に入れるのがいいのでしょうか?
0632nobodyさん
2011/11/19(土) 15:32:54.65ID:???自分は、他人(新人or後任者)が見てもわかりやすいように書いてるから、新しい配列に入れるね
自分一人だけだったら、いろいろなやり方試してみてもいいんじゃない?
0633nobodyさん
2011/11/19(土) 16:18:00.10ID:ZMwiibDDhoge()[0]
のような書き方はできないのでしょうか?
(hoge()は配列を返す)。
array_shift(hoge())
で、いちおうできるのですが、
ちょっとカッコ悪いので・・・
0634nobodyさん
2011/11/19(土) 16:19:02.24ID:???foreach($array as $key => $val )
if ($val % 2 == 0)
unset($array[$key]);
print_r ($array);
0636nobodyさん
2011/11/19(土) 16:44:31.71ID:???0637nobodyさん
2011/11/19(土) 18:58:14.72ID:X5SG6smtそういや6.xってどうなったんだ・・・?
0638nobodyさん
2011/11/19(土) 19:43:45.93ID:???0639nobodyさん
2011/11/20(日) 01:46:04.87ID:???もし、これが企業のプロジェクトだったらマネジメント層全員減給またはクビだぞ
0640nobodyさん
2011/11/20(日) 01:57:47.15ID:???0641nobodyさん
2011/11/20(日) 01:57:57.34ID:???0644nobodyさん
2011/11/20(日) 02:46:59.47ID:1V6hVVY4$result = mysql_query($sql);
で、取得したひとつのデータを変数に代入したいのですが
while(mysql_fetch_array($result)){処理}
みたいに書くしかないんでしょうか。
データ一件しかないのにwhileを使うのが気持ち悪いので
他の方法があればそちらを使いたいです。
0645nobodyさん
2011/11/20(日) 02:49:07.99ID:???とおもったら大抵のサイトがそういう説明になってたから理解しにくいものじゃなさそうだね
0649nobodyさん
2011/11/20(日) 12:59:03.75ID:???そろそろ…って声聞いて二年経ってんだよ
PHP6.0の開発自体は2005年から開始している
こっちはどこがどう変更されるのかピリピリしてんのによ
もう出すなよ、PHP5.2193くらいまでやればいい
0650nobodyさん
2011/11/20(日) 13:01:37.43ID:???php5.5の勘違いじゃないの?
0651nobodyさん
2011/11/20(日) 13:42:09.57ID:???0652nobodyさん
2011/11/20(日) 14:50:05.47ID:???0653nobodyさん
2011/11/20(日) 14:52:32.63ID:W2VBDeCoそのリンクが200なのか304なのか、404なのかといった具合にです
その為だけにcURLやfile_get_contents()でページごと取得するのも
無駄だと思いまして
get_headers()というのがあり試してはみましたが、一般的にはこれを使えばいいのでしょうか?
それとももっといい関数やライブラリががあるのでしょうか?
ステータスコードのみ取得して軽いというなものがあれば教えていただきたいです
0654nobodyさん
2011/11/20(日) 15:20:15.39ID:???0655nobodyさん
2011/11/20(日) 16:05:24.08ID:???get_headers() でok
やってることはみんなHEADメソッドで取得してるだけだからね
http://php.net/manual/ja/function.get-headers.php#example-3635
0656nobodyさん
2011/11/20(日) 16:30:35.68ID:???■ このスレッドは過去ログ倉庫に格納されています