【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を表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0002nobodyさん
2009/03/09(月) 05:29:29ID:???【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1233590976/
↑
こちらはIDださないで質問するスレ
0003nobodyさん
2009/03/09(月) 10:41:46ID:???テンプレがたりねえだろksg
0004nobodyさん
2009/03/09(月) 12:32:31ID:???俺は携帯だからめんどい
0005nobodyさん
2009/03/09(月) 16:52:14ID:An8QqtfK動的ページを静的ページに変え、
GETで指定したURLのデータを取得したく、
下記のように設定しました。
------------------
■ sample.php
<?php
$url = $_GET['url'];
$file = file_get_contents($url);
?>
■ .htaccess
RewriteEngine on
RewriteRule url/(.*)$ sample.php?url=$1
------------------
http://sample.com/url/http://www.yahoo.co.jpにアクセスすると、
I/O warning : failed to load external entityエラーが表示されてうまくいきません。
問題の原因わかりますか?
以下、補足。
http://sample.com/sample.php?url=http://www.yahoo.co.jp
では、正常に動作します。
また試しに、
<?php
$url = "http://www.yahoo.co.jp";
$file = file_get_contents($url);
?>
と書いて、
http://sample.com/url/http://www.***.co.jp
にアクセスすると、正常に動作します。
0006nobodyさん
2009/03/09(月) 16:54:22ID:???0007nobodyさん
2009/03/09(月) 18:48:52ID:An8QqtfK0008nobodyさん
2009/03/09(月) 18:52:59ID:???ここで聞かなくてもググれば解説サイトも多いので
http://example.com/?a=100&b=test
↓
http://example.com/100/test/
0009nobodyさん
2009/03/09(月) 20:24:08ID:An8QqtfKスラッシュがダメなんだよね。
オレ、正規表現すごく苦手なんだ。
エロい人、答え教えてー(>_<)
0010nobodyさん
2009/03/09(月) 20:49:14ID:???RewriteEngine On
RewriteRule ^url/(.*)$ sample.php?url=$1 [L]
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のような観察日記な回答は要りません
■ このスレッドは過去ログ倉庫に格納されています