【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0013nobodyさん
2006/07/07(金) 21:26:07ID:???ヒント
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&safe=off&ie=UTF-8&oe=SJIS&q=%70%68%70%20%E5%A4%89%E6%95%B0%20%E9%81%A9%E7%94%A8%E7%AF%84%E5%9B%B2
00149
2006/07/07(金) 21:29:53ID:???最初にglobalで、使う変数を宣言しておかないといけないのですね
00159
2006/07/07(金) 21:33:20ID:???define('LOG_DATA',"./data/log".$_GET['id'].".cgi");
define('MEMBER_DATA',"./data/member".$_GET['id'].".cgi");
//データfileで開く
function open(){
global $log_file,$member_file;
$log_data= file(LOG_DATA);
$member_data= file(MEMBER_DATA);
return array($log_data,$member_data);
}
//fileで開いたデータをリバース
function reverse(){
global $log_data,$member_data;
$log_data= array_reverse($log_data);
$member_data= array_reverse($member_data);
return array($log_data,$member_data);
}
?>
としたら解決しました。ありがとうございました。
0016nobodyさん
2006/07/07(金) 21:53:35ID:d9ruQecq$str = 'This is an 自民';
$enc = urlencode( $str );
$dec = urldecode( $enc );
print("str = $str<br>");
print("enc = $enc<br>");
print("dec = $dec");
?>
この実行結果は
str = This is an 自民
enc = This+is+an+%E8%87%AA%E6%B0%91
dec = This is an 自民
0017nobodyさん
2006/07/07(金) 21:54:29ID:d9ruQecqでも「自民」っていう文字列をFORMで受けて表示すると
<?php
$str = "This is an ".$_POST['tag'];
$enc = urlencode( $str );
$dec = urldecode( $enc );
print("str = $str<br>");
print("enc = $enc<br>");
print("dec = $dec");
?>
str = This is an 自民
enc = This+is+an+%8E%A9%96%AF
dec = This is an 自民
こんな風に同じデコードでも違って表示されるみたい
これを同じにするにはどうすればいいですか?
0018nobodyさん
2006/07/07(金) 21:56:24ID:???0019nobodyさん
2006/07/07(金) 22:14:55ID:d9ruQecqすみません、良かったら教えてください。
当方初心者なもので
00219
2006/07/07(金) 22:28:06ID:DAs/sE57違います。
0022nobodyさん
2006/07/07(金) 22:36:42ID:d9ruQecq9の方とは違います
今年女子大を卒業してプログラマーになった者です
明日までにできないと上司に怒られます
教えてください
お願いします
0024nobodyさん
2006/07/07(金) 22:46:33ID:d9ruQecq0025nobodyさん
2006/07/07(金) 22:50:28ID:???初心者なのかプロなのかどっちなんだよ
嘘つくぐらいなら自分で調べろハゲ
0026nobodyさん
2006/07/07(金) 22:51:40ID:d9ruQecq0027nobodyさん
2006/07/07(金) 23:03:38ID:???やりたい事はテキストをUTF-8に変換して保存したいだけなんですが
↓をブラウザから実行するとテキストが文字化けで表示されるだけで終わります
$jis = readfile('jis.txt');
$str = mb_convert_encoding($jis, "UTF-8", "auto");
touch("utf.txt");
$fp = fopen("utf.txt", 'w');
fputs($fp, $str);
fclose($fp);
なんか勘違いしてますでしょうか?
00289
2006/07/07(金) 23:07:10ID:DAs/sE57自分も20ですよ。
今は専門学生で、来年卒業です。
0029nobodyさん
2006/07/07(金) 23:08:25ID:???コンビネーション荒らし?
0030nobodyさん
2006/07/07(金) 23:08:30ID:???readfile関数はファイルから読み込んで標準出力に吐き出す。
ファイルの内容は返されない。
fopenしてから1行づつfgetsで読み込むのが正解。
0031nobodyさん
2006/07/07(金) 23:10:06ID:???0032nobodyさん
2006/07/07(金) 23:55:02ID:???0034nobodyさん
2006/07/08(土) 00:02:57ID:???有り難うございます。↓はちゃんとコピーされるんですが
touch("./dat/utf.txt");
$handle = fopen ("jis.txt", "r");
$fp = fopen("./dat/utf.txt", 'w');
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
fputs($fp, $buffer);
}
↓にすると空のテキストが出来て止まっちゃうみたいです
$handle = fopen ("jis.txt", "r");
$str = mb_convert_encoding($handle, "UTF-8", "auto");
$fp = fopen("./dat/utf.txt", 'w');
while (!feof ($str)) {
$buffer = fgets($str, 4096);
fputs($fp, $buffer);
}
↓みたくmb_convert_encodingの位置を変えても同じでした
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$str = mb_convert_encoding($buffer, "UTF-8", "auto");
fputs($fp, $str);
今度はfile使ってみます
0036nobodyさん
2006/07/08(土) 00:10:56ID:???真ん中は$handleの扱いが変(コピーできている上のと比較してみよう)
下は動きそうなもんだけどな・・・前後が分からんので分からんが
>>27のreadfileをfile_get_contentsに変えるのが簡単だと思うけどな
つかreadfileや他の関数の動作を理解していない点からしてもマニュアル読め
0037nobodyさん
2006/07/08(土) 00:16:49ID:???セットしたクッキーはどこに保存されるのでしょうか?
timeを設定していなかったらずっと残るわけですよね?
0040nobodyさん
2006/07/08(土) 00:39:22ID:???http://www.makers.ne.jp/
のECサイト、どうせどこかのASPパッケージを弄ったものだと
おもうんだけど、誰か心あたりある香具師いますか?
0041nobodyさん
2006/07/08(土) 00:50:56ID:???書いてるのはこれだけです。これでmb_convert_encodingの行抜くと
普通にコピー出来るんですが
<?php
touch("./dat/utf.txt");
$fp = fopen("./dat/utf.txt", 'w');
$handle = fopen ("jis.txt", "r");
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$str = mb_convert_encoding($buffer, "UTF-8", "auto");
fputs($fp, $str);
}
fclose($fp);
fclose($handle);
?>
これでもブラウザに何も表示されないです
$jis = file_get_contents('jis.txt');
$jis = mb_convert_encoding($jis, "UTF-8", "auto");
echo $jis;
0042nobodyさん
2006/07/08(土) 00:51:54ID:???index.phpにunset($str);
frame1.phpに$str="テスト";
これをフォームでframe2.phpに送っています。
frame2でecho $str;
これをリロードさせても、index.phpのunset($str);で変数が消されず、
frame2で$strがそのまま表示されます。
更新すると、index.phpが読み込まれるのではなく、frame1と2が読み込まれるだけなのでしょうか?
0043nobodyさん
2006/07/08(土) 00:52:33ID:fMTjXb+R0045nobodyさん
2006/07/08(土) 01:09:22ID:???それは明らかにおかしい
$buffer = fgets($handle, 4096); // ←$bufferに読み込んでいる
$str = mb_convert_encoding($buffer, "UTF-8", "auto");
fputs($fp, $str); // ←$strを書き込んでいる
mb_convert_encodingの「行を抜いたら」、$strはundefinedになるはず
質問の仕方が悪すぎ。とりあえず>>5
釣りならよそでやってくれ
0047nobodyさん
2006/07/08(土) 01:41:22ID:???0048nobodyさん
2006/07/08(土) 02:24:24ID:???わざわざrequireで呼び出すとやっぱり重たくなりますか?
004927
2006/07/08(土) 03:10:14ID:???結局mbstring自体が入って無い事がわかりました
んでphp_mbstring入れたらあっさり解決しました
いやほんと申し訳なかったです
レスくれた方有り難うございましたm(_ _)m
005043
2006/07/08(土) 03:19:09ID:???0051nobodyさん
2006/07/08(土) 04:20:16ID:???5000行とかいうならともかく50行くらいでは普通気にしない。
500行でもほとんどの場合は気にするほどじゃない。
0053nobodyさん
2006/07/08(土) 07:34:42ID:???0054nobodyさん
2006/07/08(土) 09:20:11ID:???0055nobodyさん
2006/07/08(土) 09:34:09ID:???array_keys で違うんなら具体的に例をあげてくんろ
005654
2006/07/08(土) 09:45:50ID:???$a['a']['b']['c']の1つ上の$a['a']['b']にどうにかしてアクセスしたいと考えております。
0057nobodyさん
2006/07/08(土) 11:20:23ID:???>$a['a']['b']['c']から例えばarray('a','b','c')という結果を得たいのです。
$a['a']['a']['a']
$a['a']['a']['b']
$a['a']['a']['c']
$a['a']['b']['a']
$a['a']['b']['b']
$a['a']['b']['c']
$a['a']['c']['a']
$a['a']['c']['b']
$a['a']['c']['c']
こんな配列だった場合はどういう風に欲しいの?
>$a['a']['b']['c']の1つ上の$a['a']['b']にどうにかしてアクセスしたいと考えてお
こんな風に普通にアクセスできるよ
echo $a['a']['b'];
0058nobodyさん
2006/07/08(土) 12:37:11ID:???func($a['a']['b']['c']) で戻り値にarray('a','b','c')を返したいとかいう話?
無理だろ。
0059nobodyさん
2006/07/08(土) 12:55:12ID:???0060nobodyさん
2006/07/08(土) 13:19:32ID:???分かってないと 'a','b','c'のように具体的に書けないから。
一方 $a['a']['b']['c'] = 'αβγ'; のように値が入っていたとして、
'αβγ'という文字列から変数名(あるいは配列名、キー名)を調べることはできない。
>>56の説明にあるような要求がでてくる場面が想像できない
006154
2006/07/08(土) 13:20:35ID:???58さんのおっしゃる事がそうだと想います(^^;。
フォルダでいう所の1つ上のフォルダにアクセスしたい感じですがやはり無理ですか・・・。
$dat[$a][$b][$c]で$aから$cまでの変数が不定である場合の$aと$bを知る方法があれば
知りたかったのです。$datだけ固定なのでやはりここから作って行くしかないですね。
006254
2006/07/08(土) 13:24:07ID:???0064nobodyさん
2006/07/08(土) 13:35:50ID:???そもそもその$dat[$a][$b][$c]にどういう形でアクセスしてるときに
第二階層をアクセスしたいのか、もうちょっと具体的に示せ。
フォルダ云々言ってるけど、$dat[$a][$b][$c]を引数で渡したときってのは
中身を別のまっさらなディスクにコピーした状態になってるから
そもそも上のフォルダとかいうもの自体が無くなってしまってる。
0065nobodyさん
2006/07/08(土) 14:15:03ID:???006654
2006/07/08(土) 14:23:55ID:???どうやって説明しようか迷っていたのですが、その通りです!!。このツリー状になっている配列は
Web上で利用するユーザーが好き勝手に変更できる仕様なので階層も決まっておらず、毎回検索
するのも効率が悪いので何とか効率よくできないものかと・・・。今はキーをインデックス化しており、
そこから割り出しているのですが処理によっては1つ上の親の配列が必要になったりするので
配列変数をLinuxのディレクトリみたいに「cd ..」なんて出来ないかと安易に考えた次第です。
0067nobodyさん
2006/07/08(土) 14:25:42ID:???0068nobodyさん
2006/07/08(土) 14:28:13ID:???それはキーそのものを情報として持って処理するしかないと思う。
ディレクトリだって、自分が親の位置情報を持ってるわけじゃなく、
自身のフルパスとして全階層のキーに該当する情報を持ってるだけだし。
0069nobodyさん
2006/07/08(土) 16:32:23ID:Y8id9cd8$array[1] = 9;
$array[2] = 6;
$array[3] = 10;
asort($array);
print_r($array);
?>
Array ( [2] => 6 [1] => 9 [3] => 10 ) ←出力されます
これを、小さい順に
$a、$b、$cに格納したいのですが、どうすれば良いのでしょうか?
list($a,$b,$c) = asort($array);
としてみたいのですが、ダメでした。
007069
2006/07/08(土) 16:41:47ID:Y8id9cd8ありがとうございます。
しかし、こんな面倒くさい方法じゃなく、
変数をまた最初から番号付けするような便利な関数はないのでしょうか。。。
0071nobodyさん
2006/07/08(土) 17:22:50ID:qcW5njj8以下のスクリプトを実行したのですが、
<?php
mb_http_output("UTF-8");
mb_output_handler("UTF-8");
ob_start("mb_output_handler"); ?>
test
<?php ob_end_flash(); ?>
Warning: mb_output_handler() expects exactly 2 parameters, 1 given
Warning: Wrong parameter count for mb_output_handler()
Fatal error: Call to undefined function: ob_end_flash()
といったエラーになってしまいました。
どこがいけないのか解らないのですが、マニュアル通りに指定したつもりです。
どうすればUTF-8で出力されるでしょうか?
PHP4.4.0を使用していて、mb周りの設定値は以下になります。
mbstring.detect_order no value
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input pass
mbstring.http_output pass
mbstring.internal_encoding SJIS
mbstring.language neutral
mbstring.substitute_character no value
0072nobodyさん
2006/07/08(土) 17:26:39ID:???007371
2006/07/08(土) 17:42:41ID:???パラメーターがおかしいのは解るのですが、UTF-8以外に指定できるのでしょうか?
そこがわかりません。。
0074nobodyさん
2006/07/08(土) 18:01:53ID:4HW/BEu50075nobodyさん
2006/07/08(土) 18:12:21ID:???0076nobodyさん
2006/07/08(土) 18:17:05ID:???0077nobodyさん
2006/07/08(土) 18:17:56ID:???あるに決まってるだろ
0078nobodyさん
2006/07/08(土) 18:27:45ID:4HW/BEu50079nobodyさん
2006/07/08(土) 19:46:21ID:???Fatal error: Call to undefined function: ob_end_flash()
致命的エラー:ob_end_flash()だぁ? んな関数ねぇよハゲ。
× flash
○ flush
もう一度聞くが、何故エラーメッセージを読まない?
0080nobodyさん
2006/07/08(土) 19:54:12ID:???mb_output_handler("UTF-8");
...
Warning: mb_output_handler() expects exactly 2 parameters, 1 given
Warning: Wrong parameter count for mb_output_handler()
...
どこがいけないのか解らないのですが、マニュアル通りに指定したつもりです。
なんのマニュアルを読んだんだろうねー
0083nobodyさん
2006/07/08(土) 23:10:14ID:???どう記述すればいいのでしょうか?よろしくお願いします。
0085nobodyさん
2006/07/08(土) 23:58:31ID:???ニュースサイトのRSSを購読すると、三日前のニュースとかは取得できないので不便なんです。
だったら自分で契約してるサーバにスクリプトを設置して、タイトルとリンクをHTML化して毎日一回保存してしまおうかと
だめでしょうか? cronもつかえるという前提だとどうでしょう
0086nobodyさん
2006/07/09(日) 01:13:29ID:???0087nobodyさん
2006/07/09(日) 01:57:06ID:???といった会員登録サイトを作ろうと思い、調べた結果とりあえず空メールが
あったら返信をするというのはvacationで出来るというところまでは
調べる事は出来たのですが、そこからどの用にメールアドレスだけを取得し
PHPに持っていけばいいのかが分かりません
0089nobodyさん
2006/07/09(日) 02:27:42ID:???vacationなんぞ使わずに、自作の処理スクリプト(PHP)に渡して
そこで処理をする。forwardで渡すのは同様。
空メールなのかとか、そのメールからアドレスをどうやって取るかは
実験してみな。単なる文字列の処理だけだから。
0090nobodyさん
2006/07/09(日) 02:27:51ID:???0091nobodyさん
2006/07/09(日) 02:33:21ID:???再現できるソースきぼんぬ
0093nobodyさん
2006/07/09(日) 03:12:06ID:???PHPをcronなどで一定間隔で動かしてPOPサーバーに接続してメールを取得、
もしくはsendmailのforward設定で受信時にメールを食わせて自動的にPHPを実行させ、
あとはメールの中身を1行ずつ読み込んでってFrom:行からアドレス抜くだけ。
0094nobodyさん
2006/07/09(日) 05:33:03ID:???>しかし、こんな面倒くさい方法じゃなく、
>変数をまた最初から番号付けするような便利な関数はないのでしょうか。。。
結局キーは捨てるのに、なんでわざわざasort使ってんの?
マニュアル読んでないよね?
0095nobodyさん
2006/07/09(日) 07:42:20ID:???0096nobodyさん
2006/07/09(日) 12:24:45ID:???readfileだけでしょうか?
外部サイトの、<body>以下だけを出力すると言った方法は可能ですか?
0098nobodyさん
2006/07/09(日) 12:49:41ID:???外部ファイルを手軽に扱うための関数(fopen_wrapperの設定に依存)
readfileやinclude、fopen etc.
細かい制御ができるが、その分よく面倒を見る必要あり
fsockopen
後半は、ファイル全体を取得してから自力で切り出すしかないやね。
PHPには文字列を操作する関数があるので、可能っちゃー可能
0100nobodyさん
2006/07/09(日) 13:04:23ID:vWh3Ts67$ua = 'Vodafone/1.0/V802N/NJ001[test_serial] Browser/UP.Browser/7.0.2.1.307 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0';
if ( ereg ("\[(.+)\]", $ua, $serial) ) {
print $serial[0];
}else{
print "error!";
}
って感じで書いたんだが、[]も代入されてしまう。
\[(.+)\]の()の中だけを代入するにはどうすればいい?
Perlやってたからよくわからねぇ。
0101nobodyさん
2006/07/09(日) 13:54:33ID:???確か$_SERVER['??_JHONE_NO']みたいな配列に送られてくるはずだが…
print_r($_SERVER)すればわかるかも。
0102nobodyさん
2006/07/09(日) 14:03:10ID:???http://jp.php.net/manual/ja/function.ereg.php
をよく読めば間違いが分かる
0103nobodyさん
2006/07/09(日) 14:25:29ID:vWh3Ts67あ、[1]に入るのか。サンクス!
0104nobodyさん
2006/07/09(日) 14:54:36ID:???子プロセスの方で関数を動かして、
その返り値を子プロセス終了後に
親プロセスの方でチェックしようとしたら空になってました。
子プロセス内で得た返り値を
親プロセスの方でチェックすることは無理ですか?
0105nobodyさん
2006/07/09(日) 16:11:23ID:U99SwNUHログはテキストで取っていてSQLは使用していません。
0107nobodyさん
2006/07/09(日) 16:29:11ID:???setcookie("cookiename");
でやっても削除されないのですが、ほかのやり方あったら教えてください。
よろしくお願いします。
0108107
2006/07/09(日) 16:34:25ID:66lL3jio0109nobodyさん
2006/07/09(日) 16:36:00ID:???暇だからSQLの方法を出してやろう
*.php?page=1
$page = $_GET['page'];
$limit = $page * 10;
$sql = "SELECT * FROM BBS LIMIT $limit, 10";
$res = mysql_query($sql);
while ( $row = mysql_fetch_array($res) ) { print( $row[0] . "<hr>" ); }
0112nobodyさん
2006/07/09(日) 17:42:19ID:???例えばBBS.CGIというスクリプトをソースではなくてそれを実行したHTMLを取り込もうとしています。
試しに file(BBS.cgi) と file(http://~~~/BBS.CGI) を試しましたがどちらもソースが返ってきてしまいました。
phpにて実行結果の状態で取得することは可能なのでしょうか よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています