【PHP】下らねぇ質問はID出して書き込みやがれ 82 at PHP
[2ch|▼Menu]
1:nobodyさん
09/03/09 02:14:28 HyrthkeE
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
スレリンク(php板)

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

2:nobodyさん
09/03/09 05:29:29
姉妹スレ

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
スレリンク(php板)

こちらはIDださないで質問するスレ



3:nobodyさん
09/03/09 10:41:46
中途半端にスレたててんじゃねえ!
テンプレがたりねえだろksg

4:nobodyさん
09/03/09 12:32:31
文句言う暇があるなら自分でやれよ
俺は携帯だからめんどい

5:nobodyさん
09/03/09 16:52:14 An8QqtfK
質問です。
動的ページを静的ページに変え、
GETで指定したURLのデータを取得したく、
下記のように設定しました。
------------------
■ sample.php
<?php
$url = $_GET['url'];
$file = file_get_contents($url);
?>
■ .htaccess
RewriteEngine on
RewriteRule url/(.*)$ sample.php?url=$1
------------------

URLリンク(sample.com)にアクセスすると、
I/O warning : failed to load external entityエラーが表示されてうまくいきません。
問題の原因わかりますか?

以下、補足。
URLリンク(sample.com)
では、正常に動作します。
また試しに、
<?php
$url = "URLリンク(www.yahoo.co.jp)<)
にアクセスすると、正常に動作します。

6:nobodyさん
09/03/09 16:54:22
rewriteの記述がおかしい件

7:nobodyさん
09/03/09 18:48:52 An8QqtfK
ありがとうございます。どう書けばいいんですか?

8:nobodyさん
09/03/09 18:52:59
先ず君は以下の知識がないから勉強しなさい
ここで聞かなくてもググれば解説サイトも多いので

URLリンク(example.com)

URLリンク(example.com)


9:nobodyさん
09/03/09 20:24:08 An8QqtfK
>>8 (´・ω・`)
スラッシュがダメなんだよね。
オレ、正規表現すごく苦手なんだ。
エロい人、答え教えてー(>_<)

10:nobodyさん
09/03/09 20:49:14
>>9
RewriteEngine On
RewriteRule ^url/(.*)$ sample.php?url=$1 [L]

11:nobodyさん
09/03/09 21:17:55 l0zAqNTV
PHPで新しいページを開くことはできないんですか?
おとなしくその処理だけjavascript使っといたほうがいいですか?

12:nobodyさん
09/03/09 21:20:18
>>11
そういうのはクライアントサイドスクリプトの仕事

13:nobodyさん
09/03/09 21:41:22
<a target="_blank"

14:nobodyさん
09/03/09 21:47:24
>>13
補足しとくが、それはクライアントのほうな

15:nobodyさん
09/03/09 21:51:15
だから?

16:nobodyさん
09/03/09 22:04:02 ObAH+zkj
クラスの継承って、機能を追加したいとき親クラスとほとんど変わりなければ、
もう親クラスを書き換えてしまったほうが気持ち悪くないように思えるのですが、
親を書き換えて機能を追加すると面倒くさい作業になるという場合以外に、
プログラムを書く初期段階で敢えて継承を使うときって例えばどんなときありますか

17:nobodyさん
09/03/09 22:14:56 4+GIMEEF
質問です。

PHPでHTMLページの解析をやりたいのですが、いろいろな方法があるようです。
今はどの方法がいちばんお薦めなのでしょうか?

個人的には、SimpleXMLのような使い方ができるとありがたいです。

18:nobodyさん
09/03/09 22:29:28
>>17
DomDocument::loadHTML -> simplexml_import_dom
でSimpleXMLでHTMLも扱えるようになる

でも俺は Simple HTML DOM Parser の方が好きだな

19:nobodyさん
09/03/09 22:29:49
>>16
オブジェクト指向設計を実装するとき
>>17
DOMとか

20:nobodyさん
09/03/09 22:48:20
file_get_contents or file + 正規表現

21:nobodyさん
09/03/09 22:53:19
>>20
正規表現では限界がある

22:nobodyさん
09/03/09 22:54:47
1文字ずつ見ていくやりかたもあるな

23:nobodyさん
09/03/09 22:55:16
>>20
一番下策だろw

24:17
09/03/09 22:57:35 4+GIMEEF
皆さん、ありがとうございます。

SimpleXML ではなく、PEAR XML_Serializer で使うとすると、どうするのが
おすすめでしょうか?

特に、タグが整合していないようなHTMLにうまく対応するには、どういう方法
があるでしょうか?


25:nobodyさん
09/03/09 23:07:37
pearのそのライブラリは重大なバグが潜んでるってバグ情報に載ってたぜ

26:17
09/03/09 23:14:07
>>25
ありがとうございます。XML_Serializerは、すでに自分以外の人間によって
導入済みなので、気をつけて使うことにします。

ところで、こんなのを見つけました。

HTMLを整形式のXML文書に修正するPHPクラス : Under Construction, Baby
URLリンク(www.rcdtokyo.com)


27:nobodyさん
09/03/09 23:49:28 wECRTT84
ちょっと角度の違う質問ですみませんがよろしくお願いいたします
プログラミングができることとPHPができることはイコールでしょうか?
基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか?

28:nobodyさん
09/03/09 23:51:12
>>27
そういう質問が出るということは
あなたはプログラミングはまったくやったことがない?

29:nobodyさん
09/03/09 23:51:45
努力次第

30:5
09/03/10 00:17:26 IndrzJie
>>6 >>8 >>10 あらためて、ありがとうございます。

file_get_contents($url); でエラーがでる原因は、
クエリーにスラッシュが2回連続したのが含まれる場合、
$_GET['url']の値が http:/www.yahoo.co.jpになって、
スラッシュが勝手に省略されるのが原因でした。


31:nobodyさん
09/03/10 07:31:38
>>27
イコールじゃないってのはwikipediaで知らない言語を調べたときに
書いてある内容がチンプンカンプンだったりしたことがあったりしてわかるだろ

図書館なり本屋なりで計算機科学の大学の教科書みたいな本を手に入れてきて、
そんな質問したことで欝になるがいいさ


32:nobodyさん
09/03/10 08:33:34
>>27
>プログラミングができることとPHPができることはイコールでしょうか?
PHPもプログラム言語の1つなので間違ってはいないけど
PHPができるようになってプログラミングできるとかは公言しないほうがいい
世の中にはすごい人はいっぱいいるので
その人たちとの会話するには1歩ひかないと痛い目見る
PHPだけをやってるうちは難しい話ふられてもわからないからね

>基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか?
簡単かどうかは経験次第
基本的にベースができてれば仕様書読めば組むことができるが読み方がわからないと話にならない
PHPマニュアルと他言語のAPI仕様書なんかは結構違ってくるので
その差をどう吸収できるかが最大の問題
言語をたくさん覚えたいというならPHPを最初にやるのはおすすめしない
いろんな言語のベースになってるCやJavaをやったほうが短期間で効率よく移行できると思う

33:nobodyさん
09/03/10 09:00:49
効率よく移行したいからCやJavaから始めるとか打算的なことやっても
大抵微妙で終わる気がするが

34:nobodyさん
09/03/10 09:18:01
独学とか言うのは信用ならない
学校がいかに効率的なシステムなのかは後悔したときになって初めて分かるw

35:nobodyさん
09/03/10 09:22:13
WebプログラミングができるということはPHPだけではやっぱだめなんだよな
いろんな技術ができてはじめてWebプログラミングができるといえるようになると思う
たとえばECサイトの構築なんかに必要なものは
HTML+CSS+JavaScript+PHP+XML Schema+XML(RSS等も)+DB(SQL)
RIAの選択肢によってはアプレットやFlash(Flex)やSilverlightなんかも
そのほかにもプロトコル(http,https)なんかの知識も必要だったり地獄
PHPができるってことは単にPHPができるってことなんだと思うわ

36:nobodyさん
09/03/10 09:34:24
なに語っちゃってんだよ

37:nobodyさん
09/03/10 09:41:12
>>24
Tidyは?

38:nobodyさん
09/03/10 09:48:07
>>35
PHPだけで言えると思ってたなんて甘すぎ

39:nobodyさん
09/03/10 09:58:42
何をいってんだおまえは

40:nobodyさん
09/03/10 10:20:12 oLUhH3AJ
今まで完全に手続き型でやっていたプログラムを、
オブジェクト指向で書き直そうと思うのですが
怖くて一歩前へ踏み出すことができません・・
書いたプログラムの規模や内容によるとは思いますが、
何かコツとか、やるならこれもやっておけみたいな点がありましたら教えてください

41:nobodyさん
09/03/10 10:34:24
なんのためにやるの?

42:nobodyさん
09/03/10 10:35:09
Javaの入門サイト池

43:nobodyさん
09/03/10 10:52:25
>>40
テストファーストだけはやっといて損はないからやとけ

44:nobodyさん
09/03/10 10:55:45
41のように答えられないんだったら無理して答えなくていいよ。
散々知識知恵を絞って、うまい回答ができないのを自ら晒しているだけ。

45:nobodyさん
09/03/10 10:59:09
お前は何を言ってるんだ

46:nobodyさん
09/03/10 11:08:50 uqvOEBO8
こんにちはをオブジェクト指向で書きたいのですがサンプルが見つかりません
どなたか教えてくだいさ

47:nobodyさん
09/03/10 11:10:19
こんにちはをオブジェクト指向でって何だ

48:nobodyさん
09/03/10 11:14:40
<?php
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();
?>

49:nobodyさん
09/03/10 11:17:34
>>48
それどういうオブジェクト指向設計?

50:nobodyさん
09/03/10 11:32:55
>>48の理解に苦しむんだが

51:nobodyさん
09/03/10 11:33:11
return $this かっけえ

52:nobodyさん
09/03/10 11:50:13
メソッドチェーンをおぼえて使いたくて仕方なかったんだろ

53:nobodyさん
09/03/10 11:54:07
<?
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>";
?>

54:nobodyさん
09/03/10 12:02:02
>>46
class Hello {
 static function main() {
  echo "Hello world!";
 }
}
Hello::main();

PHPはメインメソッドが存在しないからいちいち呼び出さないとだめ
純粋なオブジェクト指向言語じゃないので全てをオブジェクトで包む必要がない
よってPHPでHello worldを出力するだけなら
クラスを使うのは用途としておかしい

55:nobodyさん
09/03/10 12:06:59
サーバでうpしないで読む練習のためソースを読んでみたのですが>>53さんのを読むと
こんにちは こんばんみ
んちゃこんばんは

って表示されるのでおkですか?

56:nobodyさん
09/03/10 12:10:21
>>55
OK

57:nobodyさん
09/03/10 12:14:29
単にメソッドをオーバーライドしてるだけじゃん
インタフェースはどうした.デザパタはどうした.

58:nobodyさん
09/03/10 12:18:06
手取足取りしたけりゃ専用スレでやってくれ
スレリンク(php板)

59:nobodyさん
09/03/10 12:21:04 TmDav5cL
【data.php】
$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>

60:nobodyさん
09/03/10 12:31:53
一番簡単なのは テンプレートエンジンを使うこと。

61:nobodyさん
09/03/10 12:35:28
<?php echo $title; ?>

62:nobodyさん
09/03/10 12:40:01
>>61
そんなの流行らないから

63:nobodyさん
09/03/10 12:40:40 TmDav5cL
smartyで>>59みたいに分離してこんにちはと表示させる書き方を教えてください
勉強のために書きたいんです

64:nobodyさん
09/03/10 12:57:58
>>59
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');

65:nobodyさん
09/03/10 12:59:19
コードが少ないけどさっぱりわからんねえわw

66:nobodyさん
09/03/10 13:02:43
>>52
>>48 は単なるメソッドチェーンじゃない。
「流れるようなインターフェース」ってやつだよ。

キーワード引数のかわりに fluent interface (流れるようなインターフェース) を使う - kwatchの日記
URLリンク(d.hatena.ne.jp)


67:nobodyさん
09/03/10 13:08:37
fluent interfaceになってない件

68:nobodyさん
09/03/10 13:10:23
匿名関数とかクロージャーとかでいいじゃん・・・

69:nobodyさん
09/03/10 13:24:59
## PHPによる、連想配列を使ってキーワード引数をエミュレートした例
$rows = Query.find_all('stocks', array('where'=>'price >= 1000',
'order_by'=>'name',
'limit'=>10));

これ本当に例?

70:nobodyさん
09/03/10 13:53:03 9aCbhHpk
ArrayAccessをある基底クラスにimplementしたら、
その基底クラスより前に拡張クラスを書くと
「クラスがない」というエラーが出るようになりました。
基底クラスの後ろに拡張クラスを移動するとエラーは消えましたが。
なぜ、ArrayAccessをimplementすると
こんなRubyやPhthonのような動作をするようになるのでしょうか?

71:nobodyさん
09/03/10 14:09:35 v2XXMSa6
>>70
日本語で書いてくれ

基底クラスより先に拡張クラスを書けば、基底がないって言われるのはあたりまえ。

ArrayAccessをimplementしたなら、interfaceを実装すればいいだけ。
ArrayAccessがどうとかは関係ない。

72:nobodyさん
09/03/10 15:24:38
>>69

>>1

73:nobodyさん
09/03/10 16:02:30
>>70が言いたいのはこの現象だろう
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

74:nobodyさん
09/03/10 16:16:23
>>73=>>70
本人乙


75:nobodyさん
09/03/10 16:26:30
>>73
それが不思議に思うのは、実装系以外におまいさんルールのほうが理想的とおもってるからじゃね?
普通に、実行時のロードされてるかどうかの違いでしかない > 組み込みも含めて。

76:73
09/03/10 17:02:25 AQjjLY2m
>>75
遅延評価の一例上げただけだ、説明が下手なら悪い
俺がソースを読まないと説明できないと言ってるのは次の挙動

// 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は出しとく

77:nobodyさん
09/03/10 17:10:59
>>76
それが説明できないって言ってるけど、何を説明してほしいんだ?
あるがままだろ


78:nobodyさん
09/03/10 17:13:24
>>76
一応説明しとくか。
上のケース、
XArrayObjectはvar_dump評価時にすでにロードされてる。
下のケース
XArrayAccessはvar_dump評価時にロードされていない。
よって、そのような動作になっている。

79:73
09/03/10 17:35:45 AQjjLY2m
分かりました質問としてやりなおします

【OS名】 Windows XP SP3, FreeBSD 6.4
【PHPのバージョン】 5.2.9, 5.3-dev, 6.0-dev
【質問内容】
組み込みのクラスとインターフェースで、
定義済みになるタイミングに違いが出る理由もしくは原因を教えて下さい
ソースコードは>>76です
>>77,78のような観察日記な回答は要りません

80:nobodyさん
09/03/10 17:43:40
>>79
仕様です

81:73
09/03/10 17:49:35 AQjjLY2m
>>80
仕様ですね、ありがとうございます

82:nobodyさん
09/03/10 19:29:40 U6ySWdbJ
先輩方に質問です。

phpの掲示板を運営しているのですが、海外からの宣伝書き込みを阻止したいのですが、半角英数記号のみ書込禁止は↓の構文で大丈夫だったんですが、半角スペースが含まれると対応できません。。。

何か良い方法はありませんか?


if (preg_match(\"/^[!-~]+$/\", 変数名))

83:nobodyさん
09/03/10 19:49:22
>>82
Akismet

84:nobodyさん
09/03/10 20:30:26
逆の発想でひらがなかカタカナが含まれていなければはじくとか
そっちの方が効率的だと思うよ

85:nobodyさん
09/03/10 20:37:13
>>82

\b

86:nobodyさん
09/03/10 20:38:17
半角英数の書き込みができないその手の対策はもう去年までの話だろ
時代に取り残されるぜ

87:nobodyさん
09/03/11 15:51:06
やっておくのが無駄とは思わないけどな

88:nobodyさん
09/03/11 16:49:42
すいません。ラウンドロビンや負荷分散の説明見ました。
PHP側としてはどうしたらいいでしょうか?
同期ってレンタルサーバーの複数台プラントかは
勝手にやってくれるんですか?

89:nobodyさん
09/03/11 16:50:50
当然

90:nobodyさん
09/03/11 16:53:54
ありがとう。複数台運営が将来の夢でしたので調べていました

91:nobodyさん
09/03/11 17:14:13 Txff9mTl
$a=isset($_REQUEST['b'])?$_REQUEST['b']:'';

php学習2日目の名無しです
このスクリプトの意味を教えていただけませんか

92:nobodyさん
09/03/11 17:16:18 L2Yi36ri
$a = 0;

if($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

93:nobodyさん
09/03/11 17:16:19
>>91
三項演算子

94:nobodyさん
09/03/11 17:17:34
>>87
やらなくていいって話ではなくて、それは古いって話だ
素人乙

95:nobodyさん
09/03/11 17:27:49 Txff9mTl
>>93
理解できました
ありがとう

96:nobodyさん
09/03/11 17:54:26 aBj2wILp
PHPで、端末のOS・ブラウザ・IPなどを取得できるのは知っているんですが、固体識別番号(?)を取得することは可能でしょうか?

以前に、他人の家から漏れている無線LANの電波を悪用して、殺人予告したヤツが捕まりましたが、ノートPCリカバリ→他人の電波で殺人予告→再リカバリとやればバレないような気がします。

厨房質問でお恥ずかしいですが、よろしくお願いします

97:nobodyさん
09/03/11 18:04:38
通報しました

98:nobodyさん
09/03/11 19:13:57 TxDdMOL9
「最新記事一覧」とか「サイト内検索」とかの機能を
プラグインとしてまとめて、下のようにして読み込んでいます。

$plugin_name = "new_list.php";
define("PLUGIN_DIR",プラグインまでのパス);
if(file_exists(PLUGIN_DIR."/".$plugin_name)){
include PLUGIN_DIR."/".$plugin_name;
newList(); //プラグイン内の関数を実行
}

こうするとプラグインの数だけ毎回includeする事になるのですが
負荷がかからないか、後々めんどうなことにならないかと懸念しています。
自分では予測できないのですが、「こういうやり方だとこうなる」
というような指摘があれば、教えて下さい。

99:nobodyさん
09/03/11 19:55:56
>>96
リカバリしてもmacアドレス変わらないから無理じゃね?

100:nobodyさん
09/03/11 20:05:36
>>98
そういう時のためにinclude_onceとかrequire_onceという組み込み関数が用意されてるけど、負荷が高くなるのでお勧めしない
なのでプラグインがクラスで実装されているなら、ファイル名とクラス名を統一しておいて

$files = glob(PLUGIN_DIR .'/*.php');
foreach ($files as $file) {
if (!class_exists(pathinfo($file, PATHINFO_FILENAME))) require $file;
}

などとすればいいんじゃない?

101:nobodyさん
09/03/11 20:09:31 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なども
見直しましたが、他に何が悪いのかわからず困っております。

102:nobodyさん
09/03/11 20:16:34
困っておりますじゃなくて、何が知りたいのか書けば?
困っておりますじゃぁ、「そうですか」としか言えない気もするが、

めっちゃ親切な人がいれば答えてくれるのかもしれんけど。

それはそうと、PHP5にして試してみたら?
go-pearが古いのかもしれないよ。

103:101
09/03/11 20:34:19 BrBOeywI
すみません、自己解決までには至っていませんが、少し先に進むことができました。
上記失敗の原因はphp.iniのphp_xmlrpc.dllがコメントアウトでした。
これを外し、必要となるiconv.dllをsystem32にコピーしてから試したところ、

PEAR_Remote (pear.php.net:80) : unexpected HTTP response

という別のエラーが出るようになりました。
こちらの対処法を調べてみることにします。

>>102
その通りですね、失礼しました。
以後、質問の意図を明確にするよう注意しようと思います。

104:認定回答者
09/03/11 20:39:09 nPJIwFx5
>>102は素人だからスルーでおk

105:nobodyさん
09/03/11 21:01:13
>>104
他の回答者を格付けできるほどの立派な頭脳をお持ちなら、何故そこで最適解をお示しにならないのでしょうか?

不思議で仕方がありません><

106:nobodyさん
09/03/11 21:18:55
ファイルアップロードの質問です。
クライアントの方はJavaScript/VBScriptで、バイナリファイルをサーバー(PHP)へ
アップロードしたいのですが、どのようにすればいいでしょうか?

JavaScript は

var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); //XMLHttpRequest();
xmlhttp.open('POST', 'URLリンク(hoge)', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('formdata=123');

とすると、PHPの方で'123'は取れるのは確認しました.問題はバイナリで、
"ADODB.Stream"でバイナリファイルを str=Read(); strをBase64変換しようとするのですが
使っている変換用モジュールが駄目なのかもしれませんが、ここでこけてしまいます。
まずはBase64変換でポピュラーなやり方を説明しているサイトなどありませんでしょうか
お願いいたします。

107:nobodyさん
09/03/11 21:46:49
>>106
<input type="file">

108:nobodyさん
09/03/11 22:14:08
任意のフォルダ名を入力させて、その中のファイルをULさせようとしております。
<input type="file">はひとつひとつファイル選択しないといけないので、、、

109:nobodyさん
09/03/11 22:14:35
>>105
必死だな

110:nobodyさん
09/03/11 22:20:34
           ,..-─‐-..、
            /.: : : : : : : .ヽ
          R: : : :. : pq: :i}
           |:.i} : : : :_{: :.レ′
          ノr┴-<」: :j|
        /:r仁ニ= ノ:.ノ|!           _
          /:/ = /: :/ }!        |〕)  コツン
       {;ハ__,イ: :f  |       /´
       /     }rヘ ├--r─y/
     /     r'‐-| ├-┴〆    _, 、_  '⌒ ☆
      仁二ニ_‐-イ  | |      ∩`Д´)
      | l i  厂  ̄ニニ¬      ノ  ⊂ノ >>108
     ,ゝ、 \ \   __厂`ヽ    (__ ̄) )
     / /\_i⌒ト、_   ノrr- }     し'し′
   └-' ̄. |  |_二二._」」__ノ

111:nobodyさん
09/03/11 22:23:31
           ,..-─‐-..、
            /.: : : : : : : .ヽ
          R: : : :. : pq: :i}
           |:.i} : : : :_{: :.レ′
          ノr┴-<」: :j|
        /:r仁ニ= ノ:.ノ|!           _
          /:/ = /: :/ }!        |〕)  コツン
       {;ハ__,イ: :f  |       /´
       /     }rヘ ├--r─y/
     /     r'‐-| ├-┴〆    _, 、_  '⌒ ☆
      仁二ニ_‐-イ  | |      ∩`Д´)
      | l i  厂  ̄ニニ¬      ノ  ⊂ノ >>109
     ,ゝ、 \ \   __厂`ヽ    (__ ̄) )
     / /\_i⌒ト、_   ノrr- }     し'し′
   └-' ̄. |  |_二二._」」__ノ

112:nobodyさん
09/03/11 22:23:43
>>10
氏ね

113:98
09/03/11 23:04:15
>>100
こういうやり方、はじめて知りました!
ちょっとよく分からない関するとかありますが、調べてみます。
ありがとうございました。

114:nobodyさん
09/03/11 23:06:48
<img src="URLリンク(xxx.com)">

サーバーを引っ越したらこういうような画像が表示ができなくなりました。
いろいろ試してみたところどうも引越し先のサーバーが上の表記のものを
画像として認識してないと思われます。

画像元は他サイトなのでいじれません。

どうすれば画像として認識してくれるのでしょうか?
accessで何かすればいいのかなとは思っていますがどう書けばよいでしょうか
ご教授お願いします。




115:nobodyさん
09/03/11 23:32:05 Co0l4rZT
>>114 どうかな?

<?
header("Content-type: image/gif");
$url = "URLリンク(xxx.com)";
readfile("{$url}");
?>

116:nobodyさん
09/03/11 23:47:01
>>92
使用しているDBまた、どんなSQLを実行したか分からないけど、
bindParamは変数は参照としてバインドされるので、
メソッドの中でPDOドライバが何か余計なことをしたのかもしれないね。

bindParamの前後で、デバッガか、var_dumpで変数をチェックしてみては?

117:114
09/03/12 00:02:38
>>115
できました!!
ありがとうございます

118:nobodyさん
09/03/12 00:11:31
初歩的な質問で恐縮です。
正規表現で複数回続く文字 。 を一回に置換したいです。
以下で試しましたがうまくいきません。
最長マッチ?のしかた教えて下さい。

mb_regex_encoding("sjis");
$text = "今日は木曜日です。。天気は晴れ。。。。";
$text = preg_replace("/。+/","。", $text);

119:nobodyさん
09/03/12 00:22:47
>>118
preg_replace('/(。)+/', '。', '今日は木曜日です。。天気は晴れ。。。。');
で、できた。

括弧が必要な理由は分からん。


120:nobodyさん
09/03/12 00:23:56
それじゃ”。”にしか対応できてへん

121:nobodyさん
09/03/12 00:25:48
>>119-120 できました。ありがとうございます。

122:nobodyさん
09/03/12 01:21:32
オブジェクト指向なるものを調べ始める

みんなで開発するときは作業分担効率化

フレームワークを使うのが当たり前

ある程度自動でさくさくプログラム書けるらしい

なんか自分でやった感がなさそうな気がしてモチベーション下がってきた・・・

まだ初心者すぎるし、ずっと手続き型でやるほうがいいのだろうか・・・
でも作業分担ですっきり綺麗にプログラムかけるのとか憧れるし、
そんなことができるなら今のうちにやっておいたほうがいいし、
でもプログラム自動生成とかになるらしい?からそれになれちゃうと、
今度は手続き型で覚えてきた基礎がおろそかになって忘れそうな部分が多そうで怖い・・・
一体どうしたら

123:nobodyさん
09/03/12 01:37:44
別に手続き型言語でもフレームワークとか自動生成とかあるだろ
問題を分けて考えるべきだ

124:nobodyさん
09/03/12 01:54:01
一人OOPで作業分担もヘチマもないだろw

125:nobodyさん
09/03/12 01:59:09
誰にも見せないプログラムでも
後から見て、
おお〜これは見やすくて編集しやすいな〜
みたいに言われそうなの書いてみたい

126:nobodyさん
09/03/12 02:19:19
>122
・21世紀にもなってOOPができないエンジニアはゴミ
・OOPでないコードは、ひとりで書くコードでもゴミ
・「手続き型のコード」が何を指すか知らんが、PHPの文法はどのみち完璧にしないと何も出来ない
・個々のフレームワークの知識は要らん
 MVC構造とは何かを頭に叩き込んでから、必要なものを自分で書け
 OOP分かってない奴はクラス使っても糞コードしか書けないのと同じで、フレームワークを使おうが基礎が出来てない奴のコードはやっぱりクズだ

・ガタガタ抜かす前に動くコードを書けよハゲ
 自動でサクサクできる?んじゃあやってみろよハゲ
 手を動かさないエンジニアはゾウリムシ以下だ

127:nobodyさん
09/03/12 04:31:24
>>118,119
補足
mb_regex_encoding()はmb_ereg*()にしか適用されないので
マルチバイト文字だと認識できていない事が原因
その例ならpreg_replace()ではなくmb_ereg_replace()を使う

128:nobodyさん
09/03/12 09:10:37
今はアスペクト指向なんてものがあるんですよ

129:nobodyさん
09/03/12 09:36:10
手続きとかオブジェクトとかアスペクトとか手段でしかないからそれありきで考えるなんてアホ
成果上げるためにどう開発するのがいいか個別に考えればええやん

130:nobodyさん
09/03/12 09:55:01
開発速度を犠牲にしても初心者は手続きで何がどうなっているのかを
ちゃんと見極めたほうがいい
仕事になればたいした技術もおそわらず
FWとAPIの使い方を覚えさせられてラピッド開発させられるだけ
短期間で効率的に開発というのは業務では中核となる課題だが
結果ゆとりを多く生み出してる

131:nobodyさん
09/03/12 11:25:18
すいませんブログを作りたいのですが必要最低限の機能は以下でそろってますか?

トラックバック
書き込み(コメント、記事投稿)
ログ出力

132:nobodyさん
09/03/12 11:26:19 blHr3iRk
すいませんid出し忘れました

133:108
09/03/12 11:41:37
さっさと回答しろよ初心者ども

134:nobodyさん
09/03/12 11:46:49
ブログに必要なものは


135:nobodyさん
09/03/12 11:48:27
根気

136:nobodyさん
09/03/12 13:49:23
>>131
最低限、カテゴリ別一覧とカレンダーと月別一覧は必要だろう

137:nobodyさん
09/03/12 13:56:45
>>136
最低限、占いとポストペットとログールは必要だろう

138:nobodyさん
09/03/12 14:26:31
ウェブログリングをお忘れでない?

139:nobodyさん
09/03/12 17:18:46
>>136
カテゴリ別一覧とかカレンダーとか月別一覧とか

生きた化石がこんなところにもいるんですね

140:nobodyさん
09/03/12 17:39:53 w9p/Xb/s
カテゴリ別一覧の仕組みがいまいちわからないんですけど
どのような仕組みでしょうか?

141:nobodyさん
09/03/12 17:50:28
SELECT title,body,entrydate FROM entry WHERE categoryid=1;

142:nobodyさん
09/03/12 17:52:19
>>139
あなたは使いにくいものはかっこいいと勘違いしてるクリエイターさんですね

143:nobodyさん
09/03/12 19:04:33 y65Mhsc8
配列から要素を抜き出し、その分を詰めたいのですが、どうするのがスマートですか?
$array = array('a','b','c');
$str = pick($array,1);

$array : array('a','c')
$str : 'b'
のような動作をさせたいです

144:nobodyさん
09/03/12 19:11:59
>>143
$str = $array[1];
unset($array[1]);

145:nobodyさん
09/03/12 19:26:26
unset使うコーディングはクズだな

146:nobodyさん
09/03/12 19:26:42
>>143
list($str) = array_splice($array, 1, 1);

>>144
unsetは数値キーを再割り当てしない

147:nobodyさん
09/03/12 19:44:54
>>146
ありがとうございました

148:nobodyさん
09/03/12 21:50:39 Y3aY0Tvp
PHP+MYSQLで、MySQL寄りの質問になると思うんですが、
MySQLのスレッドがなかったので…。
スレ違いなら申し訳ないです。


[testテーブル]
no(オートインクリメント)
name

1・フォームからnameデータを受け取り、testテーブルにINSERTで入力。
2・その後すぐに、1の入力で作成されたレコードのnoを引き出す。

これを行うのに最適な方法はなんでしょう?
nameはキーではなく重複する可能性があるのでnameでのselectは不可です。

とりあえず2で
select * from test order by no desc limit 0,1
で取り出す方法を考えたんですが、
その場合1と2の間に一貫性?を持たせなければなりません。
この一貫性を保持させる方法がMySQLにあるのかPHPにあるのか・・・。
もしこの方法が最適なら一貫性を持たせる方法
(できれば例のコード)を教えてください。
また他に最適な方法があるならぜひお願いします。

149:nobodyさん
09/03/12 21:53:28
>>148
説明
int mysql_insert_id ([ resource $link_identifier ] )
直近の INSERT クエリにより AUTO_INCREMENT カラム用に生成された ID を取得します。


150:nobodyさん
09/03/12 22:12:31 w9p/Xb/s
classの継承についてちょとよく分からないので質問です。

class Main{
function dbList(){
// MySQLから特定のテーブルリスト一覧を取得する
}
}

class Sub extends Main{
function output(){
$list = $this->dbList(); // Mainからテーブルリストを取得
}
function output2(){
$list = $this->dbList();
}
}

こういうclassがあったとして、Sub内のoutput()を実行すると
MainのdbList()を実行することになりますよね?
そしてoutput2でdbList()を使いたい場合、再度実行する事になりますよね?
そうではなくて、Mainで設定した内容を使い回しするような事って出来ないのでしょうか?

151:nobodyさん
09/03/12 22:29:49
>150
function dbList(){
 if(false === isset($this->dbList){
  $this->dbList = mysql_fetch_なんとか(); 
 }
 return $this->dbList;
}
遅延初期化とか呼ばれるテクニックで、割と定石。
使いすぎるとカオスになるので、どの値をどのクラス/インスタンスで保持するかは慎重に検討したほうがいい。

152:nobodyさん
09/03/12 23:11:07 Y3aY0Tvp
>>149
まずint mysql_insert_id ([ resource $link_identifier ] )
について調べてみます。
助言本当にありがとうございます。

153:nobodyさん
09/03/12 23:53:49 ZuCT+g0F
file.txtにcsvで以下のように記録しました
これからファイルからデータベースにデータを移し替えたいと思ってます

id,name,age
1,木村,10
2,佐藤,20
3,木下,30
4,山田,40
5,坂本,50



mysqlを使用した場合でダイレクトにid2の佐藤さんのデータのみを取得するにはどうしたらよろしいでしょうか?
ファイルですとforeachでまわしてexplodeで区切る感じで、データを全部読み込んで処理させてるのですが
データベース使ってもデータは全部読み込んでまわして取得するのでしょうか?

154:nobodyさん
09/03/12 23:59:52 qegdPp88
タブ区切りのbbs.cfgからexplodeで設定値を取り出す
このとき、配列の要素が100個ぐらいだとして、
こういう場合はいちいち使うものに変数名をつけるか、
それとも配列の[数字]でつかうのか、
どっちが一般的なんでしょ?
こういう場合に限らず、一般的に他の言語とかでも
たくさんの値を使う場合はどういう管理をしてるんでしょう??

155:nobodyさん
09/03/13 00:15:24
>>153
データーベースの場合は、
WHERE id=2
とかって指定すれば、id=2のデーターだけ
読み込める。

156:nobodyさん
09/03/13 00:27:47
>154
個数はあんま関係ないな。
論理的に「同じようなものが100個」ならば、100要素の配列を使う、というだけ。
例えば>153のデータが100行ならば、人間が100人なわけで、100要素の配列に格納するのは理にかなっているわけだ。

だが、列が3列だからといって、各行を3要素の配列で表現したりはしない。idと年齢は別の概念だからな。
たとえスリーサイズとか干支とか住所とかで各行の要素が何十とあったとしても、数字添字の配列にはしない。
$person[0] = array( 'id' => 1, 'name => '木村', 'age' => 10);
$person[1] = array( 'id' => 2, 'name => '佐藤', 'age' => 20);
みたいな連想配列に格納する。もしくはクラスを使う。

1行ずつ処理する場合も
list($id, $name, $age) = explode(',', $line);
みたいにやった方が、コードが読みやすいはず。

157:nobodyさん
09/03/13 00:43:01
>>154 >>156
俺は100も200もあって意味とか型とかが同一のデータなら(試験の点数など)、
いちいち列名なんてつけずに数字で扱うけどな。まあどっちもでいいんじゃね

158:nobodyさん
09/03/13 11:07:13 eI4NlDZU
classの中で変数を宣言するときvarにしようと思ったのですが
どこかのサイトで、php5はvarは使うな的なことを書いてありました
そのサイトどこか忘れてしまったのですが、varの他に何を使うのが適当なのでしょうか

159:nobodyさん
09/03/13 11:28:27
>>158
URLリンク(www.php.net)
> 注意: キーワード var で変数を宣言する PHP 4 の方法は、
> 互換性を保つために今でもサポートされています (これは public と同じ扱いになります)。
> PHP 5.1.3 より前では、 これを使用すると E_STRICT 警告が発生します。

160:nobodyさん
09/03/13 13:37:40
PHPである程度の量の文(300KBぐらい)を処理するために
ヒアードキュメントを使っています。
フォームで処理すればコピペの時のスクロールが省けると思いフォームの
POST経由で変数を処理しましたが100KBぐらいしか処理できません。
これはフォームの入力制限等があるからでしょうか?

161:nobodyさん
09/03/13 14:01:14
>>160
そんなことはないと思うぞ。ブログとか文章が長くて容量がでかいだろ。
おそらく、設計にミスがあるんじゃないか?

162:nobodyさん
09/03/13 14:14:40
>>153
DBの場合、主にSQL文を使う。その場合なら
SELECT id,name,age FROM テーブル名 WHERE id = 2;
こんな感じのSQLをデータベースに投げることによって、idが2のやつのデータを返してくる。

ファイルよりも細かい検索ができるからいろいろやってみると面白いよ。
詳しくはMySQLのオンラインマニュアルとかSQLの入門サイトを参照のこと。

163:nobodyさん
09/03/13 14:17:06
>>153
URLリンク(ufcpp.net)

164:nobodyさん
09/03/13 15:02:30 6EGCx2Tu
PHPで痴漢、いやっ置換する関数などはありますか?

165:nobodyさん
09/03/13 15:04:59
str_replace
preg_replace

166:nobodyさん
09/03/13 15:05:04 OOgBCn1Z
Cache_Liteを使って、
一つのフォルダに50万以上のページのキャッシュを保存してます。
今後も+1万/日のペースで増加します。

やはり、キャッシュを保存するフォルダは適度に分散した方がいいのでしょうか?
動作が遅くなる可能性はありますか。

167:nobodyさん
09/03/13 15:19:24 DZKgFtDb
classの中でevalを使う方法を教えていただけませんか
使えなかったらすみません

class hoge{
var $hoge = eval("a");
}

このようなエラーが返ってきます。Parse error: syntax error, unexpected T_EVAL

168:nobodyさん
09/03/13 15:32:23
eval(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑

169:nobodyさん
09/03/13 15:42:15
class hoge{
var $a;

function hoge(){
$this->a = eval...
}
}

こうしてみたら?
eval使ったことないけど。

170:nobodyさん
09/03/13 16:00:26 XJCetXbH
自動で、毎日ある時間になったら、スクリプトを実行させたいのですが、
ループ文で四六時中、time()関数を実行して、設定した時間になったら、ループを抜け出しスクリプトを実行する、
というやり方はありですか?

171:nobodyさん
09/03/13 16:06:22
>>170
おぉ、その手があったか。是非、max_execution_timeの限界ってどのくらいか試してくれ。
でもそのスクリプト、ずーっと実行し続けられる保証がないよね?
そしたらそれを定期的に監視するするスクリプトもそれで動かせばいいね。うんうん。

172:nobodyさん
09/03/13 16:07:30
現実的には cron だな。

173:nobodyさん
09/03/13 16:13:19 DZKgFtDb
>>169
なるほど!
思いつきませんでした。ありがとうございます

>>170
ものすごく負荷がかかると思います。
レンタルサーバーなら、コンパネからcron使えないですかね

174:nobodyさん
09/03/13 16:19:46
>>170
クライアントPCつけっぱなしか。電気代もったいないな

175:170
09/03/13 16:21:18 XJCetXbH
レスありがとうございます。
まったくの入門者でwinで自鯖をやる予定です。
max_execution_timeというので、負荷がわかるわけですね、勉強になりました。
まだ、試してないんですが、cronだと細かい設定が出来ないですよね?

176:nobodyさん
09/03/13 16:37:25
>>174
ignore_user_abortがある

>>175
工夫すれば負荷なんてそんなにかかんないよ。
1クライアント分消費するだけ。
max_execution_timeを無限設定して
ignore_user_abortで起動して、forループにSleepを巨大な秒数でセットしてやれば。
あとは、プロセスを一つに絞るのに、どっかにPIDファイル作るとか



177:質問させて下さい
09/03/13 21:45:58 75Yme90V
php5.25です。


phpで下記を書いてます。

<?php
$mainrss = array (
'URLリンク(www.123.net) ○○',

'URLリンク(456.net) ○○'
);
?>

URLは取得できるようになるんですが、URLの後ろに短い紹介文を書きたいのですが、
カンマじゃなくて何を使ってあげるといいのでしょうか?
○○に短い紹介文を記入したいです
アドバイスをお願いします。

178:nobodyさん
09/03/13 21:48:38
意味が分からんけど=>でキーにでもすれば?

179:質問させて下さい
09/03/13 21:50:51 75Yme90V
>>178

レスありがとうございます。
下記のような感じで記入できたと思うんですが、思い出せなくて。

'URLリンク(www.123.net)','あいうえお',

180:nobodyさん
09/03/13 21:56:15
.

181:質問させて下さい
09/03/13 22:06:25 75Yme90V
>>180
レス有り難うございます!
それでも無理でした

'URLリンク(www.123.net) '123',

でもだめでした。
難しいですね。

182:nobodyさん
09/03/13 22:09:21
カンマじゃなくてドットだって

183:質問させて下さい
09/03/13 22:15:49 75Yme90V
それでもだめでした。
レスを有り難うございます。
本を買ってきて勉強したいと思います。


184:nobodyさん
09/03/13 22:25:13
いや、つか何をしたかったの?

185:nobodyさん
09/03/13 23:25:30
>175
Unix/Linuxならcronだが、同じ事はWindowsではタスクスケジューラで実現する。
(Windows上で動くcronも存在するが)
無限ループを回すよりはこちらのほうがスマート。

「cronだと細かい設定が出来ない」の意味が良く分からんな。
1分以下の精度で実行タイミングを指定したい(12時30分15秒じゃないとダメなんだ!とか)とか言う意味ならcronの仕様上無理だが。
曜日指定とか時刻指定とかなら余裕で可能。cron覚えるのがダルいならスクリプト側で制御してもいいしな。
任意のスクリプトを動作させられるのだから、そのPC上で可能な事はなんだって出来る。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4718日前に更新/244 KB
担当:undef