【PHP】下らねぇ質問はここに書き込みやがれ 23
■ このスレッドは過去ログ倉庫に格納されています
0001909
2006/06/23(金) 01:59:03ID:lPdqGX0Zここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0608nobodyさん
2006/07/02(日) 01:27:10ID:???ファイルタイプ
http://jp.php.net/manual/ja/features.file-upload.php
圧縮ファイル
http://jp.php.net/manual/ja/funcref.php
の一覧からお好きなものをチョイス
0609nobodyさん
2006/07/02(日) 01:41:16ID:W09rfuPj>ファイルの MIME 型。ただし、ブラウザがこの情報を提供する場合。 例えば、"image/gif" のようになります。
>この MIME 型は PHP 側ではチェックされません。
>そのため、 この値は信用できません。
これでも大丈夫かな?
0610nobodyさん
2006/07/02(日) 01:41:40ID:???$nl = "\r\n";
ereg_replace("$nl($nl)+", $nl, $text);
preg_replace("/^$nl/m", "", $text);
^$はマッチ幅ナシね。
0611nobodyさん
2006/07/02(日) 01:53:12ID:???大丈夫なのか否かってのは何を作りたいかによるから何とも言えない。
確かに、hidden パラメータとかと同じで、改竄はありうる。
しかし、そのファイルが例えば JPEG か否かをちゃんと判断するには
プログラマがそのファイルの内容・構造をチェックして判断しなければならない。
その為には、そのファイルのフォーマットの仕様・特徴(SOI APP …など)
を知っていないと判断のプログラムが書けませんが
それが出来るなら、自分でチェックすれば良い話です。
簡易に済ませたかったら system で file を呼ぶとかも考えられますけど…
0612nobodyさん
2006/07/02(日) 01:58:42ID:oZjla2sMありがとうございます
$text = 'log.txt';
$nl = "\r\n";
for($i = 0; $i < count($line); $i++){
if( ereg_replace("$nl($nl)+", $nl, $text) ){
preg_replace("/^$nl/m", "", $text);
break;
}
}
こう作ってみたんですけど、改行抜けません
おかしい所教えてもらえませんでしょうか
0613あああ ◆rHbUqJDbds
2006/07/02(日) 02:09:51ID:???0614nobodyさん
2006/07/02(日) 02:14:51ID:???サンプル■1234■5678
の場合、最初の■以降の文字を消したいのですが、
preg_replace('/■?', '', $str);
こうしたのですがうまくいきません。
どこが間違っているのでしょうか
0615nobodyさん
2006/07/02(日) 02:17:45ID:???preg_replace("/^$nl/m", "", $text);
↓
$text = preg_replace("/^$nl/m", "", $text);
つーか、せっかくpreg使ってるのに何でeregもつ買ってるの?
pregだけでいいんでない?
$text = file_get_contents("test.txt");
$nl = "\r\n";
$text = preg_replace("/^$nl/m", "", $text);
print($text); //確認
0616614
2006/07/02(日) 02:19:55ID:J/w8BCAt方向が変わってしまって^^;
サンプル■1234■5678
これを、最初の■で区切ることはできますか?
サンプル
■1234■5678
こうわけたいのですが
0617nobodyさん
2006/07/02(日) 02:30:21ID:???俺初心者だからかなり馬鹿っぽいやり方かもしれないけど
$sample = "サンプル■1234■5678";
$line = explode("■", $sample);
foreach($line as $key => $value)
if ($key == 0) $hoge = ($value."\n");
else $hoge .= ("■".$value);
print($hoge);
こんなんはどうかな。
0618nobodyさん
2006/07/02(日) 02:30:46ID:???もし配列で持ってるなら "" な項を捨てりゃいいだけだよ
>>616
都合のいい方使って好きなように。
$text = "サンプル■1234■5678";
list($mae, $usiro) = explode("■",$text,2);
$usiro = "■".$usiro;
echo "explode: $mae, $usiro\n";
preg_match("/^(.*?)(■.*)$/", $text, $capture);
echo "preg_match: $capture[1], $capture[2]\n";
0620nobodyさん
2006/07/02(日) 04:04:38ID:???<frame src="top.php?id=<? echo $_GET['id'];?>" name="topFrame" scrolling="Yes" id="topFrame" title="topFrame" />
<frame src="logpage.php?id=<? echo $_GET['id'];?>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
この場合で各フレームのURLを見たところ、?id=がなかったのですが
これでは無理なのでしょうか?
0621620
2006/07/02(日) 04:05:08ID:???0622nobodyさん
2006/07/02(日) 04:11:06ID:???$abs = 30;
setTimeout("location.href='abc.php'",1000*<? echo $abc;?>);
0624nobodyさん
2006/07/02(日) 04:32:06ID:???PHP は HTML を出力するに過ぎない。
その出力する HTML に変数の値が埋め込まれた JavaScript が書かれれば良いだけ。
言っている意味分かる?
0626622
2006/07/02(日) 09:39:02ID:???つまり、一気にJavaScriptを書き出せば良いのでしょうか?
>>625
すみません、両方$abcでお願いします
0627622
2006/07/02(日) 09:44:38ID:???<?
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo "<!--";
echo "setTimeout(\"location.href=logpage.php?id".$id."\",1000*10)";
echo "parent.topFrame.document.form.com.value=\'\'";
echo "-->";
echo "</SCRIPT>";
?>
としてみたところ、結果は同じでした・・・
どうすれば良いのでしょうか
0628622
2006/07/02(日) 09:57:28ID:???0630nobodyさん
2006/07/02(日) 09:58:14ID:???0631nobodyさん
2006/07/02(日) 10:24:55ID:???http://question.excite.co.jp/kotaeru.php3?q=2250330
http://pc8.2ch.net/test/read.cgi/hp/1151633256/53
0632nobodyさん
2006/07/02(日) 12:02:59ID:???0633nobodyさん
2006/07/02(日) 12:12:43ID:???echo $_SESSION['var'];
これって携帯でも表示される?
0634nobodyさん
2006/07/02(日) 13:17:57ID:???0635nobodyさん
2006/07/02(日) 13:44:17ID:???print(mb_convert_kana($str,'KV'));
↑の結果が「サーバサイド技術」のままで、全角に変換されないのですが
PHPはFC5のVersion 5.1.4です。
0636nobodyさん
2006/07/02(日) 14:00:21ID:???0637nobodyさん
2006/07/02(日) 14:03:50ID:???文字コードを指定してやって。
print(mb_convert_kana($str,'KV','euc-jp'));
みたいに。
0638nobodyさん
2006/07/02(日) 14:28:22ID:???ありがとうございます。うまくいきました。
>636
そんなこと言わずにおつきあい下さいな
0639nobodyさん
2006/07/02(日) 14:34:36ID:???0640nobodyさん
2006/07/02(日) 14:42:29ID:???0641nobodyさん
2006/07/02(日) 14:44:45ID:???0642nobodyさん
2006/07/02(日) 15:11:01ID:???自作PHPがsafariの場合上手く動作しないのですが、
よい回避策ないでしょうか?
ttp://www.sodan.ecc.u-tokyo.ac.jp/2004/FAQ/faq52-20040330.shtml
0643636
2006/07/02(日) 15:19:45ID:???0645nobodyさん
2006/07/02(日) 15:36:09ID:???0646nobodyさん
2006/07/02(日) 17:31:55ID:YHlCRRocシリアライズは便利で高速そうですが一度に全ての変数をメモリに乗せてしまう事になるなど
多少のデメリットもあるようですが、みなさんはどう考えられてますか?
0647nobodyさん
2006/07/02(日) 17:51:29ID:???多いかどうかはわからないけどシリアライズはかなり便利。
俺もよく使ってる。
掲示板のログ全部とかはさすがに入れないけども
要は工夫次第。
0648nobodyさん
2006/07/02(日) 17:55:10ID:???ファイルポインタとかをどのように指定して良いのか分かりません。
0649nobodyさん
2006/07/02(日) 18:53:00ID:???0650nobodyさん
2006/07/02(日) 18:54:27ID:???0651nobodyさん
2006/07/02(日) 19:11:02ID:???>>649
すいません。よく分かりません。orz
>>650
負荷が気になるのですが、そうするのが一般的なのでしょうか。
0652nobodyさん
2006/07/02(日) 19:39:02ID:???任意ってのが例えばランダムで選択されるのか
ある文字列がある場合なのか
どのような条件かにもよると思う。
0654nobodyさん
2006/07/02(日) 19:58:32ID:???0655nobodyさん
2006/07/02(日) 20:01:04ID:???fopenして、任意の行までスキップすればいいんじゃない?
てか、データの検索でシコシコやりたいならDB使うのが定石だとおもうよ。
0656nobodyさん
2006/07/02(日) 20:48:11ID:YHlCRRoc$a[1][2] ← これなら2個とかです
0657nobodyさん
2006/07/02(日) 20:50:42ID:???0658nobodyさん
2006/07/02(日) 20:54:30ID:???0659nobodyさん
2006/07/02(日) 20:56:44ID:???array(1, 2, array(3, array(4, 5)), array(6), 7)
は3次元配列とは呼べないと思うし
0660nobodyさん
2006/07/02(日) 21:00:08ID:???深度というのですね。ありがとうございます。
再帰的関数?を狙ってこんな事な感じで試してみるのですが深度を上手く拾う事が出来ません。
$dに深度を入れようとしているのですが合わないのです。
function box($ary,$d = 0){
foreach(array_keys($ary) as $t){
if (is_array($ary[$t])) box($ary[$t],++$d);
}
}
0661nobodyさん
2006/07/02(日) 21:24:02ID:???$dに加算する場所が悪かった事がわかりました(−−;
0662nobodyさん
2006/07/02(日) 21:34:12ID:???0663nobodyさん
2006/07/02(日) 22:03:18ID:???サーバーに上げると変数に入れた文字が文字化けしてしまいます。
ちなみにland.toなんですが。。。
これはサーバーの方で設定しなければ直らないのでしょうか?
0664nobodyさん
2006/07/02(日) 22:27:30ID:???0665nobodyさん
2006/07/02(日) 22:32:04ID:???0667nobodyさん
2006/07/03(月) 10:58:30ID:TaHjD2Gv(つまり、出力後のページのソースを見ると改行がない)ようにするには、
どうすればよろしいですか。
0669nobodyさん
2006/07/03(月) 11:14:25ID:???0671nobodyさん
2006/07/03(月) 11:18:29ID:???そういうつもりで書いたのですが言葉足りなかったですね
0672nobodyさん
2006/07/03(月) 11:46:47ID:???\r\n
\r
\n
の順に ""に置き換えればいいとおもうよ。
0675nobodyさん
2006/07/03(月) 12:02:58ID:???0676nobodyさん
2006/07/03(月) 13:06:15ID:TaHjD2GvPHPでもそんな感じで何とかなるとは思うのですが、
問題はHTMLを含めて改行を削除するということなのです。
現状は、よくある「HTMLの中にPHPを書いている」という状況なのですが、
この場合のHTMLの内容さえも、改行を除いて出す必要があります。
通常の出力内容を$html_beforeとし、
$html_after = 改行処理($html_before)でとして
$html_afterを出力すれば良いのですが、
そう簡単にもいかないような。
要は、出力内容を$html_beforeに格納する方法ですね。
0679nobodyさん
2006/07/03(月) 13:31:03ID:???0680nobodyさん
2006/07/03(月) 13:45:12ID:TaHjD2Gv$textに格納できないかと...
0681nobodyさん
2006/07/03(月) 13:48:13ID:???例)
<?php
$a = 1.8;
$b = 0.15 * 12.0;
echo ($a == $b ? "equivalence" : "not equivalence");
?>
桁数合わせて(キャストして)文字列として比較する?
有効桁以下を切り落とし、整数化して比較する?
0683nobodyさん
2006/07/03(月) 15:18:32ID:???マニュアル嫁やボケナス
http://jp2.php.net/manual/ja/language.types.float.php
0684nobodyさん
2006/07/03(月) 15:48:51ID:???0685nobodyさん
2006/07/03(月) 15:56:24ID:???0686nobodyさん
2006/07/03(月) 16:01:58ID:???0689nobodyさん
2006/07/03(月) 16:14:55ID:33zQh45+罵倒するだけなら失せろ。
お前には聞いてねーよ。絡んでくるな。
0690nobodyさん
2006/07/03(月) 16:15:44ID:???0691nobodyさん
2006/07/03(月) 16:41:04ID:???0692nobodyさん
2006/07/03(月) 16:47:58ID:???質問の意図がわからないから答えようがない
そしてオレは浮動小数点数を比較したことがない
有効桁以下を切り落として整数化したら両方1になって誤差がありすぎると思うんだけど、それはそれで問題ない処理なわけ?
0693nobodyさん
2006/07/03(月) 16:48:01ID:???0694nobodyさん
2006/07/03(月) 16:51:56ID:???PHPで、方程式を提示すればそれをグラフにしてくれるようなモ・・なんとかってありますか?
たとえば、 y = 2x + 1 とか、 y = 2(x+3)^2 - 5 とかいう方程式のグラフを書いてくれる感じのやつです。
0696nobodyさん
2006/07/03(月) 18:47:19ID:???キミはアホですか。
有効桁を切り落として整数化=有効桁の分だけ100なり1000なりを掛け算して整数化って意味でしょ。
その程度の意図も読めないなら回答なんてしようと思うなよ〜
で、大小の判定まではともかく、有効桁内での等しいかどうかの比較は整数化が必須じゃないかな。
文字列にしちゃうと12.1と110.1みたいのがまともに比較できなくなるから基本は整数化じゃない?
0697nobodyさん
2006/07/03(月) 19:22:43ID:???このように書いても、サーバーにguest.datが作成されません。
find / -name "guest.dat" しても引っかかりませんでした。(sudoしています)
そこで
$file=fopen('/guest.dat','a');
としたところ、/にguest.datが作成されました。
一番上のようにディレクトリを指定しない場合はファイルは作成されないのでしょうか?
0698697
2006/07/03(月) 19:23:16ID:???0700nobodyさん
2006/07/03(月) 19:30:58ID:???http://jp.php.net/manual/ja/function.getcwd.php
を使ってみるべし。
0701nobodyさん
2006/07/03(月) 19:33:02ID:???「,」はエンドユーザが入力したらマズいし、「<>」はだとちょっと面倒?
おまいらはどーしてるん?
0702nobodyさん
2006/07/03(月) 19:34:18ID:???0703nobodyさん
2006/07/03(月) 19:36:23ID:???「<>」をエンドユーザが入力したらどうするんだよ?
それは置換するから大丈夫って言うなら「,」だって同じことなんじゃないかと。
0705nobodyさん
2006/07/03(月) 19:39:54ID:???個人的な好みじゃないか?
0706nobodyさん
2006/07/03(月) 19:41:41ID:???テキストをデリミタにすると、結局はエンドユーザが入力し得るものなんだから
どうでも好きにすればいいんじゃないってこと。
自分なら \t かバイナリにするけどね。\t でも入力し得るから注意ね。
0707nobodyさん
2006/07/03(月) 19:46:01ID:???ディレクトリのパーミッションを777にしたらできました!!
ありがとうございます!
>700
実行時のパスが分かるんですね。これも丁度知りたかった事です。
ありがとうございます!
■ このスレッドは過去ログ倉庫に格納されています