【PHP】くだらねぇ質問はここに書き込みやがれpart3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/02/07 21:47:15ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
0693nobodyさん
05/03/02 08:56:03ID:???意味ねーナ
0694nobodyさん
05/03/02 10:20:55ID:???正規表現使いたければ
if (preg_match("/^(abc|def)$/", $name))
ただ正規表現使うと確実に重くなる
正規表現使う必要がなければorやandを10個並べても全然嫌じゃないです
0695nobodyさん
05/03/02 11:46:53ID:???>if($name == "abc" or $name == "def")
なパターンは、switchで書くようにしてる。
switch($name) {
case 'abc':
case 'def':
echo "Match";
break;
default:
break;
}
0696nobodyさん
05/03/02 12:32:21ID:???こういう単純な比較を10個並べた場合、and/orとpreg_matchはそれほど変わらないと思う
とくにどれにもマッチしないとかそういう時は。
もちろん最初の一個にマッチした場合はorの圧勝だろうけど。
0698nobodyさん
05/03/02 20:53:02ID:???print "PIKA";
}
という条件式を、Perlの場合、
print "PIKA" if $hoge == $hage;
という書き方ができました。
PHPで同じような書き方はできないでしょうか?
0699nobodyさん
05/03/02 21:03:27ID:???echo 'Hellow';
?>
と、
<?php
/*
複数行用のコメント
以下数万行(約10000K)
*/
echo 'Hellow';
?>
<?php
echo 'Hellow';
/*
複数行用のコメント
以下数万行(約10000K)
*/
?>
では、リクエストされてから表示されるまでの時間に差異は出るのでしょうか?
実際に試してみたいのですが、今使っているサーバ自体が糞で、
同じスクリプトを呼んでも、レスポンスにばらつきがありすぎて確認できません。
0700nobodyさん
05/03/02 21:03:47ID:SuYdpkb90701nobodyさん
05/03/02 21:03:56ID:???0702nobodyさん
05/03/02 22:30:57ID:???配列とかで取得できると後が楽でうれしいです。
PHPポケットリファレンスとphp manualを読んでそんな関数が見つからなかったので教えてください。
お願いします。
0703nobodyさん
05/03/02 23:03:36ID:???調べてもわからなかったんで実際に変数作ってみたら100万個までは作成できるみたいなんですけど。
0706nobodyさん
05/03/02 23:10:35ID:???0708689
05/03/02 23:35:30ID:???詳しい解説と考察をありがとうございました。マニュアルには
>複雑な処理を行ったり、 重い繰り返し処理を行う場合、
>switchの方がより処理が速い可能性があります
とありますが、今回のは簡単な処理だと思いますし、行数を
減らしたいので if を使います。
0709nobodyさん
05/03/02 23:55:12ID:???もう何がなんだかちんぷんかんぷんです。
どなたかどういう警告で何が原因なのか教えてくださいお願いします・゚・(´Д`)・゚・
------------------------------------------------------------------------------------
Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070
Warning: fopen(/tmp/parsedcal-Home-2005): failed to open stream: No such file or directory in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070
Warning: fwrite(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1071
Warning: fclose(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1072
Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1073
------------------------------------------------------------------------------------
0710nobodyさん
05/03/03 00:58:57ID:pcZIX8SU$_SESSION['$a']
こんなかんじで使いたいのですが、$aを展開する書き方はありますでしょうか?
$_SESSION['$_SESSION[$a]']
↑できればこれも。。
わかりづらい説明ですみません。うまく説明できないです。
0711710
05/03/03 01:20:37ID:???上で710程度の質問してるくらいなので詳しいことはわかりませんが、
SAFE MODE phpで検索すればそれらしきものが出てきます。
一行目:今のUIDでは/tmpへアクセスができない
二行目:fopen(/tmp/parsedcal-Home-2005) 作成されるはずだったファイルがないため開けない。
三行目:存在しないので、ロックもできない
四行目:存在しないので、書き込みもできない
ということではないでしょうか?詳しい方どうでしょ?
0712nobodyさん
05/03/03 02:01:11ID:???シングルクォートを外せば良い。
$_SESSION[$a]
$_SESSION[$_SESSION[$a]]
>>709
711 の説明でだいたい正しいように思う。
SAFE MODE を外せないのであれば、テンポラリファイルを作成する
場所を /tmp から適当な httpd の動作権限で書き込み可能な
ディレクトリに変更すれば動作するのでは?
0714nobodyさん
05/03/03 09:13:21ID:L91eb6rnPHPで、リロードせずに時刻を常に更新させたいのですが、どのように
すれば良いのでしょうか。
<?php
while(True)
{
print(date("Y/m/d h:i:s"));
}
?>
と書くと、「2005/03/03 09:16:57」という文字が連続して表示され、
1秒も進みません。
時刻を更新し続けたいのですが、どなたかやり方を教えて頂けま
すでしょうか。何卒、宜しくお願い致します。
0715nobodyさん
05/03/03 09:36:32ID:???print(date("Y/m/d h:i:s")) が実行にかかる時間をちょっと調べてみようか。
$start = microtime(); // マイクロ秒単位でunixタイムスタンプを取得
print(date("Y/m/d h:i:s"));
$stop = microtime();
print ($stop-$start);
一回だけの試行なので信頼性はあんまり無いんだが、
うちの環境だと 0.000204秒になった。4900回/秒 くらいってことだな。
sleep()を使って1秒に一回くらいのペースでdate()を実行させるか、
そもそも鯖側で実行させずにJavaScript等のクライアント側でやらせた方がよいと思われ。
0716nobodyさん
05/03/03 09:40:35ID:???metaタグでリフレッシュする(結局リロードと一緒なのであまりサーバには良くない)
表示するだけならJavaScriptでやっとけ
0717nobodyさん
05/03/03 10:40:32ID:7OeoLBplものですか??
でたらめなアドレスを送信先引数にしてもTRUEが返ってくるのですが・・・。
0719nobodyさん
05/03/03 11:24:02ID:7OeoLBplインターネット内で電子メールを配送するソフトウェア。
ユーザが送信したメールを受け取って、他のサーバと連携して
バケツリレー式に目的地まで配送したり、
届いたメールをユーザが受け取るまで保管したりする。
ってことは送信先に届けましたよってことでTRUEが返ってくるわけでは
ないということでしょうか??
0720nobodyさん
05/03/03 11:53:35ID:???例えばsendmailの場合、下のurlにあるような結果(終了コード)を返す。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
sendmailがどう設定されているかはその鯖の管理者にしか分からん。
そして、PHPはこの終了コードだけを見て適当に加工してmb_send_mailの返り値としている。
phpのソースコードをぱっと見た感じでは、EX_OKの時にtrueを返しているみたいだな。
つーわけで、mb_send_mail == trueになったからと言って、
そのメールが確実に相手に届いているかどうか(届く予定かどうかさえも)分からない。
確実に届いたかどうか確認したきゃ、メールの中にidを含んだURLを書いておいて
相手にアクセスさせるくらいしかないわな
0721nobodyさん
05/03/03 12:32:41ID:7OeoLBpl感謝です。
0722nobodyさん
05/03/03 13:08:25ID:T3a2sbueそのとき、ページAの中心部分に、外部テキストデータBを挿入したいと考えています。
しかし、外部テキストデータBを呼び出すには多少時間がかかるため、
可能ならばページAを表示した後、時間差で外部テキストデータBを表示したいと考えています。
これを実現するためにはPHP内でやるよりも、iframeを使うのがいいのかなと思っているんですが、
iframeだと最初に縦横サイズを決めておかねばならず、テキストの量が変化するし実に不便です。
時間差で後からテキスト文を挿入する方法があれば、教えてください。
0724nobodyさん
05/03/03 13:53:11ID:???0725nobodyさん
05/03/03 15:11:55ID:T3a2sbueJavaScriptだと、時間差で読み込みできますか?
document.write(外部ファイル)
みたいな感じでいいでしょか?
0726nobodyさん
05/03/03 16:18:55ID:7OeoLBplmb_send_mailでエラー返送先Return-Pathを指定しなかったら
fromで指定したところにエラー返送されますか??
0727709
05/03/03 16:51:52ID:???丁寧なレスありがとうございます
-------
1067行 // write the new master array to the file
if (isset($master_array) && is_array($master_array) && $save_parsed_cals == 'no' && $is_webcal == FALSE && $cal != $ALL_CALENDARS_COMBINED) {
$write_me = serialize($master_array); ~~~~
$fd = fopen($parsedcal, 'w');
fwrite($fd, $write_me);
fclose($fd);
1073行 touch($parsedcal, $realcal_mtime);}
-------
色々試行錯誤した結果、力技といいますか
警告を受けていた「functions/ical_parser.php」の↑の波線部分の所をyesからnoに変えたらなんとか警告は出なくなりました
この変更によってどういう影響をもたらすのかさっぱりですが・・・('A`;)
0728nobodyさん
05/03/03 18:19:00ID:???しかし、外部テキストデータBを呼び出すには多少時間がかかるため
どんなでっかいテキストデータなんだ?
どれともローカル以外にあるとか?
いずれにしても、PHPでopenしたほうが手間無いと思われ。
0729nobodyさん
05/03/03 18:48:52ID:???0730nobodyさん
05/03/03 18:52:01ID:sBw8KeR2いろんなphpの見よう見まねで作った、近々ある社会の用語テスト用のくだらないスクリプトなのですが、
うまくいかないのです・・・もしよければ相談に乗っていただけませんでしょうか?
スクリプトの内容は
<?
$question = array( "問1","問2","問3" );
$answer = array( "答1","答2","答3" );
print("[問]<br>$question<br><br>[答]<br>$answer");
?>
この4行ですorz
ためしに動かしてみたのですが、なぜか「問1」とか「答1」とか表示される所に「Array」と表示されました・・・
それでarrayを消してもう一度動かしてみたのですが、こんどはエラーで動いてくれませんでしたorz
構想としては「問1」とでるならば「答1」とでるように、つながってて(?)ほしいです・・
もしよければ悪い点を指摘して頂きたいです。phpの勉強もしてみたいので。。。
では宜しくお願い致しますorz
0731nobodyさん
05/03/03 18:58:50ID:???この$question は "問1"、"問2"、"問3"、が入っている配列そのものを指していると思えばよい。
だから、配列を意味するArrayという文字が出てくる。決してarray()の"array"が表示されているわけではない。
問1(つまり配列の0番目)にアクセスするにはこの変数の後ろに[0]という添え字をつける。
$question[0]
問2であれば、
$question[1]
だ。
配列の先頭は1番目から数えるのではなく、0番目からスタートする。
0732nobodyさん
05/03/03 18:59:26ID:7OeoLBpl配列一つづつ表示させたいんですよね??
以下のようなやりかたで表示されるのでは?
for($i=0;$i<3;$i++){
print "[問]<BR>$question[$i]<BR><BR>[答]<BR>$answer[$i]
}
0733nobodyさん
05/03/03 19:00:19ID:7OeoLBplmb_send_mailでエラー返送先Return-Pathを指定しなかったら
fromで指定したところにエラー返送されますか??
0734nobodyさん
05/03/03 19:02:27ID:sBw8KeR2大変勉強になりますです 無事、表示できました。
ところで、ランダムに表示する事は可能でしょうか・・・?
また、その場合においてもquestionとanswerは結びついていて欲しいのですが・・・orz
0735nobodyさん
05/03/03 19:03:42ID:W+vZoiDKよいですか?やっぱり、無理ですか。
0736nobodyさん
05/03/03 19:04:40ID:7OeoLBplもしくは
return 文字列;
でできるのでは?
0738nobodyさん
05/03/03 19:19:44ID:???$i = rand(0, 2); // ← 0 〜 2 までの乱数を取得
print "[問]<BR>$question[$i]<BR><BR>[答]<BR>$answer[$i] ";
0739nobodyさん
05/03/03 19:20:32ID:7OeoLBplSMTPの関係で今実際にメール送信ができないのです。
safe_modeを有効にした状態でmb_send_mailの第5引数に
Return-Pathを設定すると設定したアドレスにエラー返送できる。
ということまで分かっているのですが、
もし、このReturn-Pathを設定しなかったら。
”答えは「鯖の設定による」 ”ということは
safe_modeが有効だったらfromで指定したアドレスに返送される
ということでしょうか?
0740nobodyさん
05/03/03 19:24:31ID:sBw8KeR2ありがとうございます!!
できました!!
スレッドの皆さん、お世話になりました
これで勉強が少しやりやすくなりましたです 本当に有難うございました
0741nobodyさん
05/03/03 19:52:32ID:???0742nobodyさん
05/03/03 20:25:50ID:???0743nobodyさん
05/03/03 20:29:59ID:???0744nobodyさん
05/03/03 20:40:30ID:???0746nobodyさん
05/03/04 14:53:02ID:isNQAP9U0747nobodyさん
05/03/04 15:12:57ID:???どこまでやって、何につまってるのか書いてないので適当に答える。
・mail()関数を使う場合
Linux -> sendmail等を直接叩くので不可
Windows -> SMTPサーバ接続のみ利用可なので適切な設定でOK
・fsockopenでSMTPを直接喋る
SMTPに則って、適切に実行する。ググればサンプルもあるはず。
つーか、他の言語ではこの形式のものが多いから他言語のものであっても参考に汁
0748746
05/03/04 15:22:55ID:???でも、Linuxだと、mail()関数は使えないんですね。
参考になりました。ありがとうございます。
0749nobodyさん
05/03/04 16:11:59ID:???フォームから$_FILES['upfile']['tmp_name'] で取得できる一時ファイルはどのタイミングで消えるんでしょうか。
$_SESSIONに一時ファイルのパス情報をいれて他のページに移動、
移動先のページで処理(アップロードファイルの確認とか)した後に$_SESSIONに保存しておいたパス情報を
使って move_uploaded_file() を発行しても、時間がある程度経過した後でもファイルを保存できますか?
それともアップロード直後に move_uploaded_file() で保存してやらないと一時ファイルは消えちゃいますか?
環境はLinux、Apache1.3系、PHP4.3.9 です。
0750nobodyさん
05/03/04 16:18:30ID:???「fsockopenでSMTPを直接喋る」ライブラリが豊富にあるので、それを利用する。
PHPMailerとか、Pearのクラスとか。
0751nobodyさん
05/03/04 16:20:51ID:???ttp://www.php.net/manual/ja/features.file-upload.php
移動または名前の変更が行われていない場合、リクエストの終了時にその
ファイルはテンポラリディレクトリから削除されます。
0752nobodyさん
05/03/04 16:28:34ID:fHaVG3jYありがとう 読み飛ばしていたようだ(;´д`)
アップ後に一旦移動させる事にします
0753nobodyさん
05/03/05 00:35:30ID:???0757nobodyさん
05/03/05 03:36:18ID:???まずお礼を言わせていただきます。
今の自分にはそこまでするスキルがありません。
Windows 環境ですし。。。
0759nobodyさん
05/03/05 09:34:58ID:???0760nobodyさん
05/03/05 10:13:30ID:???難しいものなんでしょうか?
0761760
05/03/05 10:16:43ID:???コンパイルの方法を教えてもらえないでしょうか?
0763nobodyさん
05/03/05 10:34:38ID:???マニュアルを読む癖を付けた方がいい。
ttp://www.php.net/manual/ja/install.php
そこにも書いてあるが、ソースからwindows用のをbuildするのは結構難しい。
取り組むつもりなら独力でやるつもりでがんがれ
0764nobodyさん
05/03/05 11:36:27ID:pdjPLFTWちょっと亀レスですみません。
ランダムに出すと言う意味ではちょっと>>738さんとは違うと思うんですが、
<?php
$qa=array(
array('問1','答1'),
array('問2','答2'),
array('問3','答3')
);
$num=rand(0,2);
print ("<p>".$qa[$num][0]);
print ("<p>".$qa[$num][1]);
?>
これだと、リロードするたびに違う問題が出てきます。
だから用語テスト的にはよろしいのではないかと・・・・。
0765760-761
05/03/05 11:57:52ID:???わかりました。
自力でトライしてみます
ありがとうございました。
0766nobodyさん
05/03/05 13:02:19ID:???eregとsubstrの両方の機能があるような関数が欲しいのですが。
検索文字したい文字以降の X番目からY番目の文字を表示したいのですが。
たとえば$RR=あいうえをかきくけこさしすせそたちつてとなににねの;のとき。
検索文字=「かき」
X番目= 3
y番目= 6
とした場合
「こさしすせそ」 を表示させたいのですが。関数の名前だけでもいいので
誰かご存じないでしょうか?
0767nobodyさん
05/03/05 13:05:49ID:???今考えるとかなりやヴぁいと思った
俺みたいな初級プログラマーは間違いなくハックされそう
extractも安易に使うとやばいような気もするんだけど、どうなんでしょう?
0768nobodyさん
05/03/05 13:19:03ID:???strposとsubstrを組み合わせれ
例のように全角文字を対象とするならそれぞれのマルチバイト対応関数を使うべし
0770nobodyさん
05/03/05 13:55:45ID:???$str="あいうえをかきくけこさしすせそたちつてとなににねの";
mb_ereg("かき(.{2})(.{6})",$str,$arr);
print_r($arr);
0771nobodyさん
05/03/05 14:46:58ID:???むしろ、ヤバさはregister_globals=Onよりも強力です。
extractを記述するってことで本人が意図的にやってる部分でスポイルされてますが。
0772ico
05/03/05 14:47:38ID:???□やりたいこと
音楽ファイルを1曲ダウンロードしたらセッションフラグを立てるなどして、
一度ブラウザを閉じてセッションをリセットしないと他の曲をダウンロードできないようにしたい。
ダウンロード完了後、他画面に強制的に遷移できれば問題ないはず
□問題点
ダウンロードまではできるのだが、各携帯電話によってダウンロード後の「保存画面」が存在する場合がある。
「保存画面」で「保存」が押下されたことを検知できない。
□打開策
案1:携帯の固定識別番号を取得しデータベースに登録。
データベースに存在する固定識別番号の携帯はTOP画面から入りなおさないと音楽ファイルのダウンロードを出来なくする。
→問題点:「固定識別番号を送信しますか?」とダイアログボックスがでる携帯がある。利用者が不審に思い、サイトの利用を控えるのではないか?
□現在のソース
$file_location=i18n_convert($strPath,SJIS);
$filesize=filesize($strPath);
header ("Accept-Ranges: none");
header ("Content-Length: $filesize");
header("Content-Type: text/octet-stream");
header("Content-Disposition: attachment; filename=$cm_file_place");
i18n_http_output("pass");
$fp=fopen($strPath,"rb");
fpassthru($fp);
fclose($fp);
//端末に保存されたら強制的に画面遷移する(このままでは端末にファイルが保存されない・・・)
header("Location: ".COMPURL);
携帯にファイルが保存されたことを検知する方法ってないですかね?
もしくは他の方法で「□やりたいこと」を実現する打開策とか。
いろいろ調べてみたけど良い方法が見つからないので質問させて頂きました。
宜しくお願い致します
0773nobodyさん
05/03/05 15:00:46ID:???0774ico
05/03/05 15:04:39ID:???いい案だけど却下です。
いちいちそんな手間を利用者に踏ませたくないというのと
僕だったらめんどくさくてダウンロードするのあきらめちゃいます^^;
0775nobodyさん
05/03/05 15:11:33ID:???「却下」って何様?
0777nobodyさん
05/03/05 15:17:02ID:???,. -─- 、
,r'´,. ‐,‐'`` ‐、、 __ ←>>774
,' { ' rヽ'`ヽヽ{:::::}
i ヽ ヽ 。ヽ゚,r'ー‐t <あひょほほほほほ!!
! ,-- ゝ ー' ' ! _
_ ', { r、 ノ _ 、、 / /
r'´_``ヽ、ゝ、、 `iー,-,-,‐'´,r'´_`ヽ カタカタカタ/
(/,=ニミ= `ー'` ‐ヽ`ー'ノー-' 彡ニ=、\) / /
`ー'`ー'`ー-`ニ-'`ー´ i二二二二二二l
0778nobodyさん
05/03/05 15:35:26ID:nfpa4x1+どんな関数使えば宜しいでしょうか
0779nobodyさん
05/03/05 15:37:19ID:???0780nobodyさん
05/03/05 15:38:40ID:???fatal error; undefind function mysql_connect()
というエラーが出てしまいます
WindowsXP+PHP(モジュール) にMySQLを入れ、DOS窓では動きましまが、以下のPHPのソースではエラーになりました
<html><body><?php
$dbid = mysql_connect("localhost","root","pass");
?></body></html>
何が原因なんでしょうか?
0781780
05/03/05 15:44:33ID:???早く誰でもいいので答えてもらえませんか?
0782nobodyさん
05/03/05 15:46:07ID:???0783780
05/03/05 15:46:54ID:???即レスありがとうございました
0784780
05/03/05 15:49:03ID:???急いでいるのにsageるなんて面白い方ですね
調べながらマターリ待っています。
0787780
05/03/05 16:28:55ID:???0788780=785
05/03/05 16:38:22ID:???PHP5からはDLLをコピーしたりする必要があったんですね。失礼しました
0789774=780=785
05/03/05 16:44:01ID:???,、 /7 ,-、
( <. | l //´
ヽ\,.ィ´ .ニニェ‐、//
>、<・> < ・>) 〈
// ´ ノ( 、_, )ヽ ヘヘ.
| l ノ、__!!_,.、 | l
ヘヘ. ヽニニソ ././
ヽヽヘ、____,,..ィ,ン′
`''‐---‐''´
0790nobodyさん
05/03/05 16:50:58ID:???質問の内容が不十分で意味が不明なので、勝手に解釈して返答。
file()で読んでfopen()&fputs()で書き込み。
0791nobodyさん
05/03/05 16:52:31ID:???ttp://www.balletrussia.com/stars/ilse/images/phli.swf
↑の画像を自分のPCの壁紙にしたいと思うのですが、
画像が保存出来ないのです。画像を自分のPCに取り込んで、
保存出来る方法ってあるのでしょうか。
初心者なので、スレ違いでしたらすいません。
0792nobodyさん
05/03/05 16:57:46ID:???flashは画像じゃないからスクリーンショット撮れ。
■ このスレッドは過去ログ倉庫に格納されています