【PHP】くだらねぇ質問はここに書き込みやがれpart4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/03/13 16:08:32ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
0112nobodyさん
05/03/18 18:54:53ID:???0113100
05/03/18 21:41:06ID:???今いるページ(動的)を表示させるにはどうしたもんでしょうか?
$_SERVER['PHP_SELF'];
や、
$_SERVER['PATH_TRANSLATED'];
だと、そのファイル自体が出てしまいますが、
http://xxx.com/hoge.php?huga=1&hage=2とか、
.htaccessでちょっと違う渡し方(http://xxx.com/1/2/みたいな感じ)をしてたりするので、
つまりは、アドレスバーに出ているパスがわかる手法なんてありませんですか?
0114100
05/03/18 21:42:08ID:???0115nobodyさん
05/03/18 22:01:03ID:???0117nobodyさん
05/03/18 22:42:36ID:???最後ギガワロスwwwwwwwwwwwwwwwww
義兄さんいいやつカッコイイwwwwwwwwww
↓の1とは大違いだwwwwwww
http://ex10.2ch.net/test/read.cgi/news4vip/1111083418/
0119nobodyさん
05/03/19 20:15:14ID:+syTbEnIPHPスクリプトからパスワード入力が必要なページにアクセスするのはどうやればいいんでしょうか?
[パスワード認証ページ]
pass.php ($_POST['pass']に対応した入力ボックスがある)
0122119
05/03/19 21:31:07ID:+syTbEnI教えて頂いたcURLを使用して以下の様なコードを作成して実行したのですが
「ERROR!」が表示されてしまい、どうも上手く行きません…
スクリプトで指定したパスワードをコピー&ペーストで手動でボックスに入力して
ログインすると問題ないので、パスワードは間違ってないはずなのですが…
どこが悪いのでしょう??
-------------------------------
[access.php]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 'test_pass');
curl_exec($ch);
curl_close($ch);
-------------------------------
[login.php]
if($_POST['password'] == 'test_pass'){
print("OK!\n");
}else{
print("ERROR!\n");
}
-------------------------------
0123nobodyさん
05/03/19 21:42:05ID:???curlは使ったこと無いからぱっと見の印象だけど、
passwordという文字がどこにも無いのにそれがPOSTで割り当てられるとは到底思えない。
そう思って本家のマニュアルを見てみれば、user notesにサンプルまであったよ。
0124119
05/03/19 22:04:12ID:???そうですよね… アホなコード書いてしまってた…
以下で問題なくアクセス出来る様になりました。
どうもありがとうございました!
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'password=test_pass');
curl_exec($ch);
curl_close($ch);
0125nobodyさん
05/03/20 00:17:39ID:Agj+ehs1ポインタのみ返される(=配列が巨大になってもコストは変わらない)
のでしょうか?
それともまるまるコピーされるのでしょうか?
0126nobodyさん
05/03/20 01:09:28ID:???0127nobodyさん
05/03/20 01:42:16ID:HpwY0q6P鯖管理のスクリプトとして使ってました。
このたびphpを勉強しようと思うのですが、お勧めの書籍などあれば
教えていただきたいのですが。
0128nobodyさん
05/03/20 01:53:14ID:???不安になったら既存のスクリプトを読むとか。
あとは何がしたいかによるけど。
0129nobodyさん
05/03/20 01:58:29ID:HpwY0q6P0130nobodyさん
05/03/20 02:17:44ID:???なんだったら、こっちで訊いて
PHP関連の書籍(但しPHP出版系お断り)
http://pc5.2ch.net/test/read.cgi/php/985315574/893-
バカが沸いて最後変になってるけど。
0131nobodyさん
05/03/20 04:41:31ID:06hYr4Ff書き出すのは上手くいったのですが、
もっとスマートな書き方があるかもしれないと思い、質問です。
自身のファイルに書き出す場合なら
echo = 'hoge';
echo = 'hage';
のところを、一番最初に $kakikomi = ""; とした上で
$kakikomi .= "hoge";
$kakikomi .= "hage";
と$kakikomiに追記を繰り返し、最後に
fputs ( "test.html", $kakikomi );
で出力しています。
変数に追記していく点が、どうかなぁと思うのですが
いかがでしょうか???
0132nobodyさん
05/03/20 05:54:38ID:???そんなんで良いんでね。
行間がどれ位離れてるのか隣接してるの判らんし。
他には隣接してるならヒアドキュメント使うとか、
array_push()使って溜めて、最後にjoin()して書き出しとか。
0133131
05/03/20 10:11:25ID:otGG2Eg1ありがとう。
ヒアドキュメントは使えるところには使ってみました。
なるほど、array_pushも使えますね。。。メモメモ
0134nobodyさん
05/03/20 11:35:21ID:???htmlspecialchars()を使ったのですが\nと\rを<br>に置き換えているためか
改行されず、そのまま<br>と表示されてしまいます。
うまく表示するためにはどうしたらよいのでしょうか?
0135nobodyさん
05/03/20 12:33:41ID:???0136nobodyさん
05/03/20 12:54:44ID:???$comment = str_replace("\r\n", "\r", $post['comment']);
$comment = str_replace("\r", "\n", $comment);//改行文字統一
$comment = preg_replace("/\n{2,}/", "\n\n", $comment);//2行以上の改行を2行に
if (substr_count($comment, "\n") > MAXBR) error("えら!");
$comment = eregi_replace("&([0-9a-z#]+);", "&\\1;", $comment);
$post['comment'] = str_replace("\n", "<br>", $comment);//\nをbrに
0137nobodyさん
05/03/20 13:28:23ID:???array_push()は、$array[]='hoge';でも等価。
あと結果用の自前のクラス作って、そこにpushとwriteってメソッド付けるとか。
(関数でもいいけど。巷のログ出力用のクラスを参考に)
0138nobodyさん
05/03/20 17:08:29ID:MmiCb60Cどこかにありますか?
0139papupapu
05/03/20 17:11:22ID:???0143nobodyさん
05/03/20 17:34:03ID:???0144nobodyさん
05/03/20 21:32:17ID:???イメージディレクトリからファイル名を指定して探し出しURLとして表示させたいのです。
img.phpで以下を保存し、ファイル名の指定はimg.php?aaa.jpg等としたいです。
このときのOOOOをどう表現すればいいのでしょうか?
$dir = "./img/";
$file = strstr(OOOO, '?');
glob("$dir/$file");
0147nobodyさん
05/03/20 23:29:17ID:???洗ってから食べなさい。
0148nobodyさん
05/03/20 23:45:27ID:???0150149
05/03/20 23:59:40ID:???0152nobodyさん
05/03/21 01:46:48ID:???eregで判別するのと「.」をトークンとして分割しその値を==で判別するのでは
どちらが効率が良いですか?
0153nobodyさん
05/03/21 01:55:46ID:???「.」区切りを整数になおす関数もあるぞ。んで、サブネット指定できる。
その辺をうまくやりくりしてくれる関数は前に誰かに質問されて、
こっちかホンスレに書いた。DAT落ちしててみれないかもだけど。
あと、逆引きできるならリモートホストの後方一致って手もある。
0154153
2005/03/21(月) 04:13:25ID:MBpHY0ekWebProg板は不慣れなのでお手柔らかにお願い申し上げます。
PHPとHTML混在の為、文字コードをEUCにして
すべてのページを作成していますが、
内部ページとボタンのポップアップメニューが
文字化けがでたりでなかったり、ひどいです。
DreamWeaverテンプレートをEUCで作成して、
そこから全ページEUC(.htmlのページも.phpのページも)
で読み出して作成しています。これが文字化けの原因なのでしょうか。
それともPHP自体テンプレートから引き出して作らず個別で製作したほうが良いのでしょうか?
もちろんPHPが画面上にPrintする部分は編集可能領域にしてあります。
それとも、ふと思ったのですが、
テンプレートもそこから新規作成するページもShift-JISで作成し、
挿入>PHP>PHPインクルード+PHPページエンコーディングで
<?php include(mb_http_input("EUC-JP"); mb_http_output("EUC-JP");); ?>
といれればそれで良いのでしょうか。
DWの機能も内容にはいっていて
板違いは承知ですが、質問させてもらいました。
これだからデザは、、などといわれるのは覚悟の上ですが、
知識ございますかた、ご教授ください。宜しくお願い申し上げます。
0155nobodyさん
2005/03/21(月) 04:26:03ID:???それでオイラはどっちのスレで答えればいいのかね ゚・(ノД`)・゚・
ttp://pc5.2ch.net/test/read.cgi/hp/1106804437/713
DWのEUC対応が不完全なせいじゃないかなぁ。
バージョン上がる度にEUCの問題を起こしてる気が。
HTTP入出力をEUC、スクリプトをSJIS(HTMLに埋め込みっぽいから)にすると
トラブルの原因にもなるので、EUCに統一した方がよいかと。
で、DWでSJISで作って 出来上がったファイル(s)をなんらかのツールで
EUCに変換するのが楽じゃないかなぁ。
0157154
2005/03/21(月) 05:25:47ID:???おっしゃる通りです。
マルチです。申し訳ありません。どちらに書いたらいいのか判断がつかなかったので
ご容赦ください。
(1)同一サイト内で文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので避けるべきですよね?
(2)それと.phpのページに対してDWのテンプレート機能は使用しても問題ないのでしょうか
とりあえずご教示いただいた通り、S-JISにて作成して、秀かMiにて、
文字コード変換を手動ですることにします。
>>153
ゴメソ
0158nobodyさん
2005/03/21(月) 05:47:40ID:???マルチはやめろ。
判断つかないならサイコロでも何でもいいから1つに決めて質問しろ。
不適切ならきっと誘導してくれる。
0159154
2005/03/21(月) 06:28:46ID:???http://pc5.2ch.net/test/read.cgi/hp/1106804437/715
みなさんレスいただきましてありがとうございます。
おそらく期末前で徹夜で仕事しながら私の質問をみていただいている方も
大勢いらっしゃるはず。反省しております。
再度整理して質問させてください。
(1)同一サイト内でページごとに文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので絶対避けるべきでしょうか?
(2).php等のサーバーサイドの動的コンテンツに対してDWのHTMLテンプレート機能は使用しても問題ないのでしょうか
以上です。宜しくお願い致します。
0160nobodyさん
2005/03/21(月) 06:40:40ID:???1しかわからんけど。
ちゃんと文字コードを指定してたら問題ないんじゃないか?
フレームとかincludeさせちゃうとダメだろうけど。
0161nobodyさん
2005/03/21(月) 11:31:46ID:Xj0YOktX拡張子を.phpにしてアップさせなければいいのではというの以外に、
.htaccessなんかで設定できるディレクティブはありませんか?
0164161
2005/03/21(月) 12:55:21ID:???ありがとう。
.htaccessに
AddType text/html .php
だけ書き込んだら、できたよ。
最初、internal server errorが出たんで、???って思ったけど、htttpd.confで
AllowOverride Fileinfo
を付け加えたよ。
ちなみに、php addtypeでググったら
ttp://nanakorobiyaoki.at.infoseek.co.jp/etc/phpdeny.html
が出て来た。検索しづらいなーって思って↑を作ってくれたみたいだけど、
162に教わった後だからあんまり意味なかった。
0165nobodyさん
2005/03/21(月) 13:04:31ID:???さんくす。参考になりました。
リンクをクリックしたかどうかを判別する何かいい方法はありませんか?
携帯向けだからリファラでは判別できないし
やはりユニークIDを付けてリンク先に飛ばす前にファイルに書き込むしかないでしょうか?
0166166
2005/03/21(月) 13:08:34ID:???Options -ExecCGI
AddType text/plain .php .html .cgi .css
IEだと意味無い部分もあるけど自分はIE使ってないので変なブラクラ踏まされることも無い
0167nobodyさん
2005/03/21(月) 14:14:44ID:???(1) ちゃんとhttpdの設定でHTTPヘッダに適正な文字コードの出力がなされ、
かつHTMLドキュメントのMETAの方でも適正な文字コードが指定されてれば
まず問題はないので絶対とは思わない。しかしブラウザによってはPOSTする
文字コードが混乱して変なことになったことがあるので、
余り混在させるべきではないと経験的に考える。
(2) DWを知らんので回答できず
0169nobodyさん
2005/03/21(月) 18:49:50ID:???echo ltrim('web_content/text','web_cont');
上と下では結果が結構違うんだけども・・
何故に?
あ、やりたいことは親ディレクトリ名を切り取りたいだけです。。orz
0170nobodyさん
2005/03/21(月) 19:05:27ID:???どうおかしいと感じたのか書いてないので想像するしかないですが、
ltrimの2つ目のパラメータの意味を勘違いしているものと思われます。
ltrimの2つ目のパラメータは「削除したい全ての文字をリスト」したものです。(not 文字列)
1つ目のltrimは、8文字目のtでパラメータに無い文字を発見するので、それ以降の文字が返されます。
2つ目のltrimは、12文字目の/でパラメータに無い文字を発見するので、それ以降の文字が返されます。
目的にそぐわない関数だと思われます。
0172nobodyさん
2005/03/21(月) 19:35:59ID:???0173nobodyさん
2005/03/21(月) 20:59:31ID:???ltrim($xxx, "-");
って載ってるから同じような物かなーと思ったけど、
第2パラメータの文字列が配列として1文字ずつ比較(?)されてたから、
第1パラメータのみに存在する文字が出た時にそこから後ろが抽出された訳・・かな?
>>170 (なんかカコイイ。。Thanks!)
>>171
>>172
ありがとうございました。
と、言うわけで質問します。
カレントディレクトリ名を取得する関数などはあるのでしょうか?
フルパスではなくて、ディレクトリ名です。
www.xxx/php/index.htm の場合、 php とディレクトリ名を取得したい。
0174nobodyさん
2005/03/21(月) 21:04:01ID:???これってPHP4のスクリプトは書き換えないと使えないの?
0175nobodyさん
2005/03/21(月) 21:39:18ID:???$path = "www.xxx/php/index.htm";
echo basename(dirname($path));
0176131
2005/03/21(月) 23:25:37ID:???亀レスですが、ご丁寧にありがとう。
まだPHPを触り始めて1週間とかなので、
非常に参考になります!
0177nobodyさん
2005/03/22(火) 18:29:04ID:LgrnIX4+ログファイルに<!--- --->で囲まれた部分を複数出力する方法を
お尋ねしたところ
$reg = "/<!--- (.+?) --->(.+?)<!--- \/\\1 --->/";
preg_match_all($reg, $RetrieveFile, $DataPrint);
と御教授いただいたのですがechoの書き方がわからず参ってます。
echo $DataPrintと書いてもecho $DataPrint[0とか1とか2とか]書いても
全てArrayになるのですが、$regの2番目の(.+?)に該当する部分を
出力するにはどうしたらいいのでしょうか?
0178軟式PHP
2005/03/22(火) 18:53:07ID:???0180nobodyさん
2005/03/22(火) 23:19:38ID:???0181nobodyさん
2005/03/22(火) 23:23:26ID:???0182nobodyさん
2005/03/23(水) 21:06:12ID:???0183nobodyさん
2005/03/24(木) 12:27:03ID:uQ7Kwr2a0184nobodyさん
2005/03/24(木) 12:50:25ID:???0185nobodyさん
2005/03/24(木) 16:11:55ID:cbGEPWrcといったように複数の条件を指定して、その値に従ってページを遷移するPHPスクリプトはご存じでしょうか?
探したのですが、レッツPHPのダウンロードカウンタは1つの条件しか持てないようなので・・
http://php.s3.to/data/#dl
0188nobodyさん
2005/03/24(木) 19:58:00ID:???ページを遷移する、という意味が分からないんだが…
こんなのが欲しいんか?
<?php
$foo = ceil($_GET['foo']);
$bar = ceil($_GET['bar']);
$null = ceil($_GET['null']);
//リダイレクトするURL
$urls[0][0][0] = 'http://www.google.co.jp/';
$urls[0][0][1] = 'http://www.yahoo.co.jp/';
$urls[1][1][0] = 'http://www.goo.ne.jp/';
・
・
header('Location: '.$urls[$foo][$bar][$null]);
?>
0189185
2005/03/24(木) 20:42:36ID:???そういう感じです。
何処を見ていいかわからなかったもので検索後もいろいろ試してみたんですが・・
やってみます、ありがとうございました。
0190185
2005/03/24(木) 20:50:30ID:???http://hoge.com/?product=foo&version=1.2&os=mac
0191nobodyさん
2005/03/24(木) 21:36:58ID:???それリダイレクトなんかじゃなく
ちゃんとデータベース作ってやった方がいいですよ
0193nobodyさん
2005/03/25(金) 03:25:56ID:EQZt/eu0以下のようなスクリプトをシェル上で実行すると ghijk がちゃんと
出力されるのですがweb経由でスクリプトにアクセスすると何も表示されません。
どうすればwebでも読めるようになりますか?
<?php
$data = "abcdef\nghijk\nlmnopqr";
$fp = popen("/usr/bin/grep 'i'", "w");
fputs($fp, $data);
pclose($fp);
?>
0196nobodyさん
2005/03/25(金) 14:33:31ID:???それをifに渡してやることって可能ですか?
以下のようなイメージです。
$f = 'is_string($str) && strlen($str) > 0';
if($f){
// 文字列
}else{
// それ以外
}
0199nobodyさん
2005/03/25(金) 15:30:26ID:???0200nobodyさん
2005/03/25(金) 15:42:25ID:???そういう意味じゃなくて、194はコンソールアクセス(成功した方)と
同等の環境(権限とかパスとか)をWebアクセスにも与えろってことだと思うよ。
0201nobodyさん
2005/03/25(金) 15:55:13ID:???入力されたものをevalするのはやめろ
readfile(\"/etc/passwd\");
とか入力されるぞ
0204193
2005/03/25(金) 19:31:21ID:???えっと、grepのパスも/usr/bin/grepとフルパスで指定しているし
grepのパーミッションも-r-xr-xr-xの状態ですけど、これ以外にも
環境を合わせないといけないところがあるということでしょうか?
0206193
2005/03/25(金) 20:22:33ID:???とりあえずerror_logには何も残ってません。
ブラウザー上にはエラーさえも出ません。
念のためtelnetでwebサーバーにつなげてみましたが以下の通り
ヘッダ以下には何も書いてありませんでした。
$ telnet www 80
Trying xxx.xxx.xxx.xxx...
Connected to www.
Escape character is '^]'.
GET /~myuser/test.php HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 25 Mar 2005 11:16:58 GMT
Server: Apache
X-Powered-By: PHP/4.3.10
Content-Length: 0
Connection: close
Content-Type: text/html
Connection closed by foreign host.
$
0208193
2005/03/25(金) 21:11:43ID:???なるほど。そういうものだったんですか。
サーバー管理者ではないのでphp.iniとかの書き換えはできませんが
error_reporting(E_ALL);
を付け加えてやってみました。error_reporting関数を使っても
エラーは何も出てこないですねー…
0209nobodyさん
2005/03/25(金) 21:36:57ID:???display_errorsやほかその他エラー関連の設定は?
エラー関連の設定はほぼ全部ini_setで変更できる
0210nobodyさん
2005/03/25(金) 23:41:48ID:???0211nobodyさん
2005/03/26(土) 02:13:41ID:???popenで開いて、開いたプロセスに$dataを入力として渡してるが、
プロセスからの出力は、拾ってないぞ?
popenは一方向のパイプしか扱えないから、
proc_openをつかえ。
んで、fputsで$data渡した後、fgetsなりなんなりして結果を取得してくれ。
proc_openの使い方はpopenとは異なるからマニュアル嫁よ。
0212193
2005/03/26(土) 06:11:40ID:???ini_setで変更できるの初めて知りました。
とりあえず以下を追加しましたがやはり何もエラーは残りませんでした。
ini_set("display_errors", "on");
ini_set("log_errors", "on");
ini_set("error_log", "log.txt");
■ このスレッドは過去ログ倉庫に格納されています