【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0396nobodyさん
2006/07/14(金) 05:37:32ID:???言われてみて自分の管理してるサイト調べてみたら、
別々のシステムなのにログイン情報(セッションファイル)が共通になってた…orz
0397nobodyさん
2006/07/14(金) 07:08:44ID:???マニュアル嫁
http://jp.php.net/manual/ja/features.file-upload.php
0398nobodyさん
2006/07/14(金) 11:50:58ID:uuZ6ZGypfwrite($fp,'こんにちわ');
fclose($fp);
上記のようにファイルを作成する際に、
文字コードをUTF8に指定するには
どう記述すればいいんでしょう???
0400nobodyさん
2006/07/14(金) 12:12:07ID:???0401394
2006/07/14(金) 12:26:35ID:???ありがとうございました。後で試してみます。
それで、逆を聞くのを忘れていました。
"202 240" を "あ"
"214 242" を "犬"
というパターンです。よろしくお願いします。
0402nobodyさん
2006/07/14(金) 12:34:40ID:???「decoct」って関数を示されているわけだから、マニュアル読めば関連項目とかで
見つけられそうだ、とは思わないのでしょうか?
http://jp.php.net/manual/ja/function.decoct.php
0403nobodyさん
2006/07/14(金) 12:36:45ID:???0404nobodyさん
2006/07/14(金) 12:45:47ID:???http://pc8.2ch.net/test/read.cgi/php/1150088761/
0405nobodyさん
2006/07/14(金) 12:56:23ID:Gr8Njl8B内部エンコーディングって何が適当ですか?
0406nobodyさん
2006/07/14(金) 13:14:14ID:???0407nobodyさん
2006/07/14(金) 13:52:59ID:mRNg6YQD0408nobodyさん
2006/07/14(金) 14:00:17ID:???例外が少ない
0409nobodyさん
2006/07/14(金) 14:05:42ID:???そのサーバで使えるならUTF-8が安定してていいと思う
使えなきゃEUC-JP
Shift-JISはカタカナのソとかで面倒だから使わない方がいい
ちなみにコレはPHP書くときの文字コードの話ね
正規表現使うときはデータに合わせて正規表現の文字コードを指定するよろし
0410nobodyさん
2006/07/14(金) 16:39:54ID:???DB2へ接続するといった処理を行わせようとしているのですが、
HogePDOのコンストラクタでPDOのコンストラクタを2回呼び出し
ても問題ないでしょうか?
class HogePDO extends PDO
{
//DB1接続挑戦
parent::__construct(DB1の設定);
if( DB1接続失敗? )
{
//DB2接続挑戦
parent::__construct(DB2の設定);
}
}
0412nobodyさん
2006/07/14(金) 16:55:10ID:EKwqojz9こんな感じで 'PHP' を辞書から(国語、英和、和英)検索
ttp://dictionary.goo.ne.jp/q=PHP
0413nobodyさん
2006/07/14(金) 17:08:35ID:???0414nobodyさん
2006/07/14(金) 17:17:08ID:???てことで三省堂しか選択肢ないんじゃないかな
0415nobodyさん
2006/07/14(金) 17:35:29ID:LYbOhGxKこういうのを参考にインストールしてみました。
http://www.bnote.net/windows/windows/win_php.shtml
Apacheのhttpd.confの
LoadModule php5_module c:/php/php5apache2.dll
があると、Apacheが起動しません。
これをコメントアウトするとApacheが起動できて、htmlは見れます。
PHPはコマンドライン版は動くのですが、
起動しない理由のヒントをください。
0416nobodyさん
2006/07/14(金) 17:39:26ID:???俺はここみてやったらできたぞ。
ttp://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?PHP%A4%CB%A4%E8%A4%EBWeb%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%B3%AB%C8%AF
0417415
2006/07/14(金) 18:02:38ID:???おおありがとう!
> 注2)apache_2.x.x系は、今回は使用しません。
> PHP4とApache2の組み合わせは現時点ではお奨めできません。
PHP5を使いたいのにっ _| ̄|○
Apache2.2か!?Apache2.2がだめなのか!?
0418nobodyさん
2006/07/14(金) 19:41:12ID:vYtz7wstをした後で、$linesにhogeという文字が入っている行のみを見つけ出すには
どうすれば良いですか?正規表現を使うのかなぁという気がするのですが
正規表現を使った経験がなく、どうしたらよいのか方法を教えてください。
0419nobodyさん
2006/07/14(金) 19:45:43ID:???if (preg_match('/hoge/', $line)) {
print("Hit!!\n");
}
}
0421ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 20:25:24ID:Rg3ieVQg辞書順に配列するために何かよいアルゴリズムは無いでしょうか??
0423nobodyさん
2006/07/14(金) 20:49:28ID:???iframeを使うとリンク元がそのページになってしまいます。
何か良い方法はないのでしょうか?
(スレ違いならすみません。)
0424nobodyさん
2006/07/14(金) 20:51:23ID:???.......
<img src="http://hoge.com/hogehoge.php" />
0425ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 20:53:09ID:Rg3ieVQgごめんなさい、言い忘れてました
テキストファイルだとかに生ファイルとして書き込みしようかと考えています。
それだとソフトウェアで再生することもできますし。
DBではこんなこと考えなくてもいいのかもしれませんね
0427nobodyさん
2006/07/14(金) 21:05:37ID:???textだとまず該当する語句がそのファイル内にあるかどうかの
真偽を判定しなきゃならんが、語句の数が多くなってくるとPHP標準の
関数で配列とかに読み込むとメモリ食うし、ソート処理も時間かかる。
DBにまかせた方がベター
どうしてもtextでやるんなら力任せ検索で真偽判定して偽であれば追加、
っていうのが面倒くさくなさそう。Boyer検索とかもあるけど。
0428nobodyさん
2006/07/14(金) 21:18:26ID:???リファラが欲しいなら、JavaScriptを使って
画像なりを出力するサーバースクリプトに引数として渡して呼び出すか
HTMLをPHPとして実行できるように設定するかの
どちらかかな。
0429426
2006/07/14(金) 21:18:30ID:???<img src="./count/count.php" width="0" height="0" />です。
0430ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 21:50:14ID:Rg3ieVQgそうですか・・・・
やっぱりそれしかないのですね・・・・
構築できたらそれだけでDBソフトとして利用できそう
0431nobodyさん
2006/07/14(金) 21:53:15ID:3oB/DzeI0432nobodyさん
2006/07/14(金) 22:38:02ID:???・単語単位にファイルを作る
とか
・記録は登録順にしておいて各単語の順番を保持するindexを作る
とか
・1行の長さを固定にするか行の位置をindexに記録しておいて自由に挿入削除可能にする
とか。
ちなみにテキストファイルじゃないけど固定長レコードで高速キー検索できるようにした
ファイルを使ったDBもどきとしてはdbmというのが既にある。Perl辺りじゃ標準装備。
0434nobodyさん
2006/07/14(金) 22:43:12ID:???彼らは「仕組みを知りたい」んじゃなく「こうやったらこうなる」という
結果が出てくる方法だけをケーススタディとして知りたいだけなんじゃないかなー。
WEBから入ってJavaScriptのサンプル集とかでしかプログラムしたことないやつには多そう。
もしも「そんなことはない!」というなら漏れなく消防レベルの知能指数と断定してやろうw
0435nobodyさん
2006/07/14(金) 22:48:12ID:???0436ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 23:17:25ID:Rg3ieVQgはあくしました
サンクスです
0437nobodyさん
2006/07/14(金) 23:31:36ID:???複雑な条件を探すんならともかく、単にhogeって単語を探すだけなら
正規表現は使わない方が速いし確実。
strpos()使え。
0438nobodyさん
2006/07/14(金) 23:35:14ID:???作れますでしょうか?
phpですとなかなか資料が見当たらなくて・・
perlだと「ひみこーど」?というのがあるみたいですがphpで可能でしょうか
0439nobodyさん
2006/07/14(金) 23:54:51ID:???0441nobodyさん
2006/07/15(土) 00:04:59ID:???PEAR::Text_CAPTCHA
ttp://pear.php.net/package/Text_CAPTCHA
ttp://pear.plus-server.net/package.text.text-captcha.html
紹介ページ
ttp://www.doyouphp.jp/sample/sample_others_captcha.shtml
ttp://kawama.jp/archives/2006/05/peartext_captch.html
ttp://blog.poyo.jp/archives.php/categ-1/year-2005/month-1/id-1106990727
0442nobodyさん
2006/07/15(土) 10:01:30ID:???preg_grep というすばらしい関数がある。
$mutches = preg_grep('/hoge/', $line);
0443nobodyさん
2006/07/15(土) 10:02:55ID:???PHPだと無理?
0446nobodyさん
2006/07/15(土) 12:13:33ID:DUyjY8jkphpをCGI(Suexec)で動かして、ダウンロードさせるファイルのパーミッションを400にし、↓のようなスクリプトでダウンロードさせようと考えています。
if(ある条件をクリアしたら){
header("Content-Disposition: inline; filename=\"".basename($path_file)."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
if (!readfile($path_file)) {
die("Cannot read the file(".$path_file.")");
}
}
この場合、ダウンロードさせるファイルは、99%不正にダウンロードされないと思っていいのでしょうか?
あと、他にパフォーマンスやセキュリティ面で勝る方法があれば、教えていただけるとありがたいですm(_ _)m
0447nobodyさん
2006/07/15(土) 12:16:29ID:???$path_fileとかいうのがDOCUMENT_ROOT以下に置いてないんなら
まー不正ダウンロードされることはないっしょ。
あとはそのif条件を不正に成立されたりしないかくらいでないの?
0450nobodyさん
2006/07/15(土) 12:46:12ID:DUyjY8jk安心しました。ありがとうございますm(_ _)m
念のため.htaccessも使おうと思います
0451nobodyさん
2006/07/15(土) 13:19:27ID:dl9oNIQiそういうのはarray_filterとかarray_reduceだと思うけど、grepと比べたら使い勝手は悪いかも。
0452nobodyさん
2006/07/15(土) 13:35:16ID:???PHPの関数はあくまでC言語ライクだが、Perlの関数はシェルスクリプトライクなわけで。
でも、だからこそ誰が書いても比較的一定のコーディングスタイルを保ってられるんだと思うけどね。
0453nobodyさん
2006/07/15(土) 14:37:30ID:RYeH9Y82環境は、SunCobaltRedHatLinux7.0+PHP5.0.4+nkf2.0.4です。
「ココ,ココリコ,ココ数」とだけ書いたsample1.csvをUTF-8(改行コードCR+LF)
で作成します。そして、test1.phpというファイルをUTF-8(改行コードCR+LF)で
作成し、<input type="file"〜>でファイルアップロードが出来、fgetcsvで、
アップロードしたCSVファイルの要素を取得出来るように、test1.phpに記述します。
test1.phpに、
list($field1,$field2,$field3)=fgetcsv(アップロードしたファイル名);
print("1番目".$field1."2番目".$field2."3番目".$field3);
と書くと、
「1番目??コ2番目??コリコ3番目??コ数」
と、先頭の文字が「??」に文字化けしてしまうのです。この原因は、どなたかお分
かりでしょうか?先頭の「コ」以外は文字化けしていないので、「コ」という文字
が原因ではないと思います。test1.phpの先頭に「mb_internal_encoding();」と書く
と、「ISO-8859-1」と出て来ました。これが原因かと思って、
「mb_internal_encoding("UTF-8");」としたのですが、やはり同じ文字化けのままでした。
ちなみに、他のPCにFedoraCore2+PHP5.0.4+nkf2.0.4をインストールし、全く同じ(!)
sample1.csvとtest1.phpで試した結果、「1番目ココ2番目ココリコ3番目ココ数」と
なり、正しく表示されました。けれども、本番機はSunCobaltRedHatLinux7.0で動いて
いますので、本番機の文字化けを直さなくてはならないのです。どなたかお分かりで
しょうか?教えて頂ければ、幸いです。
0455232
2006/07/15(土) 14:50:39ID:???<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$out, PREG_PATTERN_ORDER);
print_r($out);
?>
以上を実行すると以下の配列が出力されます。
Array ( [0] => Array ( [0] => example:
[1] => this is a test
[1] => Array ( [0] => example:
[1] => this is a test ) )
これだと配列が取り出しにくいので
Array ( [0] => example:
[1] => this is a test )
↑こんな感じに$outに配列を格納することは出来ませんか?
0458nobodyさん
2006/07/15(土) 15:16:53ID:RYeH9Y82>>454様。>>456様。ご返答、ありがとうございます。
今、本番機から離れた所にいますので、数日経ちましたら、調べて
みます。
ちなみに、>>454様のおっしゃる通り、「サーバにアップロードした
後のcsvファイルが異常」だとしたら、どのようなことが原因なの
でしょうか?普通に<input type="file" 〜>と書いているだけなの
ですが、それでもアップロードが異常になることがあるのでしょうか?
また、>>456様のおっしゃる通り、「mbstring.language」が原因だと
したら、「mbstring.language」はどのように設定すべきなのでしょう
か?「mbstring.language」が「neutral」であれば「Japanese」に変え、
「mbstring.language」が「Japanese」であれば「neutral」に変えてみ
るのが良いのでしょうか?
0460nobodyさん
2006/07/15(土) 16:40:47ID:47sj2xHFどのようにすればよいのでしょうか?
array("1番目","2番目","3番目","4番目","5番目","6番目","7番目","8番目","9番目","10番目","11番目","12番目");
[0]1番目
[1]2番目
[2]3番目
[3]4番目
[4]5番目
[5]6番目
[6]7番目
[7]8番目
[8]9番目
[9]10番目
[10]11番目
[11]12番目
[0]1番目
[1]2番目
[2]5番目
[3]6番目
[4]1番目
[5]12番目
[6]7番目
[7]8番目
[8]10番目
[9]9番目
[10]8番目
[11]11番目
並び方はランダムでお願いします。
0463nobodyさん
2006/07/15(土) 17:16:36ID:dl9oNIQi0464nobodyさん
2006/07/15(土) 17:17:14ID:???0465nobodyさん
2006/07/15(土) 17:20:39ID:???あとで使うときになって「そういえば、こんなような関数どっかにあった気がする」と気づくから。
0467nobodyさん
2006/07/15(土) 17:24:55ID:???しかもランダムに、値が重複しないように表示したいのですが、
どういった関数を利用すればいいんでしょうか?
0468nobodyさん
2006/07/15(土) 17:29:25ID:???0469nobodyさん
2006/07/15(土) 17:31:05ID:???array_rand
array_slice
とか使って書きなはれ。
0470nobodyさん
2006/07/15(土) 17:34:47ID:???0471nobodyさん
2006/07/15(土) 18:01:13ID:???手順さえ思いつけば8割がた出来たも同じ。後は利用する
プログラミング言語の文法に従って書けば良いだけだからな。
その手順を考えることを放棄するような奴ってなに考えてるんだろうね?
この世に不要なんだよ。存在自体が。
ここはくだ質スレだが、こういう結果が欲しくてこういう手を考えたが
もっとスマートな方法は無いか?とかどういう関数が使えるか?
ちうことを聞くところだ。
考えることを放棄するような奴はイラネ。うせろ。
0473nobodyさん
2006/07/15(土) 20:42:33ID:???date(Ymd,strtotime("-1 day"))
これは昨日限定ですよね?
昨日以前というのは指定できないのでしょうか?
0475nobodyさん
2006/07/15(土) 21:53:38ID:???0476nobodyさん
2006/07/15(土) 22:31:25ID:QlSeqY/9・ファイルにしてインクルードする
function foo()
{
include( "globals.php" );
echo $var;
}
・クラスにして参照する
class CGlobals{
static $var = 123;
}
function foo()
{
echo CGlobals::$var;
}
・$GLOBALSを使う
function foo()
{
echo $GLOBALS['var'];
}
のどれが好ましいでしょうか
もしくはこれ以外にもっと好ましい方法がありますでしょうか
0479nobodyさん
2006/07/15(土) 23:57:29ID:sY8c/3Bb$str="aa<a>bb</a>aa"
$strから<a></a>に挟まれた文字列を
取得したいのですが、
どう記述すればいいでしょうか?
サンプルソースを頂けないでしょうか。
0481nobodyさん
2006/07/16(日) 00:16:25ID:???aaa<br>
bbb<br>
ccc<br>
HTML;
これのような出力を一気に配列に入れる方法を教えてください。
0482479
2006/07/16(日) 00:25:47ID:???こんな感じで書いたら
<?php
$str="aa<a>bb</a>aa"
$a_resulet=mb_ereg_search_regs("<a>*</a>",$str);
?>
こんなんになりました
Warning: mb_ereg_search_regs() [function.mb-ereg-search-regs]: No string given in /usr/local/apache2/htdocs/test.php on line 4
0484nobodyさん
2006/07/16(日) 00:45:50ID:???ob_start();
echo <<< HTML
aaa<br>
bbb<br>
ccc<br>
HTML;
$array = explode("\n", ob_get_contents());
//$array = preg_split("/\r\n|\r|\n/", ob_get_contents());
ob_end_clean();
print_r($array);
0485nobodyさん
2006/07/16(日) 02:33:24ID:???データの中にカンマが含まれている場合、そこで配列の項目として切っちゃいますよね?
そういう場合は本業プログラマさんは普通どういう方法で処理するものなんでしょうか?
よろしくお願いします。
0486nobodyさん
2006/07/16(日) 02:55:40ID:???別に決まりはないはず
たとえば単純に2byte文字「,」にするとか
特殊文字「,」(&#44;)にするとかね
0487nobodyさん
2006/07/16(日) 02:57:42ID:???普通は処理がしやすいようにデータフォーマットを作る。
例えばタブ区切りにするとか。
CSVつうてもエスケープのしかたで何種類かあるので
既存のデータなら、それに合わせて処理する。
EXECLの吐くやつとかだと処理ライブラリもあるけど
上手くいかないことも。
0488nobodyさん
2006/07/16(日) 03:20:47ID:???というか、変な置き換えをするのはウンコ。
置き換えは " だけ。"" と2回連続させる。
0489nobodyさん
2006/07/16(日) 04:14:19ID:???区切り文字には気をつけろ!
カンマ区切りの場合「ソ」の直後に「"」が来るとバグる関数がある(fgetcsvとか)
まぁ、そういうところを考えるのもプログラミングの楽しいところだな
・・・苦しむところでもあるが
0490nobodyさん
2006/07/16(日) 04:25:50ID:???>>473 みたいのが全てを表してると思う。
彼らはコーディングをアルゴリズムとは思っておらず
「指定すれば指定した通りの結果が出てくる」という
PHPを単なるツール、アプリケーションの操作と勘違いしている。
0491nobodyさん
2006/07/16(日) 04:28:48ID:???言いたい事は分かるけどね。
0492nobodyさん
2006/07/16(日) 04:33:07ID:???そこに至るまでの考え方など無用の長物なのだ
0493nobodyさん
2006/07/16(日) 05:18:14ID:???よかった。まだ俺と同じ考えのヤツがいたんだ。
このスレ、だんだん丸投げスレになってきたんでどうしようかと思ってた。
0494nobodyさん
2006/07/16(日) 05:31:42ID:???答えたくないなら答えなくても良いし
■ このスレッドは過去ログ倉庫に格納されています