トップページphp
1001コメント305KB

【PHP】下らねぇ質問はここに書き込みやがれ 49

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/06/26(火) 03:03:40ID:ox2uyHLd
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0664nobodyさん2007/07/05(木) 10:21:13ID:???
ん言っている意味がわからn
0665nobodyさん2007/07/05(木) 10:23:14ID:???
>>655
ループ自作するほうがいいよ。マルチバイト変換失敗するのも回避できるし。
0666nobodyさん2007/07/05(木) 10:26:41ID:???
>>640
サーバ設定およびphp.ini設定に依存しなくてすむ対処範囲が広がるからだよ。
基本だろ。
0667nobodyさん2007/07/05(木) 10:36:55ID:???
>>663
なにをいっとるんだ?
それとも何か君のところのWEBサーバーはリファラー偽装したら
.htaccessなんかに直接アクセスして読み込めるのか?
0668nobodyさん2007/07/05(木) 11:07:01ID:???
>>643
またお前か。いい加減消えろクズ
0669nobodyさん2007/07/05(木) 11:25:15ID:???
>>666
具体的には?
0670nobodyさん2007/07/05(木) 11:51:54ID:???
yourfilehostのエロいやつ探すスクリプト書いたんだが
すぐにタイムアウトになる。
<?php
set_time_limit(100);
for($i=1;$i<=12;$i++){
 f(strlen($i)==1){
   $month = "0".$i;
  }else{
   $month = $i;
  }
  for($j=1;$j<=31;$j++){
   if(strlen($j)==1){
    $day = "0".$j;
   }else{
    $day = $j;
   }
   for($k=1;$k<=12;$k++){
    $num = $k;
    $url = "http://www.yourfilehost.com/media.php?cat=video&file=";.$month.$day."sbs_".$num.".wmv";
    $file = file($url);
    if(count($file)==1){  //ファイルがない場合
     break;
    }else{
     echo $url."<br>";
    }
  }
 }
}
?>
0671nobodyさん2007/07/05(木) 11:55:18ID:???
>>668
かなりIQ低いなお前。

生きてる価値あんのかよw

0672nobodyさん2007/07/05(木) 12:10:47ID:???
必死〜必死〜必死〜オーレ♪
0673nobodyさん2007/07/05(木) 12:17:15ID:???
>>670
f(strlen($i)==1){ → if(strlen($i)==1){
はおいておいて、

直リン禁止だったら、Referer をみてたり、UserAgentみてたりする可能性有り

とりあえず wget url名 で取得出来るんかどうか確認してみたら。


>>.671
やっぱライトウエイトな言語だから、民度が相当低い >>.671 みたいなのも混じるんだな。
IQとか学歴とか持ち出すやつに限って相当低かったりする罠
0674nobodyさん2007/07/05(木) 12:47:14ID:???
>>673
wgetってPHPの関数かと思ったらそうじゃないんだ。
使い方わからない\(^o^)/

とりあえず、これで何とかした
set_time_limit(0);
0675nobodyさん2007/07/05(木) 12:54:20ID:???
>>673
おまえ「民度」って意味知ってるのか?w

小学校から国語の勉強しなおしてこいや クズ

0676nobodyさん2007/07/05(木) 13:00:42ID:???
>>669
質問したいならID出してね
0677nobodyさん2007/07/05(木) 13:07:34ID:???
基地外が暴走中だな。
あぁ、基地外だから平常時でこれなのか。笑
0678nobodyさん2007/07/05(木) 13:21:32ID:???
>>674
コマンドラインのダウンローダー、画像とか一気にブッコ抜きたいときにつかう。

リンクが乗ってる一覧ページまでは、先にphpで取得しておいて、

そのリンクから取得したいリンクを1行ごとにファイルに書き出して

wget -i (書き出したファイルのパス)

みたいにする。ちなみにwindows用もある
0679nobodyさん2007/07/05(木) 13:29:28ID:???
(・c_・`) .。oO(クズなのにうるさい人がいるわけだぁ…
0680nobodyさん2007/07/05(木) 13:36:58ID:???
>>667
"直接"アクセス禁止って書いてるから
リファラーで判断するのかなって思っただけ。
<Files>で完全に見えなくするのとはまったく別の話。
0681nobodyさん2007/07/05(木) 14:39:50ID:???
アクセス禁止にリファラーで判断することが謎なんだがだ・・・
0682nobodyさん2007/07/05(木) 14:43:23ID:???
また厄介な粘着が増えそうだからもう突っ込まないであげたほうが・・
0683nobodyさん2007/07/05(木) 15:09:41ID:???
セキュリティの話でリファラで判断はないよな・・・
0684nobodyさん2007/07/05(木) 15:19:52ID:???
すいませんが、教えてください。

CSVからデータを取り出すのにせいこうしたのですが、
HTMLコードである<br>を取り除きたいのですが、いい方法がありますか?

お願いします。
0685nobodyさん2007/07/05(木) 15:21:14ID:???
>>684
strip_tags
0686nobodyさん2007/07/05(木) 15:27:13ID:???
>>685
ありがとうございます

strip_tags($text, '<br>');

ただ、これだと逆に<br>だけのこってしまいますが、削除するほうほうがないでしょうか?
0687nobodyさん2007/07/05(木) 15:33:51ID:???
str_replace("<br>", "", $text)
0688nobodyさん2007/07/05(木) 15:47:49ID:???
>>687
感謝です!
0689nobodyさん2007/07/05(木) 17:09:38ID:???
俺だったらstrtrに配列を渡す。
0690nobodyさん2007/07/05(木) 17:12:04ID:???
>>689
独り言ですか?
0691nobodyさん2007/07/05(木) 18:01:12ID:???
改行コードを<br>に書き換えたいのですが
str_replace("\n", "<br>", $text)
これだと改行された上に<br>が追加されてしまいます。
完全に置換するにはどうすればよいでしょうか?
0692nobodyさん2007/07/05(木) 18:08:04ID:???
>>691
str_replace(array("\r\n", "\r", "\n"), "<br>", $text)
0693nobodyさん2007/07/05(木) 18:09:18ID:???
>>692
\rも考慮しないといけなかったのですね。ありがとうございました。
0694nobodyさん2007/07/05(木) 18:13:11ID:5ImFLVVz
以前、添付メールもしくはアップロードについて質問したものですが

Q、確認画面にまでテキストフォームだけでなくアップロードフォーム結果を持っていき、
  投稿ボタンを押して初めてアップロードさせたい。

A、無理。確認の時点で一時的にアップさせて、後で消すしかない。

mixiは テキスト+画像選択フォーム→確認画面(ローカルファイルのアドレス表示)→実質投降
となっていますが、やっぱり一時的にアップしてますよね?

>>691
\nじゃ足りない とりあえず nl2br()
0695nobodyさん2007/07/05(木) 18:21:12ID:???
>>694
mixi内部が実際どうなのかは知らんが、
フォーム→post→一時workディレクトリにmove_uploaded_file

→確認OKなら本当の保管場所に移動、
→途中中止ならworkディレクトリ内の該当ファイル除去、途中でブラウザブチ切りされたファイルはcronで定期的に除去

みたいにやるのが普通かと。途中で画像加工(crop,resize等)を挟む時もwork内で持ち回し出来るし。
0696nobodyさん2007/07/05(木) 18:46:20ID:???
>>694
js使えば一時的にアップしなくても、できるんじゃない?

ただmixiの場合は恐らく一時フォルダにアップしてる
0697nobodyさん2007/07/05(木) 19:00:17ID:???
>>696
<input type="file">にvalueを入力できるならできるだろうけど
無理だと思うのであきらめたほうがいいと思う
0698nobodyさん2007/07/05(木) 19:06:40ID:5ImFLVVz
>>696
>js
具体的に何をさせるのでしょうか?
0699nobodyさん2007/07/05(木) 19:31:32ID:???
javascript ローカルファイルでぐぐれ
0700nobodyさん2007/07/05(木) 19:43:38ID:5ImFLVVz
>>699
了解しました。
0701nobodyさん2007/07/05(木) 19:45:06ID:5ImFLVVz
>>699
>JavaScript が訪問者のローカルファイルにアクセスできるのは、クッキーだけです。
引き返してきました。
07026952007/07/05(木) 21:55:11ID:???
>>701
input type='file'については hidden使ったり、javascriptで持ち回しは出来ないよ。
(かなり昔試したことある)
あきらめて一時的にワークに上げるように汁



一応下記も参照
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1854&forum=7
0703nobodyさん2007/07/05(木) 22:12:22ID:???
>>694
かなり無理やり技ならできんこともない
1. ユーザが入力フォームポチ
2a. upってきたファイルの内容をセッション変数にブチコム
2b. upってきたファイルの内容をbase64変換してhiddenタグにブチコミ=>確認画面に送り返す
3. ユーザが確認フォームポチ
4a. セッション変数から内容とりだしてファイル作成
4b. POSTで渡ってきたやつをデコードしてファイル作成

これなら2の時点でworkファイルを作成する必要はないが
本末転倒な気がするのは気のせいではない
0704nobodyさん2007/07/05(木) 22:24:32ID:???
>>703
2b.みて
alt.binariesとかで必死にエロ写真集めてたのを思い出してしまった
0705nobodyさん2007/07/05(木) 22:36:16ID:???
おいおい、POSTで持ち回すって事は、結局
一回サーバー側にデータが一時的に記憶されるだろ。

解答してる奴は質問自体がおかしい事に気づけよ。

tempフォルダに保存しないで持ち回したところで
無駄なメモリを大量に消費するだけ。
メモリ足らなくてswapしてれば実際HDDに
データが一時的に保存される。
0706nobodyさん2007/07/05(木) 22:39:15ID:???
>>705
本末転倒って書いてるみたいだが。
0707nobodyさん2007/07/05(木) 22:48:40ID:???
swap発生するほど永続的に持ちまわすとは書いてないだろw
0708nobodyさん2007/07/05(木) 22:54:57ID:RGCqp4CW
phpで画像掲示板うpしたんですがエラーログに
File does not exist: /var/www/home/*****/public_html/favicon.ico
と出ています。(*****は伏せ字にしました)
自分でテストした限りではエラーは確認できなかったのですが
ほかの人の環境でエラーが出ているのでしょうか?

0709nobodyさん2007/07/05(木) 23:16:31ID:SLYFGG6J
あ、ちょうどアップローダーのお話しの際にメモリのお話しにもなったので質問を。

共有サーバーでスクリプトを動かす際、
「どれだけCPUに負荷がかかった」とか「どれだけメモリをつかった」
みたいなのはPHPではわからないものですかね?

>File does not exist: /var/www/home/*****/public_html/favicon.ico
適当な答えですが、たしかIEが自動でアイコン(favicon.ico)をとりにいくから
アイコンがないとエラーログとして残るのでは?
0710nobodyさん2007/07/05(木) 23:38:30ID:???
>>709
*nix系ならば

php直なら、getrusage()とか

system経由なら、pid(getmypid()でとれる)指定でsar とか ps auxfとか (+ watchの組み合わせも)


詳しくは man で調べてみ
0711nobodyさん2007/07/06(金) 00:02:10ID:???
>>709
サンクス
解決しました
0712nobodyさん2007/07/06(金) 00:44:44ID:???
絶対パスでインクルードしたいのですが

include("/home/xxx/www/test.php");

という風に長いので"/home/xxx/www/"の部分を省略して
include("/test.php");
のようにするには、どうすればいいですか?

ini_set("include_path", ".:/home/xxx/www");
とやってみても変化なしでした
根本的に使い方間違ってます?
0713nobodyさん2007/07/06(金) 00:46:12ID:???
>>712
相対パスでググれ
0714nobodyさん2007/07/06(金) 00:53:10ID:???
ini_setはそのままで

include("/test.php");

include("test.php");
0715nobodyさん2007/07/06(金) 00:57:39ID:???
>>712
1行目の記述通り相対じゃなくて絶対パスなら

define("HOGE", "/home/xxx/www");を共通のconfigファイルとかに宣言しておいて
include(HOGE."/test.php");

相対パス指定なら / イラネ

0716nobodyさん2007/07/06(金) 01:43:51ID:???
ini_set("include_path", ini_get("include_path") . ":/home/xxx/www");
のほうが環境にやさしくね
0717nobodyさん2007/07/06(金) 02:10:14ID:???
不特定のサーバですぐ使えるよう相対パスのほうがいい
0718nobodyさん2007/07/06(金) 02:20:16ID:???
どうでもいいよ
0719nobodyさん2007/07/06(金) 02:30:25ID:???
どうでもいいのはおまえだけでいいよ
0720nobodyさん2007/07/06(金) 02:35:51ID:???
レス感謝です

設定ファイルがいじれるかどうか不明なので
define〜を記述したphpを置いてrequireなどで呼び出してみたらうまくいきました

include_pathの事をえらい勘違いしてたようなのですが、include_pathで設定した
下の階層を指定する場合は、絶対パスはNGで相対パスはOKって事になるんですか?
基点の設定ができたとおもって絶対パスでやるものだと思っていました
0721nobodyさん2007/07/06(金) 03:07:15ID:???
まず貴様は絶対パスと相対パスの書き方を覚えるところからスタートしろ
話はそれからだ
0722nobodyさん2007/07/06(金) 03:49:08ID:???
どうでもいいよ
0723nobodyさん2007/07/06(金) 04:55:35ID:i/Ome2c4
パーミッションについて質問です。
phpをアップロードするとき755とか705とかファイルによって設定すると思うのですが、
どういうファイルにどう権限をつけていいのかわかりません。
よくphpスクリプトは755、データファイルは644というのを聞きましたがどういう意味なんでしょうか?
0724nobodyさん2007/07/06(金) 05:15:44ID:???
いくらなんでもそれくらい本やweb探せばいくらでもあるじゃんかよー
0725nobodyさん2007/07/06(金) 05:19:03ID:???
>>723
まずは、
ttp://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3

みてみ。

基本的には644 、 他者に読まれてはまずい設定ファイル系は 600
バッチ系は755(そもそもDocumentRoot配下に置くべきでない)
0726nobodyさん2007/07/06(金) 09:58:12ID:???
サーバユーザとアップロードユーザがどういう関係になっているかが
わからないとら一概に言えない。
0727nobodyさん2007/07/06(金) 11:46:53ID:???
思うんだけど、perlの本にはパーミッションのことが沢山かかれているけど、
phpとかjavaの本にファイルのパーミションの説明がほとんど出てこないように思うんだけど、どうよ?
0728nobodyさん2007/07/06(金) 11:53:17ID:???
そうよ!
0729nobodyさん2007/07/06(金) 12:18:56ID:OGNgzj8J
valueに引数入れるのってどうしたらいいの?
0730nobodyさん2007/07/06(金) 12:58:01ID:X/pls0rO
暗証入力できるメールフォームってどこかに有りませんか?
ご存知でしたら教えてください
0731nobodyさん2007/07/06(金) 13:12:08ID:???
>>729
'value = "' . $arg . '"'

>>730
暗証入力ってなに
07327232007/07/06(金) 13:36:07ID:i/Ome2c4
ありがとうございます
いまいちパーミッションが理解できないです。
オーナー、グループ、その他に権限を与えるわけですが、たとえばレンタルサーバ上でいうのなら
オーナーとはアップロードした本人のことで、グループは同じサーバ上のべつの契約者で、
その他はアクセスしてきた人ってことですか?
0733nobodyさん2007/07/06(金) 13:45:39ID:???
スレ違い
0734nobodyさん2007/07/06(金) 14:11:25ID:EFO1QIGV
ああああ
とか
bbbb
とか
同じ文字列が連続しているかどうかを判定したいのですが、
for文で一文字ずつ判定する方法以外にいい方法ってないでしょうか?
0735nobodyさん2007/07/06(金) 15:01:36ID:???
>>734
正規表現
0736nobodyさん2007/07/06(金) 15:04:32ID:EFO1QIGV
>>735
正規表現も探ってみたのですが、日本語も含む2バイト文字対応で、
同じ文字列が連続しているかどうかを正規表現で表すことってできますか?
0737nobodyさん2007/07/06(金) 15:05:13ID:???
>>732
板ちがいlinuxかunix板で聞くべき
0738nobodyさん2007/07/06(金) 15:32:40ID:???
>>736
できる
07397232007/07/06(金) 15:36:35ID:i/Ome2c4
LINUX板で伺ってきます。
すみませんでした
0740nobodyさん2007/07/06(金) 16:04:38ID:???
>>735 >>738
五歳かよw
0741nobodyさん2007/07/06(金) 16:09:04ID:???
>>740
ちがう
0742nobodyさん2007/07/06(金) 16:17:14ID:d4vmUHbH
フリーでPHPプログラミングされている方
どのような仕事をしているのでしょうか?

やっぱり大規模システム開発がメインなのでしょうか?
0743nobodyさん2007/07/06(金) 17:09:01ID:???
>>740
http://www.asks.jp/users/hiro/20193.html
のパターン2
0744nobodyさん2007/07/06(金) 17:16:43ID:???
>>742
こちらへ誘導
http://pc11.2ch.net/test/read.cgi/php/1183023058/
0745nobodyさん2007/07/06(金) 17:18:55ID:???
>>742
特定対象向け弁茶、開発スピード重視の為php、他の言語でもいいけどphpはなんだかんいって楽

仕事時間は目が覚めてから眠くなるまで。端から見ると立派な自宅警備員だが。
0746nobodyさん2007/07/06(金) 17:21:16ID:d4vmUHbH
>>745
サンクス
0747nobodyさん2007/07/06(金) 17:47:36ID:???
>>743
お前もわかってないねぇ。この場合のパターン2は>>735の時点でコードを書くことなんだよ。
まさに「どんな素晴らしいセーフティをつけても自分の足を撃つバカは必ず現れる」というやつだ。
結果として何も解決していないし「正規表現」で解決する筈がないことは>>734を見れば普通わかる。
普通はな。五歳でもない限り。
0748nobodyさん2007/07/06(金) 17:48:33ID:???
いやいや正規表現でできるだろ
0749nobodyさん2007/07/06(金) 17:50:07ID:???
もちろんできるよ。でも「正規表現」と言えば>>734が問題を解決できるとは思えない。普通は。
0750nobodyさん2007/07/06(金) 17:53:52ID:d4vmUHbH
Windowsで別のドライブを取得する方法はありませんか?
CドライブからopendirでDドライブをファイルを読み込みたいのですが・・・
0751nobodyさん2007/07/06(金) 17:54:42ID:???
できるわけねえだろバカ
0752nobodyさん2007/07/06(金) 17:57:21ID:???
>>747
全員にそれを求めるなよ。あほなんじゃないのか。
0753nobodyさん2007/07/06(金) 17:59:19ID:???
>>1
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0754nobodyさん2007/07/06(金) 17:59:37ID:???
>>751
お前は正規表現使ったことない可愛そうなやつなんですね^^
0755nobodyさん2007/07/06(金) 18:03:27ID:???
必死祭りじゃ〜い
0756nobodyさん2007/07/06(金) 18:04:54ID:???
>>752
求めるとは?想像を絶する凄いのが無駄に粘ってるのを五歳かよと笑っただけだよ。
このスレは基本的にウォッチして笑ってるだけだから。
これは勘でしかないけど、>>735>>734にマッチする正規表現を絶対書けないと思う。
0757nobodyさん2007/07/06(金) 18:06:45ID:???
次の質問でどぞー
0758nobodyさん2007/07/06(金) 18:06:57ID:???
>>756
>>735は「答え」じゃなく「方法」を書いてるんだろ
>>734が正規表現を知っていたら「正規表現でどのように書けば良いですか?」と質問するはずだ
0759nobodyさん2007/07/06(金) 18:08:44ID:???
>>758
だからさ。それが普通は目に見えてるんだから、明らかな二度手間、三度手間を
かけたがるのは不思議ですねって言ってんの。
0760nobodyさん2007/07/06(金) 18:10:33ID:???
>>759
自分で調べる努力つけさせる回答方法だろ
俺には適切な回答に見える
0761nobodyさん2007/07/06(金) 18:12:15ID:???
>>760
だとしたら>>743は無効だな。それならそれで何も異存は無い。
0762nobodyさん2007/07/06(金) 18:15:08ID:???
あぁでもお前らはこの調子で頑張れよ。このスレはかなりいい線来てるから。
すぐそこまで笑いの神が降りて来てる。
0763nobodyさん2007/07/06(金) 18:15:45ID:???
>>761
すまん、>>743に対してだったのか
てっきり、>>735の回答が適切かどうかの討論かと思ってた
■ このスレッドは過去ログ倉庫に格納されています