元スレ【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2
php覧 / PC版 /みんなの評価 : ○
151 = :
失礼致します。
あるウェブサービスAPIを取得して、XSLT処理をしたあと、XML出力するという
PHPのコードを書いています。
このコード自体問題なく動いているのですが、問題はこのXMLのある文字列を
置換したいのですが、その場合のstr_replaceの書き方がわかりません。
XSLT処理後XMLが格納されている変数 = $result
置き換えたい文字列 = hiropon
置き換え後の文字列 = <iframe src="xxxx" border="0"></iframe>
xxxにはURLが入ります。
そのまんま、str_replace('hiropon',置き換え後の文字列,$result)でやっても
うまくいかんのです。
変数にHTMLのタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?
152 = :
>>151
お前何カ所に書き込んでいるんだよ?
webサービス作ってて、マルチポストが嫌われる事も知らんとはね
153 = :
get って大文字で書かないとダメなんだね。
154 = :
今、SQLite3を使っていますが、MySQLを使おうと思っています
この場合、SQLiteはアンインストールしたり、php.iniにてsqlite部をコメントアウトしたりした方がいいのでしょうか?
155 = :
少しでも余計なリソースを削除したいなら、消してもいいけど
普通はそんな事しなくて平気
157 = :
一応PHPの学習は終わったのですが、まだ全然使いこなせていません
基礎を習得したくらいなので、今後実践的な事を書いていきたいのですが、学習に役立つサンプルのあるいいサイトありませんでしょうか?
自分でも探しているのですが、例えばクライアントサイドの場合はFireBug等で勉強出来ましたが、流石にサーバサイドは無理だと思いまして
158 = :
フリースクリプトが星の数ほど公開されてるじゃん
掲示板なりアクセス解析なりショッピングカーとなり好きなの見てみればいいんじゃない
159 :
大角本やいろんなPHPの本を読むのがいいと思うよ。
むろんサイトも参考になると思うが、ソースがきたないのもあるし
160 = :
require_once('DB/DataObject.php');
$config=parse_ini_file(dirname(__FILE__).'/myConfig.ini',TRUE);
$options=&PEAR::getStaticProperty('DB_DataObject','options');
$options=$config['DB_DataObject'];
ごめんなさい、この$optionsは上書きされないのでしょうか?
自分にはちょっと分かりませんでしたので質問させていただきました
161 = :
されるでしょ
162 = :
ですよね?
では、上書きされるのであれば、下から2行は何の為に記述しているのでしょうか?
DB_DataObjectクラスの変数$optionsの部分だけを$config['DB_DataObject']で書き換えているという意味なのでしょうか?
ちなみに、PEAR::DB_DataObjectのサンプルコードの一部です
163 = :
どこに書いてあるの?
164 = :
独習PHPのP254です(苦笑
サンプルコード全部書いておきますが、何かDB_DataObjectを利用する場合、この4行は定型的な記述だと思っておけば良いと書かれています
<?php
require_once('DB/DataObject.php');
$config=parse_ini_file(dirname(__FILE__).'/myConfig.ini',TRUE);
$options=&PEAR::getStaticProperty('DB_DataObject','options');
$options=$config['DB_DataObject'];
$book=DB_DataObject::factory('book');
$book->selectAdd();
$book->selectAdd('title');
$book->published='翔泳社';
$book->orderBy('isbn ASC');
print($book->find().'件が検索されました。<br />');
while($book->fetch()) {
print($book->title.'<br />');
}
?>
165 = :
試しに省いてみたら?
166 = :
まず試してみるのは大切だよね
167 = :
$options文を一方ずつ省いてみましたが、
Fatal error: Call to undefined method DB_DataObject_Error::selectAdd() in C:\Program Files\~
となってエラーが出ました
う~ん、コレはどうなっているのでしょうか?
何故オーバーライドされているのにどちらとも作用しているのでしょうか???
168 = :
エラー文に書いてるじゃないか
169 = :
えぇ、6行目のselectAdd()が定義されないというのはエラー文から分かりました
このselectAdd()で取得カラムをクリアするのは分かります
しかし何故オーバーライドしないと作用しないのかが自分には分かりません
$a = ’aaa’;
$a = 2;
で$aをprint出力すると2と出ると思いますが、このaaaと2はオーバーライドされた後も互いにまだ影響はあるのでしょうか?
オーバーライドされているのであれば、上書き前のものは別に必要ないのかと思っていたのですが・・・・・・
ごめんなさい、エラー文の意味が分かっていないかもしれません
どういうことなのでしょうか?
170 = :
もしかしたら3行目はクラスをロードしてるだけとかね
172 = :
http://pear.php.net/manual/ja/package.database.db-dataobject.intro-configuration.php
PEARマニュアルの「デフォルトオプションの設定」にも同じような$optionsが書かれていました
自分には即座にオーバーライドしているように見えます
174 = :
分かりました、ありがとうございました
単純なところで迷っていたみたいですね、お恥ずかしい限りです・・・
175 = :
例では$cに当たる部分がメソッドだから意味が違うよ
176 = :
ex)
class myClass {
function setValue( $set)
{
$foo = &PEAR::getStaticProperty('myClass', "foo");
$foo = $set;
}
function view()
{
print PEAR::getStaticProperty('myClass', "foo");
}
}
myClass::setValue('value = foo');
myClass::view();
177 = :
>>175
あっ、ほんとですね
メソッドの場合は意味が違うのですか?
失礼ですが、意味の違いが分かりません
>>176
すみません、初心者なのでいまいち分からなかったのですが、文をそのまま実行したら、
3行目がParse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Filesとなりました
>>176のコードは、まずmyClassというクラスを定義し、中身はsetValueとviewという2つの関数を内包
setValue関数はまずmyClassというクラスからfooという変数を取得、次にsetValue関数の引数$setを$fooに代入
view関数はそのままprint()
で、メソッド呼び出しという考えでいいのでしょうか?
('value = foo')は$setにfooを代入
で、上の方でも書いている問題点なのですが、自分がこうじゃないのかなぁと思ったのは、
$foo = &の文でコピーした変数fooと$foo = の下の文は独立して・・・ってアレ?
どっちとも同じ式に・・・???
ごめんなさい、やっぱ分かりません
178 = :
エラーは全角スペースかな。
getStaticPropertyが返してるのは参照なので、 'myClass'と"foo"という文字列で参照できるようにした変数の参照を返してるんだと
思います。 実際どうなってるのかは知らないけど、たとえば
$foo = &$proparty["myClass"]["foo"]; みたいな感じで。
なので、 $foo = $set; は
$proparty["myClass"]["foo"] = $set; をしてることになりますよね。
179 = :
そうすることに何の意味があるの?
180 = :
つまり、>>164の場合は、
$optionsという変数がオーバーライドされているわけではなく、
PEAR::getStaticProperty('DB_DataObject','options') = $config['DB_DataObject']
と代入しているという事でしょうか?
となると変数$optionsというものは意味が無く、形だけのものだという事なのでしょうか?
それがメソッド時の「&」の意味だと言うのならば分かります
>>176の例では
PEAR::getStaticProperty('myClass', "foo") = $setという意味で、PEAR::getStaticProperty('myClass', "foo")がオーバーライドされて消えたのではないと言う意味になるのですね
181 = :
173が分かるなら、それ以上のことではないよ。難しく考えすぎじゃない?
182 = :
一種の決まり文句とかおまじないのようなものと思っておけばいいと思う。
ソースのコメントに、
// おまじない
だの
// ↓消すと何故か動かなくなる
だのが書かれてるコードはたまに上がってくるしな。
184 = :
umu
185 = :
>>184
すごいね。
もしかして、2000年分くらい
全部記憶してるの?
187 = :
計算で出るだろ
189 = :
arrayの内容を、
一個づつ取ってきて、
画面に表示する、
ってプログラム、
forとforeachではできたんだけど、
こんどwhileでやってみるかな?って思ったんだけど、
どうやって組むかな?
190 = :
<?php
$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";
for($i=0;$i<=3;$i++){
print $banban[$i] . "<br>";
}
?>
-------------------------------------
↑これがforのバージョン。
191 = :
<?php
$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";
$banban[] = "PHP";
foreach($banban as $aaa){
print $aaa;
print "<br>";
}
?>
------------------------------------------
↑これがforeachのバージョン。
192 = :
君の見てるサイトの配列のページに書いてあるじゃないか
194 = :
>>190
<?php
$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";
for($i=0;$i<array_count_values($banban);$i++){
print $banban[$i] . "<br>";
}
?>
195 = :
<?php
$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";
array_walk($banban, create_function( '$v','print $v."<br>";' ));
?>
197 = :
すみません、上の質問読ませて頂きました
読んでいて自分も疑問に思ったので調べてみたのですが、>>176のような『&』の事を何と呼ぶのでしょうか?
ネットで調べても、&だけでは色々とあって自分では辿り着きませんでした
何か、何とか演算子とか名前があると調べやすいと思ったものですから
200 = :
そりゃ無名関数があるしな
みんなの評価 : ○
類似してるかもしれないスレッド
- 【PHP】ID出さなくても質問OKなスレ【初心者歓迎】 (836) - [86%] - 2009/8/18 21:04 ○
- 【PHP】ID出さなくても質問OKなスレ【初心者歓迎】 (1001) - [86%] - 2009/1/28 18:17
- 【PHP】下らねぇ質問はここに書き込みやがれ 69 (1001) - [33%] - 2008/6/25 23:33 ○
- 【PHP】下らねぇ質問はここに書き込みやがれ 70 (1001) - [33%] - 2008/7/19 3:52 ○
トップメニューへ / →のくす牧場書庫について