【PHP】下らねぇ質問はID出して書き込みやがれ 77
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/12/08(月) 01:27:39ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0853nobodyさん
2008/12/22(月) 22:36:40ID:UijRZ2Ey$data = <<<MESSAGE
なんたらHTML
MESSAGE
の中に、変数を入れているのが悪いのではと推測しますが、
HTMLのなかに変数を入れる場合、変数を""で囲むのでしょうか?
初心者ですみません
Perlでは囲まないような気が
0855nobodyさん
2008/12/22(月) 22:40:02ID:???Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135
'('があるべき場所に予期せぬ')'があります。
0856nobodyさん
2008/12/22(月) 22:43:47ID:???0858nobodyさん
2008/12/22(月) 22:53:14ID:UijRZ2EyMESSAGE; にしていました。
MESSAGEの中に、
<?php
header("content-Type: text/html; charset=sjis");なんたら
?>
これがあるのが悪いみたいです。
これ(<php? ?>)は、どうやって入れたらいいのでしょうか?
外部のテキストデータを読む?
0859nobodyさん
2008/12/22(月) 22:54:27ID:???0860nobodyさん
2008/12/22(月) 22:56:54ID:???0862nobodyさん
2008/12/22(月) 23:07:56ID:UijRZ2Ey<?php
header("content-Type: text/html; charset=sjis");
?>
sjis を変えてもダメで、
header("content-Type: text/html; charset=sjis");
のheaderがダメみたいですね。うーん
0864nobodyさん
2008/12/22(月) 23:19:27ID:UijRZ2Eyこれでいいでしょうか?
0865nobodyさん
2008/12/22(月) 23:22:40ID:???そのつもり無いならとっとと失せろ
0866nobodyさん
2008/12/22(月) 23:32:40ID:???0867nobodyさん
2008/12/22(月) 23:35:36ID:???$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
0868nobodyさん
2008/12/22(月) 23:36:55ID:F+ur7gRG0869nobodyさん
2008/12/22(月) 23:38:53ID:UijRZ2Eyそうです。
皆様
いろいろお騒がせしてすみませんでした。
ZIP関数の例文をコピーしてアップしてみたら、
やはり同じところで同じエラーが出るので、
これは、zip関数が使えないということだと思います。
その場合、どうしたらいいのでしょうか。
PEARでできるでしょうか(フォルダ圧縮、透過的書込み)
0870ただの人
2008/12/22(月) 23:39:08ID:i5NpGqPt最近、PEARを知ったのですがログイン認証機能を設置するのに
Authを使おうか迷っています。
Auth使った失敗談とか教えてくれたらうれしいのですが・・・
0871nobodyさん
2008/12/22(月) 23:39:15ID:???あんなの動くのか
0872nobodyさん
2008/12/22(月) 23:39:37ID:???うざいから、どっか消えろよw
0873nobodyさん
2008/12/22(月) 23:40:50ID:???環境は違うが。
<?php
$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
echo $data;
?>
エラーなし、hogehoge って出たぞ。
出るエラーメッセージは何よ?
0874nobodyさん
2008/12/22(月) 23:49:50ID:i5NpGqPt0875nobodyさん
2008/12/22(月) 23:51:32ID:???0876nobodyさん
2008/12/22(月) 23:51:35ID:???リンク先にちゃんと書いてあるし
0878nobodyさん
2008/12/23(火) 00:00:12ID:59V79J7s自鯖ではないので、インストールできません。
やはり、原因はZip関数が使えないのだと思います。
ローカルでは動いていますので。
そういう場合、どうすればいいのでしょうか?
0879nobodyさん
2008/12/23(火) 00:02:20ID:???0880nobodyさん
2008/12/23(火) 00:08:41ID:???0881nobodyさん
2008/12/23(火) 00:11:18ID:???0882nobodyさん
2008/12/23(火) 00:18:06ID:???本気だとしたら本人の頭が改善できないから無理だな。
0883nobodyさん
2008/12/23(火) 00:41:06ID:???0884nobodyさん
2008/12/23(火) 01:33:38ID:59V79J7s検索すると、PECLというのは、PEARとちがって
コンパイルする必要があると書いてあります。
それって、自分でレン鯖に入れることできるのでしょうか?
0885nobodyさん
2008/12/23(火) 01:42:05ID:VpMBr0l7funcA( ABC , DEF );
となっている部分の
ABCとDEFをpreg_matchで取り出すのは簡単ですが、
preg_match( "/.*funcA\s*\(\s*(.+)\s*,\s*([^\)]+)\s*\)/", $xxx, $yyy ) )
でできたのですが、
funcA( funcB( XYZ ) . ABC , DEF );
と入れ子になっていたりすると、
funcB( XYZ ) . ABC
DEF
が取り出せません。
さらに、
funcA( funcB( XYZ ) . ABC ,
DEF );
などとなっていると、さらに厳しいです。
これを鮮やかに取り出す方法はないでしょうか?
よろしくお願いします。
0887nobodyさん
2008/12/23(火) 02:00:17ID:???正規表現一発では無理、仮に出来たとしてもかえって難しい。
状態を持つ再帰構造で頑張るか、ツリー型のデータ構造(Interpretorパターン)を自前で実装する必要がある。
0888nobodyさん
2008/12/23(火) 02:14:55ID:???「有難う」と言う
感謝の心
「すみません」と言う
反省の心
「おかげ様」と言う
謙虚な心
「私がします」と言う
奉仕の心
「はい」と言う
素直な心
0889nobodyさん
2008/12/23(火) 02:29:36ID:6F++HAzmmd5を使って二重投稿の判定をしようと考えています。
本文が64KBなのですが、
md5($str) で、$strに最大64KBもある文字列を突っこんでも一意の値を返してくれるのでしょうか?
DBより前回の投稿本文を取ってくる = $str1 (最大64KB)
今回の投稿本文 = $str2 (最大64KB)
if(md5($str1) == md5($str2)) {
※同じ値なので二重投稿として判定
}
この方法はあってますでしょうか?
0890nobodyさん
2008/12/23(火) 02:40:56ID:???0891nobodyさん
2008/12/23(火) 04:16:18ID:???0892nobodyさん
2008/12/23(火) 04:16:43ID:???MD5 に限らずハッシュ関数ってのは特徴を求めるための関数
一意性を求めるための物じゃないので衝突は絶対に発生する
データベースにデータとそのハッシュ値を保存しておいて、
最初にハッシュ値でざっと比較し、その後精査てな感じで利用される
ちなみに書いてくれた方法だとハッシュ値なんて得ずにそのまま比較するだけでいい
0893889
2008/12/23(火) 04:27:42ID:6F++HAzmありがとうございます。
教えどおり直接比較してみることにします。
ちなみに画像データは
hash_fileで比較しようとしてたのですが、これも直接比較する方法があるのでしょうか?
0894nobodyさん
2008/12/23(火) 04:51:43ID:???0895nobodyさん
2008/12/23(火) 05:08:34ID:KPRHaWl+ここのページのサンプルの、
<?php
class Food {
private $name;
public getName() {
return $this->name;
}
}
これを実行したらエラーになるんだけど、なんで?
0896nobodyさん
2008/12/23(火) 05:13:31ID:???0897nobodyさん
2008/12/23(火) 05:18:16ID:???0898nobodyさん
2008/12/23(火) 05:24:10ID:???string 型はバイナリセーフなので比較演算子 == が使える
二つのファイルを fread() 等で読み込んで比較するだけ
I/O に掛かる時間は馬鹿にならないから直接比較する機会は減すよう、
それこそハッシュ値やメタ情報(ファイルサイズetc)を活用するといい
0899nobodyさん
2008/12/23(火) 05:58:11ID:???<?php
class aaa
{
var $bbb="はじめまして";
}
$ccc = new aaa();
echo $ccc->bbb;
?>
0900nobodyさん
2008/12/23(火) 06:00:49ID:???<?php
class aaa
{
$bbb="はじめまして";
}
$ccc = new aaa();
echo $ccc->bbb;
?>
って、「var」を削って保存して実行してみた。
結果、問題なく表示される。varいらないジャン?
0901nobodyさん
2008/12/23(火) 06:01:46ID:???0902nobodyさん
2008/12/23(火) 06:02:21ID:???まちがえてたごめん
0903nobodyさん
2008/12/23(火) 10:51:31ID:gaPLrdeb0905nobodyさん
2008/12/23(火) 11:35:35ID:???全部privateが基本だからな。
0906nobodyさん
2008/12/23(火) 11:37:26ID:???0907nobodyさん
2008/12/23(火) 11:43:13ID:gaPLrdeb0908nobodyさん
2008/12/23(火) 11:46:09ID:???0909nobodyさん
2008/12/23(火) 11:51:05ID:???0910nobodyさん
2008/12/23(火) 12:05:33ID:???0911nobodyさん
2008/12/23(火) 12:12:06ID:???普通個人サイトつったら簡単な処理にphp入れてるぐらいだからな
例えば背景をランダムで出したり今日の日付出したり
ブラウザで条件分岐したりとjavascriptでできるようなことをやってるのが多い
掲示板などのWebアプリケーションにしても
わざわざ自分で作って運用してるほうが稀
0912nobodyさん
2008/12/23(火) 12:27:10ID:???既存システムの保守/拡張のために使わざるを得ない時にしぶしぶ使うのが4。
まあ、いまだにPHP4のシステムを何の移行計画もなく運用してる所なんてクズ企業だけだろうが。
(移行しない=機能拡張しないor使い捨てる、というのまで計画に含めての話)
>907
Cakeに限らず、フレームワークを個人で利用する意義はかなり薄い。
覚えるまでのコストが高いからな。設置も難しいし。
どっちかっつーと大量のプログラムを作るプロ向け。技術的な難度というよりも、性質上そういうもんなんだよ。
0914nobodyさん
2008/12/23(火) 13:39:36ID:KPRHaWl+「予約語は、関数の名前として使用できません」
と書いてあるのもあるし、
「使用できますが、混乱を招くのでおすすめできません」
と書いてあるのもあるし。
マニュアルによって、言ってることが違うんだよな。
0915nobodyさん
2008/12/23(火) 13:48:02ID:???0916nobodyさん
2008/12/23(火) 13:53:03ID:KPRHaWl+以下にPHPの予約語と定義済みの定数および変
数の一覧を示します。ここに は関数は含まれず、
言語の構造が含まれます。混乱を招くことが確実
である ため、これらの名前を変数、関数、定数、メ
ソッドの名前として使用するべ きではありません。
0917nobodyさん
2008/12/23(火) 13:53:41ID:???0919nobodyさん
2008/12/23(火) 15:07:29ID:KPRHaWl+newしたら、必ずメソッドを呼び出して
使うというのがノウハウというか、
通常の流れなの?
0920nobodyさん
2008/12/23(火) 15:18:51ID:???0921nobodyさん
2008/12/23(火) 15:25:29ID:KPRHaWl+ほとんど全部そういう流れなんだよね。
クラスを定義して、
そのクラスの中でメソッドを定義して、
そんでnewして、メソッドをよびだして、、、て流れ。
0922nobodyさん
2008/12/23(火) 15:29:39ID:???0923nobodyさん
2008/12/23(火) 15:34:12ID:KPRHaWl+(1)多重継承できるOOPと、
(2)多重継承できないOOPと、
2種類あるようなんだが、この理解であってる?
ちなみにリサーチには5分かけました。
0924nobodyさん
2008/12/23(火) 15:38:20ID:???2元に分けたいかどうかは自由だが、
普通、できるかできないかのどちらかだよな?
0927nobodyさん
2008/12/23(火) 15:42:27ID:KPRHaWl+どう考えても多重継承できた方が便利だと思う夕暮れなのですが、
皆様いかがお過ごしでしょうか。
0928nobodyさん
2008/12/23(火) 15:42:36ID:???だいたい、テンポ遅い。もうすこしがんばれ
0929nobodyさん
2008/12/23(火) 15:43:27ID:KPRHaWl+0930nobodyさん
2008/12/23(火) 15:44:07ID:KPRHaWl+クラスは簡単に決まります。直接上のス
ーパークラス,そのスーパークラス,その
またスーパークラス,…と一列に並ぶ単
純な関係です。」
↑これが多重継承だと思ってた
0931nobodyさん
2008/12/23(火) 15:44:35ID:???多重継承を制約しておいた方がクリーンな実装ができるという奴がいる。
おれは後者、あなたは前者。
0933nobodyさん
2008/12/23(火) 15:47:22ID:???0934nobodyさん
2008/12/23(火) 15:51:33ID:PHOPDLlW$array = array("今日は晴れです");
if(array_search("晴れ",$array)){
echo 1;
}
としたのですが、1が出力されません。
in_arrayだと完全一致になるし、forで配列を1つずつ読み込みながら
確認するのも負荷がかかりそうです。良い方法はないでしょうか?
0935nobodyさん
2008/12/23(火) 15:56:06ID:???> 確認するのも負荷がかかりそうです
負荷の話はやってみてからにしようぜ
array_map preg_match を組み合わせてもいいが一緒
0936nobodyさん
2008/12/23(火) 16:00:51ID:???0937nobodyさん
2008/12/23(火) 16:01:41ID:KPRHaWl+0938934
2008/12/23(火) 16:01:47ID:???「禁止単語の指定」なるものを作っているのですが、
入力項目1つに対して、調査する検索単語分のforが必要になると
負荷がかかると思うのです。実際にやっても少し重くなりました。
0939nobodyさん
2008/12/23(火) 16:02:04ID:???array_searchは「配列の中に"晴れ"が存在するか?」であって、「配列の中の文字列に"晴れ"が存在するか?」じゃないからな。
使うのはarray系のメソッドじゃなくて、文字列検索系のメソッドだ。
お前のやりたい処理は本質的に「配列を1つずつ読み込みながら確認する」事なのだから、コードがそうなるのはむしろ自然。
それと、負荷問題を想像で語るな。
遅くともいいから動くものを作って、それから速度を気にしても遅くない。
0940nobodyさん
2008/12/23(火) 16:03:30ID:???0942nobodyさん
2008/12/23(火) 16:06:04ID:KPRHaWl+それって掲示板とかで
「アホ」とか「死ね」とかって書けないようにするとか
そういう処理だよね。だったらやっぱり正規表現じゃないの?
perlのスレだったら2分でコード出してくるよ
0943nobodyさん
2008/12/23(火) 16:06:39ID:???それは設計の問題だろ
> 入力項目1つに対して、調査する検索単語分のforが必要になると
> 負荷がかかると思うのです。
検索単語分のforが必要になるとか、どうかしてる
0944nobodyさん
2008/12/23(火) 16:07:31ID:???検索対象が複数あるような状況でpregを使ったら死ぬほど遅くなるから、文字コードを揃えてからstrposないしstr_replace使え。
それ以上の高速化は転置インデックスでも生成するしかないが、よほど大量に処理するのでなければ生成のコストのほうが高い。
何より、コードが読みづらくなる。
0945nobodyさん
2008/12/23(火) 16:08:29ID:???>>941
おまえ、自分で書いてておかしいと思わないか?
>>934のソース、動かないんだろ。
どうして負荷の計測ができるんだよ
0946nobodyさん
2008/12/23(火) 16:09:13ID:???0947nobodyさん
2008/12/23(火) 16:11:28ID:???プランA、プランBがあって、相対的にどちらが重いから良い方を選択する。
動かないソース提示しといて、負荷計測しましたってなんだよそれ
0948nobodyさん
2008/12/23(火) 16:13:51ID:???0949nobodyさん
2008/12/23(火) 16:16:15ID:???0950nobodyさん
2008/12/23(火) 16:17:42ID:???の自作自演、お粗末
>>934
>>938
>>942
君レベルで自作自演するときは、ブラウザー分けた方がいいよ。
0951nobodyさん
2008/12/23(火) 16:25:18ID:???0952nobodyさん
2008/12/23(火) 16:27:12ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。