トップページ⇒php
1001コメント353KB

【PHP】下らねぇ質問はここに書き込みやがれ 23

■ このスレッドは過去ログ倉庫に格納されています
00019092006/06/23(金) 01:59:03ID:lPdqGX0Z
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0652nobodyさん2006/07/02(日) 19:39:02ID:???
データ量にもよるし。
任意ってのが例えばランダムで選択されるのか
ある文字列がある場合なのか
どのような条件かにもよると思う。
0653nobodyさん2006/07/02(日) 19:39:49ID:???
>>651
ていうか
具体的に何をやりたいのか
いっちゃいなよYOU!
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:???
count($a[1])
0658nobodyさん2006/07/02(日) 20:54:30ID:???
もしかしたら、$a[1][2][3]なら3とか深度の事?だったらない。自分で関数作るしか。
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:???
>>658
深度というのですね。ありがとうございます。
再帰的関数?を狙ってこんな事な感じで試してみるのですが深度を上手く拾う事が出来ません。
$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:???
660です
$dに加算する場所が悪かった事がわかりました(−−;
0662nobodyさん2006/07/02(日) 21:34:12ID:???
そうですか(−−;
0663nobodyさん2006/07/02(日) 22:03:18ID:???
ローカルサーバーでは正常に動いたのですが、
サーバーに上げると変数に入れた文字が文字化けしてしまいます。
ちなみにland.toなんですが。。。
これはサーバーの方で設定しなければ直らないのでしょうか?
0664nobodyさん2006/07/02(日) 22:27:30ID:???
EUC
0665nobodyさん2006/07/02(日) 22:32:04ID:???
「あああ」⇒「、「、「、「」
0666nobodyさん2006/07/02(日) 23:07:01ID:???
>>663
land.toのサポートの過去ログを探してみな。
0667nobodyさん2006/07/03(月) 10:58:30ID:TaHjD2Gv
PHPからHTMLに出力する際に全ての改行を除いてしまう
(つまり、出力後のページのソースを見ると改行がない)ようにするには、
どうすればよろしいですか。
0668nobodyさん2006/07/03(月) 11:01:03ID:???
>>667
\r\nを削除したら良いよ
0669nobodyさん2006/07/03(月) 11:14:25ID:???
たまには改行コードがCR+LFじゃない環境のことも思い出してあげてください
0670nobodyさん2006/07/03(月) 11:17:36ID:???
>>667
trim ($str, "\r\n")
0671nobodyさん2006/07/03(月) 11:18:29ID:???
あぁ、\rと\nを削除したら良いよ
そういうつもりで書いたのですが言葉足りなかったですね
0672nobodyさん2006/07/03(月) 11:46:47ID:???
str_replaceで、
\r\n
\r
\n
の順に ""に置き換えればいいとおもうよ。
0673nobodyさん2006/07/03(月) 11:56:16ID:???
>>672
改行コードを<br>に置き換えるんじゃなくて削除するだけなら\rと\nの二回で済むと思われる。
0674nobodyさん2006/07/03(月) 11:57:59ID:???
>>673
なるほど。お前は天才だな
0675nobodyさん2006/07/03(月) 12:02:58ID:???
preg_replace("/\r\n|\n|\r/", "", $text);
0676nobodyさん2006/07/03(月) 13:06:15ID:TaHjD2Gv
改行削除は秀丸の置換でもできるので、
PHPでもそんな感じで何とかなるとは思うのですが、
問題はHTMLを含めて改行を削除するということなのです。

現状は、よくある「HTMLの中にPHPを書いている」という状況なのですが、
この場合のHTMLの内容さえも、改行を除いて出す必要があります。

通常の出力内容を$html_beforeとし、
$html_after = 改行処理($html_before)でとして
$html_afterを出力すれば良いのですが、
そう簡単にもいかないような。

要は、出力内容を$html_beforeに格納する方法ですね。
0677nobodyさん2006/07/03(月) 13:16:31ID:???
>>676
?(・∀・) 独り言ですか
0678nobodyさん2006/07/03(月) 13:27:57ID:???
>>676
>>675
0679nobodyさん2006/07/03(月) 13:31:03ID:???
設定にもよるけど output_buffering 使えば良いかと
0680nobodyさん2006/07/03(月) 13:45:12ID:TaHjD2Gv
>>678

$textに格納できないかと...
0681nobodyさん2006/07/03(月) 13:48:13ID:???
小数点を含むの数値を比較するときはどうするのがスマートなんでしょう?
例)
<?php
$a = 1.8;
$b = 0.15 * 12.0;
echo ($a == $b ? "equivalence" : "not equivalence");
?>

桁数合わせて(キャストして)文字列として比較する?
有効桁以下を切り落とし、整数化して比較する?
0682nobodyさん2006/07/03(月) 14:21:47ID:???
>>676
ob_start
0683nobodyさん2006/07/03(月) 15:18:32ID:???
>>681
マニュアル嫁やボケナス
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:???
池沼 ←これなんて読むんだよ知障が。
0687nobodyさん2006/07/03(月) 16:11:55ID:???
>>686
スレ違いだけど一応質問には答えとこう
「ちしょう」だよ
0688nobodyさん2006/07/03(月) 16:14:44ID:???
>>686
分からないで書いていたのかw

ほんとレベル下がったなこのスレ
0689nobodyさん2006/07/03(月) 16:14:55ID:33zQh45+
有効桁って書いただろうよ。
罵倒するだけなら失せろ。
お前には聞いてねーよ。絡んでくるな。
0690nobodyさん2006/07/03(月) 16:15:44ID:???
ネタだろwww
0691nobodyさん2006/07/03(月) 16:41:04ID:???
まあ「これなんて読むんだよ知障が」って言ってるし、ネタなんだろうな。
0692nobodyさん2006/07/03(月) 16:47:58ID:???
>>681
質問の意図がわからないから答えようがない
そしてオレは浮動小数点数を比較したことがない

有効桁以下を切り落として整数化したら両方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 とかいう方程式のグラフを書いてくれる感じのやつです。
0695nobodyさん2006/07/03(月) 18:14:24ID:???
>>694
こんにちは
0696nobodyさん2006/07/03(月) 18:47:19ID:???
>>692
キミはアホですか。
有効桁を切り落として整数化=有効桁の分だけ100なり1000なりを掛け算して整数化って意味でしょ。
その程度の意図も読めないなら回答なんてしようと思うなよ〜

で、大小の判定まではともかく、有効桁内での等しいかどうかの比較は整数化が必須じゃないかな。
文字列にしちゃうと12.1と110.1みたいのがまともに比較できなくなるから基本は整数化じゃない?
0697nobodyさん2006/07/03(月) 19:22:43ID:???
$file=fopen('guest.dat','a');
このように書いても、サーバーにguest.datが作成されません。
find / -name "guest.dat" しても引っかかりませんでした。(sudoしています)
そこで
$file=fopen('/guest.dat','a');
としたところ、/にguest.datが作成されました。
一番上のようにディレクトリを指定しない場合はファイルは作成されないのでしょうか?
06986972006/07/03(月) 19:23:16ID:???
サーバはFedoraCore5 PHP5.1.4です。
0699nobodyさん2006/07/03(月) 19:25:53ID:???
>>697
ディレクトリのパーミッション
0700nobodyさん2006/07/03(月) 19:30:58ID:???
>>697
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:???
>>701
「<>」をエンドユーザが入力したらどうするんだよ?
それは置換するから大丈夫って言うなら「,」だって同じことなんじゃないかと。
0704nobodyさん2006/07/03(月) 19:38:34ID:???
>>703
<> は <> にすればいいし、 , は ? だっけ?忘れた。
個人的な好みじゃないか?
0705nobodyさん2006/07/03(月) 19:39:54ID:???
<> は &lt;&gt; にすればいいし、 , は &#44; だっけ?忘れた。
個人的な好みじゃないか?
0706nobodyさん2006/07/03(月) 19:41:41ID:???
>>704
テキストをデリミタにすると、結局はエンドユーザが入力し得るものなんだから
どうでも好きにすればいいんじゃないってこと。
自分なら \t かバイナリにするけどね。\t でも入力し得るから注意ね。
0707nobodyさん2006/07/03(月) 19:46:01ID:???
>699
ディレクトリのパーミッションを777にしたらできました!!
ありがとうございます!

>700
実行時のパスが分かるんですね。これも丁度知りたかった事です。
ありがとうございます!
0708nobodyさん2006/07/03(月) 19:48:22ID:???
>>707
えぇ!?
/ にファイルを作成出来ていることから、パーミッションの問題じゃないと思っていたんだが…
0709nobodyさん2006/07/03(月) 20:01:57ID:???
>>701
DB使えば?
ファイルにこだわるならTABとか改ページとかのコントロールコード系とか。
0710nobodyさん2006/07/03(月) 20:04:20ID:???
>>705
メールデータとかのログも&lt;なんて変換かけてんの?
あ、掲示板くらいしか作ったことないしょぼプログラマでしたか、失礼。
0711nobodyさん2006/07/03(月) 20:07:49ID:???
くだらない煽りなんてしてないで、好きな文字に変えればいいじゃないか。
0712nobodyさん2006/07/03(月) 20:08:30ID:???
>>710
なんでそんな攻撃的な物言いするの?
PHP+PostgreSQLのシステムを官公庁に納めたことあるよ。
0713nobodyさん2006/07/03(月) 20:09:00ID:???
>>709
じゃあ区切り文字は「\t」にして、ユーザが入力する TAB は、

trim($str, "\t")

で桶かな。
0714nobodyさん2006/07/03(月) 20:10:01ID:???
あ、>>713 は >>701です。
0715nobodyさん2006/07/03(月) 20:11:27ID:???
$moji = "abc";
という変数の「後ろ」に文字列を追加するには「.=」だから簡単です。
$moji .= "def"; //この時点で$mojiには「abcdef」が入っている)

でも、変数の「先頭」に文字列を追加するのに簡単な方法ってありますでしょうか?
つまり$mojiに「defabc」と入ってる状態にしたいのですが・・・。
今はわざわざ、
$moji2 = "def";
$moji = $moji2.$moji;
などと連結しています。
0716nobodyさん2006/07/03(月) 20:13:04ID:???
>>712
2ちゃんでキモヲタの捨てゼリフにいちいちマジレスカコワルイ。
キモヲタは放っておけ。
0717nobodyさん2006/07/03(月) 21:17:36ID:???
>>715
$moji = "def" . $moji;
じゃあかんの?
0718nobodyさん2006/07/03(月) 21:20:22ID:???
>708
phpファイルの置いているフォルダのパーミッションを775から
777にしたらファイルが作成できました。
/のパーミッションも調べてみようとしましたがどうやって見るのか
分からないので、つっ込んだことはわからないままですが・・・
ともあれ疑問は解決できました。
これからもちょくちょく質問すると思うのでそのときはお手ほどき
ください。
0719nobodyさん2006/07/03(月) 22:11:39ID:???
>>696
遅くなったけどありがとう。
有効桁がそれ程大きくないので整数化がよさそうですね。

>>692
例が適切ではなかったも。スマソ
0720nobodyさん2006/07/03(月) 23:33:57ID:???
>>681=>>684=>>689=>>719か
質問者ならageろカス、誰が誰だか分からんだろうが。

正確な実数値の比較がしたけりゃ、これ使え
http://jp.php.net/manual/ja/function.bccomp.php

>>683にも書いたがマニュアルに浮動小数点数の扱いの注意については書いてある。
http://jp2.php.net/manual/ja/language.types.float.php

>> よって、小数の最後の桁を信用してはいけませんし、 小数が等しいという比較を行ってはいけません。
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> より高い精度が必要な場合には、 任意精度数学関数(bcmath)または gmp 関数を代わりに使用してください。
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

要するに、マニュアル嫁ボケナスってことだ
0721nobodyさん2006/07/04(火) 00:19:41ID:???
>>717
お前頭悪いだろ。
0722nobodyさん2006/07/04(火) 00:27:21ID:???
俺も>>717以外の方法が思いつかんのだが・・・
0723nobodyさん2006/07/04(火) 00:37:21ID:???
>>694
数学曲線
http://r0000.tm.land.to/math/
0724nobodyさん2006/07/04(火) 00:54:12ID:???
>>722
お前頭悪いだろ。
0725nobodyさん2006/07/04(火) 01:14:14ID:???
$moji .= "def";
って
$moji = $moji . "def";
じゃないの?
0726nobodyさん2006/07/04(火) 01:33:19ID:???
php初めて一年目くらい。ひとまず、自分で考えられる程度のものは一通り作れるようになった(動いてるというだけですが)くらいのレベルです。
一般的な話を聞きたいのですが

html部分はごっそりヒアドキュメントにして、それより前に分岐処理とか自作関数で生成した変数を
<input type='text' name='hoge' value='{$hoge}'>
ってな感じで埋め込んでる感じなんですが


ヒアドキュメントにしないで、
<input type='text' name='hoge' value='<?php echo $hoge; ?>'>

って書き方とどっちが正しいのでしょうか?
後者のほうの書き方は流れは分かりやすいけど、なんだかごちゃごちゃしてどうも好きになれないんですが。
0727nobodyさん2006/07/04(火) 01:35:21ID:???
<?=$hoge?>
0728nobodyさん2006/07/04(火) 01:36:02ID:???
>>725
そうだよ。だから?
0729nobodyさん2006/07/04(火) 01:42:19ID:???
>>726
両方試して処理時間や負荷の差を教えてくれたらとってもうれしい。
07307262006/07/04(火) 02:00:44ID:???
>>727
あ、省略形の書き方ですね。
>>729
1000くらいとかループさせてみたんですが、少なくともブラウザのレンダリングされるという体感的な時間は変わらないみたいです。
前者の方が見やすいのは間違いないとは思うんだけど。
0731nobodyさん2006/07/04(火) 02:02:25ID:???
俺は外部に書き出してincludeしてるよ
そっちのほうが見やすい
0732nobodyさん2006/07/04(火) 02:03:46ID:???
チャットで退室するんじゃなくって、ブラウザを閉じるとサーバーに変数が送られるようにするにはどうすればいいですか?
0733nobodyさん2006/07/04(火) 02:05:58ID:???
JSでも使っとけ
0734nobodyさん2006/07/04(火) 02:39:57ID:???
<?php echo $hoge; ?>
<? echo $hoge; ?>
<?=$hoge?>

これの差を教えてください。
0735nobodyさん2006/07/04(火) 02:48:58ID:???
お前の心に聞いてみろ!
0736nobodyさん2006/07/04(火) 03:10:27ID:???
返事がありませんでした。教えてください。
困ってるんです!!(><)
0737nobodyさん2006/07/04(火) 03:25:46ID:???
"あいうえお" から "あ" があるとTRUE

これを、"あいうえお" から "あ"または"う" があるとTRUE

という風にはできませんか?
0738nobodyさん2006/07/04(火) 03:28:01ID:???
>>736
どの質問だよ?
0739nobodyさん2006/07/04(火) 03:28:39ID:???
>>737
> "あいうえお" から "あ" があるとTRUE
まずこれをどういう風に書いてるのか示せ。話はそれからだ。
0740nobodyさん2006/07/04(火) 03:32:07ID:???
>>739
$str = "あいうえお";
if(strstr($str,"あ")){
  echo "TRUE";
}
0741nobodyさん2006/07/04(火) 03:45:09ID:???
$str = "あいうえお";
if(strstr($str,"あ")||strstr($str,"う")){
  echo "TRUE";
}
0742nobodyさん2006/07/04(火) 03:56:47ID:???
>>741
arrayを使った感じでできないのでしょうか
0743nobodyさん2006/07/04(火) 04:13:20ID:???
まず条件を全て提示しやがれですわ
0744nobodyさん2006/07/04(火) 04:15:20ID:???
発言文字から、
array(バカアホ死ねだの悪口)

の文字が入っている場合にTRUEを返したい
0745nobodyさん2006/07/04(火) 04:56:16ID:???
>>734
下2つは設定によっては使えない

・・・だけだな。動作は同じだが
0746nobodyさん2006/07/04(火) 05:21:47ID:???
>>744
あぼーんされてて見えないからレスアンカーしてみる
あまり変な事書くなよ

これで単なる煽りとかだったら凹むぜ
0747nobodyさん2006/07/04(火) 05:21:52ID:???
>>720
質問者はそんなこと承知の上で聞いていると思うが?
わざわざ蒸し返すな。
お前のレスはなんの解決にも結びつかないんだから。
07487462006/07/04(火) 05:22:30ID:???
('A`)アサッパラカラコレカヨ
0749nobodyさん2006/07/04(火) 05:34:06ID:???
まだぜんぜん夜中じゃんw海外在住ですか?(笑)
0750nobodyさん2006/07/04(火) 05:45:32ID:???
>>745

        ∧_∧
        ( ><) < ありがとう
 ‐=≡t─‐/ヽ、_つ) __s)
‐=≡(ニニ(  ) /\\-.\
 ‐=≡( (ニ:( /悲| (O)T
 ‐=≡ヽ、__,ノ ̄  ヽ、_,ノ


ちなみにマニュアルで言うとどのへんでしょうか?
0751nobodyさん2006/07/04(火) 05:46:34ID:???
>>742
配列ならforeachでいいじゃbn
■ このスレッドは過去ログ倉庫に格納されています