【PHP】下らねぇ質問はここに書き込みやがれ 29
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/17(日) 04:26:39ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0422nobodyさん
2006/09/24(日) 10:31:03ID:???一般に表示は更新に比べて使用頻度の高い処理なので、
高パフォーマンスを必要とする大規模サイトではあらかじめ変換しとくよね。
再利用性を意識するなら元データと変換済みデータの2種類保存。
パフォーマンスに特にこだわらないんであれば元のまま置いといた方が便利なこともある。
DB格納ではなく静的HTMLを生成しちゃう場合もあるけどそれはシステムに応じてTPO。
>>418
>>416みたいにメール配信に使う場合とか、検索処理で使いたいとか(実体参照変換
されてると精度または速度に難が出る)、あと表示データの再編集機能とか付けることもあるかな?
0423nobodyさん
2006/09/24(日) 11:15:24ID:???date関数では現在の日付しか返してくれません。
何かよい関数はありませんか?
0425nobodyさん
2006/09/24(日) 11:24:59ID:???ファイルをアップ→確認ページ→登録。という流れで、確認ページでファイルの適正を
調べて、エラーがあれば削除、無ければ一時保存してます。
んで、そのファイルを登録ページでDBに登録してるのですが。
cronはちょっと、解らないっぽいす。。
こうゆう場合、どんな風にすればいいんですかね!?
所定のボタン以外が押されたら、削除してリンク先に飛ぶことってできます?
0426nobodyさん
2006/09/24(日) 11:31:43ID:???とりあえず、システムの /tmp に一時保存しておけば?
あれって定期的に自動で削除されるんだっけ。
それから上手に設計することも大切。
というか、ファイルの適正を調べるって具体的に何がしたいの?
0427nobodyさん
2006/09/24(日) 11:38:14ID:???そういう場合、手っ取り早いのはアップロードの開始または受信ページの処理で
古いゴミファイルが残ってないか探して掃除する処理を追加でいれとく方法。
所定のボタン以外クリック〜は結構ムリがあるので諦めた方が吉。
>>426
サーバー再起動が入らなきゃ消えないと思うけど >/tmp
アップロードで途中に確認処理を入れたいくらいはごく普通の話じゃない?
0428nobodyさん
2006/09/24(日) 11:46:43ID:???{
link( $filename );
exit;
}
0430nobodyさん
2006/09/24(日) 12:29:28ID:OMjQUi71たとえば、http://example.com/movie/01.aviみたいなの
0431nobodyさん
2006/09/24(日) 12:39:38ID:???{
$size = strlen(file_get_contents($url));
return $size;
}
0432nobodyさん
2006/09/24(日) 12:49:40ID:???おー、どうもありがとうございます。
でも、このばあいファイルがない時すごい時間がかかっちゃうんですけど
タイムアウトの設定とかできないんでしょうか?
0433nobodyさん
2006/09/24(日) 13:00:07ID:???確認ページって別ページに遷移するのか?
そうなら>>426のtmpfileは使えない(fcloseで消える)
0434nobodyさん
2006/09/24(日) 13:01:15ID:???filesize('http://example.com/movie/01.avi')で通らないか?
通らないならどっかに設定があった気がする
0436nobodyさん
2006/09/24(日) 13:11:44ID:???filesize('http://example.com/movie/01.avi')は通らなかったです
レン鯖なのでphp.iniも弄れないです
0438nobodyさん
2006/09/24(日) 13:29:00ID:???「自分よりも低スキル(=低能)」
とみなした相手が
「自分よりも高額の報酬を受け取っている」
と知ったとき、どういう感情を抱くの?
0439nobodyさん
2006/09/24(日) 13:41:55ID:???それだったらfile_get_contentsもダメのような・・
$fp = fopen($url, 'r');
$stat = fstat($fp);
echo $stat['size'];
とかどうなんだろ
0440nobodyさん
2006/09/24(日) 13:49:40ID:OMjQUi71助言ありがとうございました
0442nobodyさん
2006/09/24(日) 14:00:56ID:???マニュアル嫁
0443nobodyさん
2006/09/24(日) 14:03:59ID:DZtBW6OC0444nobodyさん
2006/09/24(日) 14:36:22ID:uiOmiLkx色々と機能をつけたし、ユーザー関数を雨後のたけのこのように作ってきたのですが、
そうするとあたり前のように似たような関数が作られ、使いがっての悪い関数は使われなくなりソースの片隅に放置されてしまいます。
このように定義はされているが、一度も呼び出される可能性のない関数を調べることは出来るのでしょうか?
もしそのような便利な方法などがあればご教授ください。
よろしくお願いします。
0445nobodyさん
2006/09/24(日) 15:41:05ID:???むつかしいな。
grepで頑張るか。
parsekitである程度調べられないかな?(php5で動くっけ?)
定義されてる関数の列挙くらいはできるので、そのリスト+適当にスクリプト書く+grepでやるとか。
つーか、正規表現でゴリゴリ書いてもけっこうすぐできそうだな。
/\bfunction\s(\S+)\s*\(/
で定義を抽出。それぞれの関数名に対して
/(?<!\bfunction\s)\b$func_name\s*\(/
の出現回数を数える。
あ、<?php ?>の外側と文字列とコメントを除かないとマズイか。
それじゃ簡単な字句解析ルーチン作って・・・・・・たぶん俺はこの辺で寝ると思う。
0446nobodyさん
2006/09/24(日) 15:47:32ID:???foreach(range(1,7) AS $passday){
echo date("Y-m-d",strtotime("-{$passday} day"));
}
0447nobodyさん
2006/09/24(日) 16:11:45ID:???技術的な能力が低くても、技術を換金する能力が高いことも
経済社会においては高報酬につながるとあらためて思うだけ。
0449nobodyさん
2006/09/24(日) 17:03:51ID:???この記述をなくすと、正常に次のページで表示される。
ずっと悩んでます。どうか教えてください。
ちなみに両ページともEUCです。
0450nobodyさん
2006/09/24(日) 18:08:06ID:hqJ9+PnB<!-- 美乳 -->
と書いてください。そうすると文字化けがなおります。
詳しくは、Googleで「文字化け 美乳」をキーワードにして検索して自分で調べてみてください
0452nobodyさん
2006/09/24(日) 18:31:51ID:hqJ9+PnBこのページの途中の「HTTP入出力」ってとこに書いてある話が関係してるのかな?
まずPHPのバージョンがわからないとね
0453nobodyさん
2006/09/24(日) 19:03:20ID:???ありがとうございます!!!そのページにある
「EUC-JP ユーザ用の php.ini の設定」の設定に変更してみたところうまくいきました!!
本当にありがとうございます。
バージョン言って無くて申し訳無かったです。
PHP Version 5.1.6でやってます。
0454nobodyさん
2006/09/24(日) 20:05:18ID:???違っていれば別スレに誘導していただけると嬉しいです。
http://allabout.co.jp/internet/database/closeup/CU20020721/index.htm
このサイトを見てMySQLをインストールしました。(3.23.58)
cd mysql\bin と入力すると「指定されたパスはありません」と出たので、
これはc\mysql\bin で解決しました。
次に、
mysqladmin ping
と入力して、稼動しているか調べようとしたのですが
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
とエラーがでます。
これは、localhostが見つからないということなのでしょうか?
0455nobodyさん
2006/09/24(日) 20:05:21ID:???逆だよ
ひろみちゅ先生は、HTMLとして出力するときに、htmlspecialcharsすることを推奨している
0456454
2006/09/24(日) 20:09:05ID:???事故解決しました
0458nobodyさん
2006/09/24(日) 20:52:39ID:???だったら初めから余計なこと言うなボケ。素人に誤解を招く。
>>414が正しいこと言ってるのに、>>415でお前が余計なこと書いたから
このような流れになった。
ちなみに俺はこの流れに一切関係ない。初めて発言した。
0459nobodyさん
2006/09/24(日) 20:55:57ID:???しているのですが.jpgのギガピクセル超え(5MB以上)だと極端に重くなります。
処理時間におおよそ20秒程度。
これで普通でしょうか
0460nobodyさん
2006/09/24(日) 20:57:17ID:???皆からしたら「それくらい?」って思うが俺からしたら大進歩♪
0461nobodyさん
2006/09/24(日) 21:00:07ID:???0465nobodyさん
2006/09/24(日) 22:44:08ID:C1aKz/pPifの中に組み込むとか……
たとえば
$i = 5;
if (!$i = 5){
echo "iは5";
}else{
echo "iは5でない";
}
とやると iは5でないとなります。
しかし
$i = 4;
としても iは5でないとなります。
$i=5; のとき
iは5ではない=5 → 偽
となりそうなのはわかるのですが
$i=4; のとき
iは4ではない=5 → 偽
となるのが意味わかりません。
0466nobodyさん
2006/09/24(日) 22:50:56ID:???0467nobodyさん
2006/09/24(日) 22:51:40ID:???まぁ誰しも通る道だけどね。
0468nobodyさん
2006/09/24(日) 22:57:13ID:???本とかマニュアル、よく読もうよと言いたいとこだけど。
0469nobodyさん
2006/09/24(日) 23:14:40ID:???あのマニュアルは用語とか多用しているし、プログラミング経験が無い人には取っ付きにくいと思う。
だが日本語訳もあるしかなり環境は良いなPHPって……。
0470465
2006/09/24(日) 23:22:25ID:C1aKz/pPとなっていました。
ということは
$i が偽のとき真を返す。
$i = 4;
if(!$i == 5){
echo "iは5";
}else{
echo "iは5でない";
}
i=4 =5でないから偽
偽の場合は真を返す → echo "iは5";
のはずなんですが…… 偽の答えがでてきます。
考え方が何か間違ってますでしょうか?
0471465
2006/09/24(日) 23:27:01ID:C1aKz/pPif($i>5 && $i<10){
echo "6〜9です";
}else{
echo "6〜9ではありません";
}
みたいな、論理演算子で&&と||は理解したのですが…… ! がどうしても。
}
0472nobodyさん
2006/09/24(日) 23:37:36ID:???http://www.php.net/manual/ja/language.operators.logical.php
+------------------------------------------+
| ! $a | 否定 | $a が TRUE でない場合 TRUE |
+------------------------------------------+
$a = FALSE;
if (! $a) echo '$aはTRUEではない';
$b = 0;
if (! $b) echo '$bは0';
// integerの '0' はFALSE
// 参考: http://www.php.net/manual/ja/language.types.boolean.php#language.types.boolean.casting
0473nobodyさん
2006/09/24(日) 23:39:20ID:???0474nobodyさん
2006/09/24(日) 23:41:27ID:???演算子の優先順位(掛け算や割り算は足し算引き算より先に計算される、というアレね)で
! は == より上。
だから if(! $i == 5) ってのは
まず ! $i が計算されて、$i が 0 であれば 1に、0以外であれば 1 にされる。
そしてそれが == 5 で 5と一致するか、を判定される。
正しくは if(! ($i == 5)) のように書く。
0475nobodyさん
2006/09/24(日) 23:45:47ID:???>>470
演算子の優先順位に関しては、言語リファレンスの演算子の所に載ってるよ。
http://www.php.net/manual/ja/language.operators.php
0476nobodyさん
2006/09/24(日) 23:46:39ID:???0477nobodyさん
2006/09/24(日) 23:47:02ID:???if ($i != 5)
って書くな
0478nobodyさん
2006/09/25(月) 00:00:43ID:???0480nobodyさん
2006/09/25(月) 00:01:57ID:???プリント 5
って書くな
0481nobodyさん
2006/09/25(月) 00:02:19ID:???0483nobodyさん
2006/09/25(月) 00:06:59ID:???風呂行ってさっぱりしてくるか
それはそうとちょっと聞いてくれ。
俺10月からPGじゃなくなるんだ
細かく書いちゃうと特定されるかも知れないから書かないけど
SEでもない。
やることはもちろんこの業界なんだけど何か寂しい
仕事でプログラミングできないのが凄く寂しい
またプログラミングがしたいな
0484465
2006/09/25(月) 00:08:36ID:9eV2tYIW>>474さん
>>475さん
どうもありがとうございます。
boolean に変換する場合、次の値は FALSE とみなされます。
がとても参考になりました。
演算子の優先順位があるとは気づかなかったです。 ようやく一歩前に進めたと思います。
これからいろいろサンプル作って試してみます。
どうもありがとうございました。
0486nobodyさん
2006/09/25(月) 00:13:02ID:???算数の問題じゃない?
>>483
職業プログラマじゃなくたっていいじゃないの。
何か面白いスクリプトを作って公開しませう。
// というかこの板、職業プログラマが多いのかい。
// 私みたいにWebサイトで使う、ごくごく趣味みたいな感覚の人はいる?
0488nobodyさん
2006/09/25(月) 00:37:29ID:dmDwzgtGこちらの「ショートメッセージ2」にて禁止語句設定を
する為に、様々奔走したのですが出来ません。
やり方をご指南ください。
0489nobodyさん
2006/09/25(月) 00:44:29ID:???スクリプト改造をいらしているならスレ違い
自分が作った物を提示してください
ここはプログラムする人のスレです
$_POST['message'] の内容をチェックして、特定の語句があれば書き込まないようにすればいいんじゃない?
0490nobodyさん
2006/09/25(月) 00:49:40ID:???in_array()
ifとelse
だけで作れるよ
0491nobodyさん
2006/09/25(月) 00:53:17ID:???-----------------------------------------------
$ng = array('禁止語句1','禁止語句2','禁止語句3'・・・);
foreach ($ng as $value) {
if (strpos($post, $value) !== false) {
echo '卑猥な言葉が盛りだくさんです。';
exit;
}
}
書き込み処理
-----------------------------------------------
意図と違ったらスマソ。
ちなみに合ってたとしてもマニュアルでstrpos()をちゃんと調べてね。
0492nobodyさん
2006/09/25(月) 12:04:57ID:rFgBtun6リクルートのAPIを利用してサイトを作っているのですが、
XMLをうまく読み込んでくれません。
XML_RSSというPEARのクラスを組み込んで、一番簡単なサンプルコードに、例としてじゃらんのXMLを書いてprint_rしても空の配列が帰ってきます。
リクルート以外のXMLを試すとほぼ正常に配列が帰ってきます。
リクルートがはき出すXMLの構造がちょっと特殊なのかなと予想していますが、正確なところはわかりません。
ちなみに、ローカル環境のphp5でsimplexml_load_fileをやったら、リクルートのものも問題ありませんでした。
http://jws.jalan.net/ws/viw/U01004
↑のページ中程にじゃらんのサンプルリクエストURLがあります。
書いたコードはXML_RSSのテストコードまんまです。
require "../RSS.php";
$r =& new XML_RSS("http://jws.jalan.net/APICommon/OnsenSearch/V1/?key=guest&l_area=010300&count=1&xml_ptn=1");
$r->parse();
print_r($r->getItems());
よろしくお願いします。
0493nobodyさん
2006/09/25(月) 12:37:43ID:???リクルートってあんた
0495nobodyさん
2006/09/25(月) 13:52:17ID:???そこのURLがRSSフォーマットじゃない
先にXMLとRSSが何かを調べた方がいいかと
simplexml的なのをPEARでやりたいなら
XML_Serializerに入ってるXML_Unserializer使え
0496nobodyさん
2006/09/25(月) 15:24:06ID:d7O7pv61PHP5が動作する鯖で
http://php.s3.to/net/get2.phps
のソースを実行したのですが実行されませんでした。
PHP5用に書き換えないと無理なんでしょうか・・・
0497nobodyさん
2006/09/25(月) 15:34:53ID:???0498nobodyさん
2006/09/25(月) 15:49:53ID:???if(!$_GET[site] || !strstr($_SERVER[HTTP_REFERER],"php.s3.to") || !ereg("^http://",$_GET[site])){
↓
if(!$_GET[site] || !ereg("^http://",$_GET[site])){
0499496
2006/09/25(月) 16:37:04ID:d7O7pv61バージョンは5.1.7でエラーはされないのですが
http://php.s3.to/net/get2.php?site=http%3A%2F%2Fgoogle.com&act=
↑のように下部に表示させることができません。。
>>498
|| !strstr($_SERVER[HTTP_REFERER],"php.s3.to")を排除して
実行してみましたがやはり下部の部分が表示されません。。
0500nobodyさん
2006/09/25(月) 16:38:54ID:???でどうかな
単にpregしか分かんないってのもあるけど
strstr($_SERVER[HTTP_REFERER],"php.s3.to")
の php.s3.to 部分を自分のドメインにしろって事なのかな、説明が無いから分かりにくい。
0501492
2006/09/25(月) 16:44:32ID:rFgBtun6ありがとうございます。その通りっぽいです。
pearなどのライブラリを使わないで書く方法が見つかったので、
それでやりたいと思います。ありがとうございました。
05024
2006/09/25(月) 16:47:25ID:WNDcSAnJ神の着地術!!(゚ロ゚;)
http://gotodmc.ath.cx/uploader/src/fdds.wmv
0504nobodyさん
2006/09/25(月) 17:14:32ID:???UTF-8が良いと聞いたので、それで書いています。
実行してみると、日本語が???に文字化けしてしまいます。
どのように対処すれば良いのでしょうか?
0505nobodyさん
2006/09/25(月) 17:30:16ID:???0506504
2006/09/25(月) 17:33:21ID:???UTF-8です。
文の最初にmb_internal_encoding("UTF-8");としても文字化けしたままです。
出力時にmb_convert_encoding($str,"UTF-8");とするとうまく表示されるのですが、
出力するたびに変換していたら文が長くなってしまうので、最初に指定しておきたいです。
0507nobodyさん
2006/09/25(月) 17:37:43ID:???それはDBから受け取ったエンコーディングがUTF-8じゃないんじゃない?
DBから受け取った状態のまま、エンコーディングをIEなりで確認してみればいいじゃない?
であとはDBの話っぽいので板違いかも
DB何使ってるか書けば誰かが答えてくれるかも
DB側の出力を何とかする必要があるんじゃないかな
0509nobodyさん
2006/09/25(月) 17:47:55ID:gQCSf4GG全部のDBが同じだと思うな。
データベース作成する時に文字コードセットしたか?
mysqlならcharacter set utf8
pgsqlなら--encoding=utf8
0510504
2006/09/25(月) 17:48:15ID:???>DBから受け取った状態のまま
これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
でしたらUTF-8になっています。
DBはMySQLを使っています。
板違いになりましたが、どなたか答えていただければ幸いです。
0511496
2006/09/25(月) 17:48:28ID:d7O7pv61わざわざすみません;
書いて頂いたその記述と
strstr($_SERVER[HTTP_REFERER],"php.s3.to") に自分のドメインを
入れてみましたがやはり表示できませんでしたorz
ちょっと鯖変えて試してみたいと思います。
ありがとうございました。
0512nobodyさん
2006/09/25(月) 17:49:56ID:gQCSf4GG<meta http-equiv="content-type" content="text/html; charset=utf-8" />
0513nobodyさん
2006/09/25(月) 17:52:30ID:???> >DBから受け取った状態のまま
> これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
> でしたらUTF-8になっています。
UTF-8でブラウザ側で表示されてるなら問題無いじゃん。
って、違うよね・・
ブラウザ側で色々エンコード変えてみて、テストしてって話だよね・・
あとはDBのエンコード確認する方法をDB関係のスレで聞いてきてはどうですか
0515504
2006/09/25(月) 17:56:20ID:???header("Content-Type: text/html;charset=UTF-8");
と指定したのですが、変わりませんでした。
>>509
MySQLです。
データベース作成時には特に何もいじっていません。
また、設定の仕方がわかりません。
>>512
それはもともと表記されていましたが、消しても書いても変化はありませんでした。
>>513
UTF-8では文字化けした状態で表示
EUC、SJIS、JISでは何も表示されません。
DBの方に言ってみることにします。
有難うございました。
0516nobodyさん
2006/09/25(月) 18:00:54ID:???0517nobodyさん
2006/09/25(月) 18:01:25ID:???WinXP、PHP 5.1.4
php_imagick.dllをphp.iniに追加しましたがロードに失敗してしまいます(読み込めないとのエラーがログに吐かれていた)。
mbstringやpdoなど、他のモジュールはロードできています。ファイル名が間違っていないか何度もチェックしましたが合っています。何が原因なのですか?
0518nobodyさん
2006/09/25(月) 18:13:04ID:???$str .= aaa;
return($str);
}
$str = "あいうえお";
echo str($str);
上記のようにすると、「あいうえおaaa」と出力されます。
ここまではいいのですが、$str以外の変数にも同じようにしたいのですが、
どのようにすれば良いのでしょうか?
つまり、$strだけじゃなく、
str($hogehoge);や
str($aiueo);など
いろんな変数にも対応できるようにしたいです。
0521nobodyさん
2006/09/25(月) 18:18:36ID:???function ($a)
{
$a .= 'aaa';
return $a;
}
$str = 'あいうえお';
$hogehoge = 'ほげほげ';
$aiueo = 'あいうえお';
echo( $str );
echo( $hogehoge );
echo( $aiueo );
■ このスレッドは過去ログ倉庫に格納されています