【PHP】下らねぇ質問はID出して書き込みやがれ 82
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 02:14:28ID:HyrthkeE過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0011nobodyさん
2009/03/09(月) 21:17:55ID:l0zAqNTVおとなしくその処理だけjavascript使っといたほうがいいですか?
0013nobodyさん
2009/03/09(月) 21:41:22ID:???0015nobodyさん
2009/03/09(月) 21:51:15ID:???0016nobodyさん
2009/03/09(月) 22:04:02ID:ObAH+zkjもう親クラスを書き換えてしまったほうが気持ち悪くないように思えるのですが、
親を書き換えて機能を追加すると面倒くさい作業になるという場合以外に、
プログラムを書く初期段階で敢えて継承を使うときって例えばどんなときありますか
0017nobodyさん
2009/03/09(月) 22:14:56ID:4+GIMEEFPHPでHTMLページの解析をやりたいのですが、いろいろな方法があるようです。
今はどの方法がいちばんお薦めなのでしょうか?
個人的には、SimpleXMLのような使い方ができるとありがたいです。
0018nobodyさん
2009/03/09(月) 22:29:28ID:???DomDocument::loadHTML -> simplexml_import_dom
でSimpleXMLでHTMLも扱えるようになる
でも俺は Simple HTML DOM Parser の方が好きだな
0020nobodyさん
2009/03/09(月) 22:48:20ID:???0022nobodyさん
2009/03/09(月) 22:54:47ID:???002417
2009/03/09(月) 22:57:35ID:4+GIMEEFSimpleXML ではなく、PEAR XML_Serializer で使うとすると、どうするのが
おすすめでしょうか?
特に、タグが整合していないようなHTMLにうまく対応するには、どういう方法
があるでしょうか?
0025nobodyさん
2009/03/09(月) 23:07:37ID:???002617
2009/03/09(月) 23:14:07ID:???ありがとうございます。XML_Serializerは、すでに自分以外の人間によって
導入済みなので、気をつけて使うことにします。
ところで、こんなのを見つけました。
HTMLを整形式のXML文書に修正するPHPクラス : Under Construction, Baby
http://www.rcdtokyo.com/ucb/contents/i000799.php
0027nobodyさん
2009/03/09(月) 23:49:28ID:wECRTT84プログラミングができることとPHPができることはイコールでしょうか?
基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか?
0029nobodyさん
2009/03/09(月) 23:51:45ID:???00305
2009/03/10(火) 00:17:26ID:IndrzJiefile_get_contents($url); でエラーがでる原因は、
クエリーにスラッシュが2回連続したのが含まれる場合、
$_GET['url']の値が http:/www.yahoo.co.jpになって、
スラッシュが勝手に省略されるのが原因でした。
0031nobodyさん
2009/03/10(火) 07:31:38ID:???イコールじゃないってのはwikipediaで知らない言語を調べたときに
書いてある内容がチンプンカンプンだったりしたことがあったりしてわかるだろ
図書館なり本屋なりで計算機科学の大学の教科書みたいな本を手に入れてきて、
そんな質問したことで欝になるがいいさ
0032nobodyさん
2009/03/10(火) 08:33:34ID:???>プログラミングができることとPHPができることはイコールでしょうか?
PHPもプログラム言語の1つなので間違ってはいないけど
PHPができるようになってプログラミングできるとかは公言しないほうがいい
世の中にはすごい人はいっぱいいるので
その人たちとの会話するには1歩ひかないと痛い目見る
PHPだけをやってるうちは難しい話ふられてもわからないからね
>基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか?
簡単かどうかは経験次第
基本的にベースができてれば仕様書読めば組むことができるが読み方がわからないと話にならない
PHPマニュアルと他言語のAPI仕様書なんかは結構違ってくるので
その差をどう吸収できるかが最大の問題
言語をたくさん覚えたいというならPHPを最初にやるのはおすすめしない
いろんな言語のベースになってるCやJavaをやったほうが短期間で効率よく移行できると思う
0033nobodyさん
2009/03/10(火) 09:00:49ID:???大抵微妙で終わる気がするが
0034nobodyさん
2009/03/10(火) 09:18:01ID:???学校がいかに効率的なシステムなのかは後悔したときになって初めて分かるw
0035nobodyさん
2009/03/10(火) 09:22:13ID:???いろんな技術ができてはじめてWebプログラミングができるといえるようになると思う
たとえばECサイトの構築なんかに必要なものは
HTML+CSS+JavaScript+PHP+XML Schema+XML(RSS等も)+DB(SQL)
RIAの選択肢によってはアプレットやFlash(Flex)やSilverlightなんかも
そのほかにもプロトコル(http,https)なんかの知識も必要だったり地獄
PHPができるってことは単にPHPができるってことなんだと思うわ
0036nobodyさん
2009/03/10(火) 09:34:24ID:???0039nobodyさん
2009/03/10(火) 09:58:42ID:???0040nobodyさん
2009/03/10(火) 10:20:12ID:oLUhH3AJオブジェクト指向で書き直そうと思うのですが
怖くて一歩前へ踏み出すことができません・・
書いたプログラムの規模や内容によるとは思いますが、
何かコツとか、やるならこれもやっておけみたいな点がありましたら教えてください
0041nobodyさん
2009/03/10(火) 10:34:24ID:???0042nobodyさん
2009/03/10(火) 10:35:09ID:???0044nobodyさん
2009/03/10(火) 10:55:45ID:???散々知識知恵を絞って、うまい回答ができないのを自ら晒しているだけ。
0045nobodyさん
2009/03/10(火) 10:59:09ID:???0046nobodyさん
2009/03/10(火) 11:08:50ID:uqvOEBO8どなたか教えてくだいさ
0047nobodyさん
2009/03/10(火) 11:10:19ID:???0048nobodyさん
2009/03/10(火) 11:14:40ID:???class hello
{
function ko(){echo 'こ';return $this;}
function n(){echo 'ん';return $this;}
function ni(){echo 'に';return $this;}
function ti(){echo 'ち';return $this;}
function ha(){echo 'は';return $this;}
}
$obj= new hello();
$obj->ko()->n()->ni()->ti()->ha();
?>
0051nobodyさん
2009/03/10(火) 11:33:11ID:???0052nobodyさん
2009/03/10(火) 11:50:13ID:???0053nobodyさん
2009/03/10(火) 11:54:07ID:???class greeting{
function hello(){ return "こんにちは"; }
function goodevening(){ return "こんばんは"; }
}
class bibiru extends greeting{
function goodevening(){ return "こんばんみ"; }
}
class arare extends greeting{
function hello(){ return "んちゃ"; }
}
$bibiru = new bibiru();
echo $bibiru->hello()." ".$bibiru->goodevening()."<br>";
$arare = new arare();
echo $arare->hello()." ".$arare->goodevening()."<br>";
?>
0054nobodyさん
2009/03/10(火) 12:02:02ID:???class Hello {
static function main() {
echo "Hello world!";
}
}
Hello::main();
PHPはメインメソッドが存在しないからいちいち呼び出さないとだめ
純粋なオブジェクト指向言語じゃないので全てをオブジェクトで包む必要がない
よってPHPでHello worldを出力するだけなら
クラスを使うのは用途としておかしい
0055nobodyさん
2009/03/10(火) 12:06:59ID:???こんにちは こんばんみ
んちゃこんばんは
って表示されるのでおkですか?
0057nobodyさん
2009/03/10(火) 12:14:29ID:???インタフェースはどうした.デザパタはどうした.
0058nobodyさん
2009/03/10(火) 12:18:06ID:???http://pc11.2ch.net/test/read.cgi/php/1172205352/
0059nobodyさん
2009/03/10(火) 12:21:04ID:TmDav5cL$title = "タイトル";
$h1 = "見出し1";
$p = "文章です";
【template.html】
<html>
<head>
<title>{title}</title>
</head>
<body>
{h1}
{p}
</body>
テンプレート(template.html)を元に{title},{h1},{p}にdata.phpにためてあるデータを値を入れたいのですが
データの数は日々追加したり削除することも考えうるのですが
どのようにしたらいいでしょうか?
【求める結果】
<html>
<head>
<title>タイトル</title>
</head>
<body>
見出し1
文章です
</body>
0060nobodyさん
2009/03/10(火) 12:31:53ID:???0061nobodyさん
2009/03/10(火) 12:35:28ID:???0063nobodyさん
2009/03/10(火) 12:40:40ID:TmDav5cL勉強のために書きたいんです
0064nobodyさん
2009/03/10(火) 12:57:58ID:???function convert() {
include func_get_arg(1);
return preg_replace(
'/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/e',
'isset($$1) ? htmlspecialchars($$1, ENT_QUOTES) : \'undefined\';',
file_get_contents(func_get_arg(0)));
}
echo convert('template.html', 'data.php');
0065nobodyさん
2009/03/10(火) 12:59:19ID:???0066nobodyさん
2009/03/10(火) 13:02:43ID:???>>48 は単なるメソッドチェーンじゃない。
「流れるようなインターフェース」ってやつだよ。
キーワード引数のかわりに fluent interface (流れるようなインターフェース) を使う - kwatchの日記
http://d.hatena.ne.jp/kwatch/20080704/1215192591
0067nobodyさん
2009/03/10(火) 13:08:37ID:???0068nobodyさん
2009/03/10(火) 13:10:23ID:???0069nobodyさん
2009/03/10(火) 13:24:59ID:???$rows = Query.find_all('stocks', array('where'=>'price >= 1000',
'order_by'=>'name',
'limit'=>10));
これ本当に例?
0070nobodyさん
2009/03/10(火) 13:53:03ID:9aCbhHpkその基底クラスより前に拡張クラスを書くと
「クラスがない」というエラーが出るようになりました。
基底クラスの後ろに拡張クラスを移動するとエラーは消えましたが。
なぜ、ArrayAccessをimplementすると
こんなRubyやPhthonのような動作をするようになるのでしょうか?
0071nobodyさん
2009/03/10(火) 14:09:35ID:v2XXMSa6日本語で書いてくれ
基底クラスより先に拡張クラスを書けば、基底がないって言われるのはあたりまえ。
ArrayAccessをimplementしたなら、interfaceを実装すればいいだけ。
ArrayAccessがどうとかは関係ない。
0073nobodyさん
2009/03/10(火) 16:02:30ID:???1: class C extends B {} // 1: をコメントアウトすると動く
2: class B extends A {}
3: class A {}
コンパイル時、 C は未定義のクラス B を参照しているので解決を保留する
B もまた同様に保留され、A のみ定義した時点で終端に達しそのまま打ち切る
そして実行時に入って再度 C>B を解決しようとするが B が未定義のままなので Class 'B' not found になる
1: をコメントアウトした場合は、B は A しか参照していないので実行時に解決できエラーも出ない
ただ組み込みクラス、インターフェイスによって実行前解決が出来る出来ないの違いが出る理由は分からない
ソースを追いかけられる人に任せる
var_dump(class_exists('Klass', false)); // false
var_dump(interface_exists('IA', false)); // true
var_dump(interface_exists('IB', false)); // false
interface IA {} // 実行前に解決
eval('interface IB {}'); // 実行時に解決
class Klass implements IA, IB {} // 未解決の IB があるので実行時まで解決を遅らせる
var_dump(class_exists('Klass', false)); // true
var_dump(interface_exists('IA', false)); // true
var_dump(interface_exists('IB', false)); // true
0075nobodyさん
2009/03/10(火) 16:26:30ID:???それが不思議に思うのは、実装系以外におまいさんルールのほうが理想的とおもってるからじゃね?
普通に、実行時のロードされてるかどうかの違いでしかない > 組み込みも含めて。
007673
2009/03/10(火) 17:02:25ID:AQjjLY2m遅延評価の一例上げただけだ、説明が下手なら悪い
俺がソースを読まないと説明できないと言ってるのは次の挙動
// SPL組み込みクラス true true
var_dump(class_exists('ArrayObject', false), class_exists('XArrayObject', false));
class XArrayObject extends ArrayObject {}
// SPL組み込みインターフェイス true false
var_dump(interface_exists('ArrayAccess', false), interface_exists('XArrayAccess', false));
interface XArrayAccess extends ArrayAccess {}
あと>>70と俺は別人だからな、IDは出しとく
0078nobodyさん
2009/03/10(火) 17:13:24ID:???一応説明しとくか。
上のケース、
XArrayObjectはvar_dump評価時にすでにロードされてる。
下のケース
XArrayAccessはvar_dump評価時にロードされていない。
よって、そのような動作になっている。
007973
2009/03/10(火) 17:35:45ID:AQjjLY2m【OS名】 Windows XP SP3, FreeBSD 6.4
【PHPのバージョン】 5.2.9, 5.3-dev, 6.0-dev
【質問内容】
組み込みのクラスとインターフェースで、
定義済みになるタイミングに違いが出る理由もしくは原因を教えて下さい
ソースコードは>>76です
>>77,78のような観察日記な回答は要りません
008173
2009/03/10(火) 17:49:35ID:AQjjLY2m仕様ですね、ありがとうございます
0082nobodyさん
2009/03/10(火) 19:29:40ID:U6ySWdbJphpの掲示板を運営しているのですが、海外からの宣伝書き込みを阻止したいのですが、半角英数記号のみ書込禁止は↓の構文で大丈夫だったんですが、半角スペースが含まれると対応できません。。。
何か良い方法はありませんか?
if (preg_match(\"/^[!-~]+$/\", 変数名))
0084nobodyさん
2009/03/10(火) 20:30:26ID:???そっちの方が効率的だと思うよ
0086nobodyさん
2009/03/10(火) 20:38:17ID:???時代に取り残されるぜ
0087nobodyさん
2009/03/11(水) 15:51:06ID:???0088nobodyさん
2009/03/11(水) 16:49:42ID:???PHP側としてはどうしたらいいでしょうか?
同期ってレンタルサーバーの複数台プラントかは
勝手にやってくれるんですか?
0089nobodyさん
2009/03/11(水) 16:50:50ID:???0090nobodyさん
2009/03/11(水) 16:53:54ID:???0091nobodyさん
2009/03/11(水) 17:14:13ID:Txff9mTlphp学習2日目の名無しです
このスクリプトの意味を教えていただけませんか
0092nobodyさん
2009/03/11(水) 17:16:18ID:L2Yi36riif($a === 0){
echo "ok";
}else{
echo "";
}
で問題なく、okが出るのですが、
pdoで、$aをbindParamしたものを間に挟むと、elseしてしまいました
$a = 0;
・・・
$result->bindParam(":A",$a,PDO::PARAM_INT);
・・・
if($a === 0){
echo "ok";
}else{
echo "";
}
しかし、
$a == 0 とすればokでした。
原因は何なのでしょうかよろしくおねがいします
php5.2.6 OS windows
0095nobodyさん
2009/03/11(水) 17:27:49ID:Txff9mTl理解できました
ありがとう
0096nobodyさん
2009/03/11(水) 17:54:26ID:aBj2wILp以前に、他人の家から漏れている無線LANの電波を悪用して、殺人予告したヤツが捕まりましたが、ノートPCリカバリ→他人の電波で殺人予告→再リカバリとやればバレないような気がします。
厨房質問でお恥ずかしいですが、よろしくお願いします
0097nobodyさん
2009/03/11(水) 18:04:38ID:???0098nobodyさん
2009/03/11(水) 19:13:57ID:TxDdMOL9プラグインとしてまとめて、下のようにして読み込んでいます。
$plugin_name = "new_list.php";
define("PLUGIN_DIR",プラグインまでのパス);
if(file_exists(PLUGIN_DIR."/".$plugin_name)){
include PLUGIN_DIR."/".$plugin_name;
newList(); //プラグイン内の関数を実行
}
こうするとプラグインの数だけ毎回includeする事になるのですが
負荷がかからないか、後々めんどうなことにならないかと懸念しています。
自分では予測できないのですが、「こういうやり方だとこうなる」
というような指摘があれば、教えて下さい。
0100nobodyさん
2009/03/11(水) 20:05:36ID:???そういう時のためにinclude_onceとかrequire_onceという組み込み関数が用意されてるけど、負荷が高くなるのでお勧めしない
なのでプラグインがクラスで実装されているなら、ファイル名とクラス名を統一しておいて
$files = glob(PLUGIN_DIR .'/*.php');
foreach ($files as $file) {
if (!class_exists(pathinfo($file, PATHINFO_FILENAME))) require $file;
}
などとすればいいんじゃない?
0101nobodyさん
2009/03/11(水) 20:09:31ID:BrBOeywI【OS名】Windows XP
【PHPのバージョン】php4.4.9
【連携ソフトウェア】Apache2.0.63, MySQL Server 6.3
【質問内容】
pearを導入したく、go-pear.batを実行して試みたのですが、
Extracting installer..................
Using local package: PEAR.............ok
Using local package: Structures_Graph....ok
Preparing installer..................
Warning: fopen(XML/RPC.php): failed to open stream: No such file or directory in
C:\php\temp\PEAR\Remote.php on line 187
For this remote PEAR operation you need to load the xmlrpc extension or install
XML_RPC
続行するには何かキーを押してください . . .
というエラーが出てしまい、途中で止まってしまっているようです。
インストールされていないためにPEARコマンドも実行できません。
php.iniのinclude_pathにpearディレクトリへのパスや、extensions_dirなども
見直しましたが、他に何が悪いのかわからず困っております。
0102nobodyさん
2009/03/11(水) 20:16:34ID:???困っておりますじゃぁ、「そうですか」としか言えない気もするが、
めっちゃ親切な人がいれば答えてくれるのかもしれんけど。
それはそうと、PHP5にして試してみたら?
go-pearが古いのかもしれないよ。
0103101
2009/03/11(水) 20:34:19ID:BrBOeywI上記失敗の原因はphp.iniのphp_xmlrpc.dllがコメントアウトでした。
これを外し、必要となるiconv.dllをsystem32にコピーしてから試したところ、
PEAR_Remote (pear.php.net:80) : unexpected HTTP response
という別のエラーが出るようになりました。
こちらの対処法を調べてみることにします。
>>102
その通りですね、失礼しました。
以後、質問の意図を明確にするよう注意しようと思います。
0104認定回答者
2009/03/11(水) 20:39:09ID:nPJIwFx50105nobodyさん
2009/03/11(水) 21:01:13ID:???他の回答者を格付けできるほどの立派な頭脳をお持ちなら、何故そこで最適解をお示しにならないのでしょうか?
不思議で仕方がありません><
0106nobodyさん
2009/03/11(水) 21:18:55ID:???クライアントの方はJavaScript/VBScriptで、バイナリファイルをサーバー(PHP)へ
アップロードしたいのですが、どのようにすればいいでしょうか?
JavaScript は
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); //XMLHttpRequest();
xmlhttp.open('POST', 'http://hoge/recieve', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('formdata=123');
とすると、PHPの方で'123'は取れるのは確認しました.問題はバイナリで、
"ADODB.Stream"でバイナリファイルを str=Read(); strをBase64変換しようとするのですが
使っている変換用モジュールが駄目なのかもしれませんが、ここでこけてしまいます。
まずはBase64変換でポピュラーなやり方を説明しているサイトなどありませんでしょうか
お願いいたします。
0108nobodyさん
2009/03/11(水) 22:14:08ID:???<input type="file">はひとつひとつファイル選択しないといけないので、、、
0110nobodyさん
2009/03/11(水) 22:20:34ID:???/.: : : : : : : .ヽ
R: : : :. : pq: :i}
|:.i} : : : :_{: :.レ′
ノr┴-<」: :j|
/:r仁ニ= ノ:.ノ|! _
/:/ = /: :/ }! |〕) コツン
{;ハ__,イ: :f | /´
/ }rヘ ├--r─y/
/ r'‐-| ├-┴〆 _, 、_ '⌒ ☆
仁二ニ_‐-イ | | ∩`Д´)
| l i 厂  ̄ニニ¬ ノ ⊂ノ >>108
,ゝ、 \ \ __厂`ヽ (__ ̄) )
/ /\_i⌒ト、_ ノrr- } し'し′
└-' ̄. | |_二二._」」__ノ
■ このスレッドは過去ログ倉庫に格納されています