【PHP】下らねぇ質問はここに書き込みやがれ 49
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/06/26(火) 03:03:40ID:ox2uyHLdPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、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:???0667nobodyさん
2007/07/05(木) 10:36:55ID:???なにをいっとるんだ?
それとも何か君のところのWEBサーバーはリファラー偽装したら
.htaccessなんかに直接アクセスして読み込めるのか?
0670nobodyさん
2007/07/05(木) 11:51:54ID:???すぐにタイムアウトになる。
<?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>";
}
}
}
}
?>
0672nobodyさん
2007/07/05(木) 12:10:47ID:???0673nobodyさん
2007/07/05(木) 12:17:15ID:???f(strlen($i)==1){ → if(strlen($i)==1){
はおいておいて、
直リン禁止だったら、Referer をみてたり、UserAgentみてたりする可能性有り
とりあえず wget url名 で取得出来るんかどうか確認してみたら。
>>.671
やっぱライトウエイトな言語だから、民度が相当低い >>.671 みたいなのも混じるんだな。
IQとか学歴とか持ち出すやつに限って相当低かったりする罠
0674nobodyさん
2007/07/05(木) 12:47:14ID:???wgetってPHPの関数かと思ったらそうじゃないんだ。
使い方わからない\(^o^)/
とりあえず、これで何とかした
set_time_limit(0);
0677nobodyさん
2007/07/05(木) 13:07:34ID:???あぁ、基地外だから平常時でこれなのか。笑
0678nobodyさん
2007/07/05(木) 13:21:32ID:???コマンドラインのダウンローダー、画像とか一気にブッコ抜きたいときにつかう。
リンクが乗ってる一覧ページまでは、先にphpで取得しておいて、
そのリンクから取得したいリンクを1行ごとにファイルに書き出して
wget -i (書き出したファイルのパス)
みたいにする。ちなみにwindows用もある
0679nobodyさん
2007/07/05(木) 13:29:28ID:???0680nobodyさん
2007/07/05(木) 13:36:58ID:???"直接"アクセス禁止って書いてるから
リファラーで判断するのかなって思っただけ。
<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>を取り除きたいのですが、いい方法がありますか?
お願いします。
0686nobodyさん
2007/07/05(木) 15:27:13ID:???ありがとうございます
strip_tags($text, '<br>');
ただ、これだと逆に<br>だけのこってしまいますが、削除するほうほうがないでしょうか?
0687nobodyさん
2007/07/05(木) 15:33:51ID:???0689nobodyさん
2007/07/05(木) 17:09:38ID:???0691nobodyさん
2007/07/05(木) 18:01:12ID:???str_replace("\n", "<br>", $text)
これだと改行された上に<br>が追加されてしまいます。
完全に置換するにはどうすればよいでしょうか?
0692nobodyさん
2007/07/05(木) 18:08:04ID:???str_replace(array("\r\n", "\r", "\n"), "<br>", $text)
0694nobodyさん
2007/07/05(木) 18:13:11ID:5ImFLVVzQ、確認画面にまでテキストフォームだけでなくアップロードフォーム結果を持っていき、
投稿ボタンを押して初めてアップロードさせたい。
A、無理。確認の時点で一時的にアップさせて、後で消すしかない。
mixiは テキスト+画像選択フォーム→確認画面(ローカルファイルのアドレス表示)→実質投降
となっていますが、やっぱり一時的にアップしてますよね?
>>691
\nじゃ足りない とりあえず nl2br()
0695nobodyさん
2007/07/05(木) 18:21:12ID:???mixi内部が実際どうなのかは知らんが、
フォーム→post→一時workディレクトリにmove_uploaded_file
→確認OKなら本当の保管場所に移動、
→途中中止ならworkディレクトリ内の該当ファイル除去、途中でブラウザブチ切りされたファイルはcronで定期的に除去
みたいにやるのが普通かと。途中で画像加工(crop,resize等)を挟む時もwork内で持ち回し出来るし。
0696nobodyさん
2007/07/05(木) 18:46:20ID:???js使えば一時的にアップしなくても、できるんじゃない?
ただmixiの場合は恐らく一時フォルダにアップしてる
0697nobodyさん
2007/07/05(木) 19:00:17ID:???<input type="file">にvalueを入力できるならできるだろうけど
無理だと思うのであきらめたほうがいいと思う
0698nobodyさん
2007/07/05(木) 19:06:40ID:5ImFLVVz>js
具体的に何をさせるのでしょうか?
0699nobodyさん
2007/07/05(木) 19:31:32ID:???0700nobodyさん
2007/07/05(木) 19:43:38ID:5ImFLVVz了解しました。
0701nobodyさん
2007/07/05(木) 19:45:06ID:5ImFLVVz>JavaScript が訪問者のローカルファイルにアクセスできるのは、クッキーだけです。
引き返してきました。
0702695
2007/07/05(木) 21:55:11ID:???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:???かなり無理やり技ならできんこともない
1. ユーザが入力フォームポチ
2a. upってきたファイルの内容をセッション変数にブチコム
2b. upってきたファイルの内容をbase64変換してhiddenタグにブチコミ=>確認画面に送り返す
3. ユーザが確認フォームポチ
4a. セッション変数から内容とりだしてファイル作成
4b. POSTで渡ってきたやつをデコードしてファイル作成
これなら2の時点でworkファイルを作成する必要はないが
本末転倒な気がするのは気のせいではない
0705nobodyさん
2007/07/05(木) 22:36:16ID:???一回サーバー側にデータが一時的に記憶されるだろ。
解答してる奴は質問自体がおかしい事に気づけよ。
tempフォルダに保存しないで持ち回したところで
無駄なメモリを大量に消費するだけ。
メモリ足らなくてswapしてれば実際HDDに
データが一時的に保存される。
0707nobodyさん
2007/07/05(木) 22:48:40ID:???0708nobodyさん
2007/07/05(木) 22:54:57ID:RGCqp4CWFile 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:???*nix系ならば
php直なら、getrusage()とか
system経由なら、pid(getmypid()でとれる)指定でsar とか ps auxfとか (+ watchの組み合わせも)
詳しくは man で調べてみ
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");
とやってみても変化なしでした
根本的に使い方間違ってます?
0714nobodyさん
2007/07/06(金) 00:53:10ID:???include("/test.php");
↓
include("test.php");
0715nobodyさん
2007/07/06(金) 00:57:39ID:???1行目の記述通り相対じゃなくて絶対パスなら
define("HOGE", "/home/xxx/www");を共通のconfigファイルとかに宣言しておいて
include(HOGE."/test.php");
相対パス指定なら / イラネ
0716nobodyさん
2007/07/06(金) 01:43:51ID:???のほうが環境にやさしくね
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/Ome2c4phpをアップロードするとき755とか705とかファイルによって設定すると思うのですが、
どういうファイルにどう権限をつけていいのかわかりません。
よくphpスクリプトは755、データファイルは644というのを聞きましたがどういう意味なんでしょうか?
0724nobodyさん
2007/07/06(金) 05:15:44ID:???0725nobodyさん
2007/07/06(金) 05:19:03ID:???まずは、
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:???phpとかjavaの本にファイルのパーミションの説明がほとんど出てこないように思うんだけど、どうよ?
0728nobodyさん
2007/07/06(金) 11:53:17ID:???0729nobodyさん
2007/07/06(金) 12:18:56ID:OGNgzj8J0730nobodyさん
2007/07/06(金) 12:58:01ID:X/pls0rOご存知でしたら教えてください
0732723
2007/07/06(金) 13:36:07ID:i/Ome2c4いまいちパーミッションが理解できないです。
オーナー、グループ、その他に権限を与えるわけですが、たとえばレンタルサーバ上でいうのなら
オーナーとはアップロードした本人のことで、グループは同じサーバ上のべつの契約者で、
その他はアクセスしてきた人ってことですか?
0733nobodyさん
2007/07/06(金) 13:45:39ID:???0734nobodyさん
2007/07/06(金) 14:11:25ID:EFO1QIGVとか
bbbb
とか
同じ文字列が連続しているかどうかを判定したいのですが、
for文で一文字ずつ判定する方法以外にいい方法ってないでしょうか?
0736nobodyさん
2007/07/06(金) 15:04:32ID:EFO1QIGV正規表現も探ってみたのですが、日本語も含む2バイト文字対応で、
同じ文字列が連続しているかどうかを正規表現で表すことってできますか?
0739723
2007/07/06(金) 15:36:35ID:i/Ome2c4すみませんでした
0742nobodyさん
2007/07/06(金) 16:17:14ID:d4vmUHbHどのような仕事をしているのでしょうか?
やっぱり大規模システム開発がメインなのでしょうか?
0743nobodyさん
2007/07/06(金) 17:09:01ID:???http://www.asks.jp/users/hiro/20193.html
のパターン2
0744nobodyさん
2007/07/06(金) 17:16:43ID:???こちらへ誘導
http://pc11.2ch.net/test/read.cgi/php/1183023058/
0745nobodyさん
2007/07/06(金) 17:18:55ID:???特定対象向け弁茶、開発スピード重視の為php、他の言語でもいいけどphpはなんだかんいって楽
仕事時間は目が覚めてから眠くなるまで。端から見ると立派な自宅警備員だが。
0746nobodyさん
2007/07/06(金) 17:21:16ID:d4vmUHbHサンクス
0747nobodyさん
2007/07/06(金) 17:47:36ID:???お前もわかってないねぇ。この場合のパターン2は>>735の時点でコードを書くことなんだよ。
まさに「どんな素晴らしいセーフティをつけても自分の足を撃つバカは必ず現れる」というやつだ。
結果として何も解決していないし「正規表現」で解決する筈がないことは>>734を見れば普通わかる。
普通はな。五歳でもない限り。
0748nobodyさん
2007/07/06(金) 17:48:33ID:???0750nobodyさん
2007/07/06(金) 17:53:52ID:d4vmUHbHCドライブからopendirでDドライブをファイルを読み込みたいのですが・・・
0751nobodyさん
2007/07/06(金) 17:54:42ID:???0753nobodyさん
2007/07/06(金) 17:59:19ID:???> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0755nobodyさん
2007/07/06(金) 18:03:27ID:???0756nobodyさん
2007/07/06(金) 18:04:54ID:???求めるとは?想像を絶する凄いのが無駄に粘ってるのを五歳かよと笑っただけだよ。
このスレは基本的にウォッチして笑ってるだけだから。
これは勘でしかないけど、>>735は>>734にマッチする正規表現を絶対書けないと思う。
0757nobodyさん
2007/07/06(金) 18:06:45ID:???0758nobodyさん
2007/07/06(金) 18:06:57ID:???>>735は「答え」じゃなく「方法」を書いてるんだろ
>>734が正規表現を知っていたら「正規表現でどのように書けば良いですか?」と質問するはずだ
0759nobodyさん
2007/07/06(金) 18:08:44ID:???だからさ。それが普通は目に見えてるんだから、明らかな二度手間、三度手間を
かけたがるのは不思議ですねって言ってんの。
0762nobodyさん
2007/07/06(金) 18:15:08ID:???すぐそこまで笑いの神が降りて来てる。
■ このスレッドは過去ログ倉庫に格納されています