トップページ⇒php
1001コメント350KB

【PHP】下らねぇ質問はここに書き込みやがれpart10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/25(日) 02:03:45ID:nLUfPXhD
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0222nobodyさん2005/09/30(金) 20:24:11ID:???
>>162,164,166,172

ありがとうございます。
正規表現勉強してみようと思います。
0223nobodyさん2005/09/30(金) 20:31:23ID:???
>>221
http://php.s3.to/man/function.eregi.html
マニュアル

「/」イラネ
で.*?じゃなくて(.*)?

最低エラーメッセージくらい書きたまい。
0224nobodyさん2005/09/30(金) 20:35:18ID:???
>>215
ご丁寧にありがとうございます。
参考になりました。
0225nobodyさん2005/09/30(金) 20:41:59ID:???
>>223

ありがとうございます。エラーは解決できました。

でも、【<li>aaaaaaaa</li>】だけとりたいんです、
最短マッチができません。
0226nobodyさん2005/09/30(金) 21:20:21ID:???
>>221
>>102
オマイは何がしたいんだ?
0227nobodyさん2005/09/30(金) 21:26:13ID:???
>>225
正規表現が苦手ならsubstr辺りで処理すればいい。
正規表現を勉強したくてやっているのなら丸投げするな。
0228nobodyさん2005/09/30(金) 22:09:27ID:???
ランダムな文字列を生成するスクリプトを書いたのですが、もっと簡単な方法はないでしょうか?

<?php
$number = array ("1","2","3","4","5","6","7","8","9");
$alpha = array ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o",
"p","q","r","s","t","u","v","w","x","y","z");

shuffle ($number);
shuffle ($alpha);

echo ("<br />");

foreach ($number as $value_number){
echo ($value_number);
}

echo ("<br />"."<br />");

foreach ($alpha as $value_alpha){
echo ($value_alpha);
}
?>
0229nobodyさん2005/09/30(金) 22:22:02ID:???
>>228
何がやりたいのかイマイチ分からんが・・・

<?php
echo '<br /'>',
str_shuffle('123456789'),
'<br /'>', '<br /'>',
str_shuffle('abcdefghijklmnopqrstuvwxyz');
?>
0230nobodyさん2005/09/30(金) 22:44:23ID:???
>>229
ありがとうございます。
str_shuffle関数は下記のようにまずシャッフルして、それから出力といった使い方はできないんですね(´・ω・`)

<?php
$alpha = "abcdefghijklmnopqrstuvwxyz";

str_shuffle($alpha);
echo ($alpha);

?>
0231nobodyさん2005/09/30(金) 23:02:58ID:???
filesize関数でキロbytes単位で表示できるものはないですか?
0232nobodyさん2005/09/30(金) 23:04:08ID:???
>>230
文字コードをランダムに作ってchrで出力すればええんちゃう?
0233nobodyさん2005/09/30(金) 23:05:18ID:???
>>229
海胆食いD、もといuniqidでは駄目なん貝?
0234nobodyさん2005/09/30(金) 23:05:37ID:???
>>231
取得した後に1024で割ればいいと思うのだが
0235nobodyさん2005/09/30(金) 23:17:43ID:???
>>234
ありがとうございます。
小数点以下を切り捨てる場合はどのようにすれば良いんでしょう?
$total += (filesize($afn)/1024);
こんな感じでやってるんですが
0236nobodyさん2005/09/30(金) 23:29:36ID:???
round関数か(int)
てか検索しろよ
0237nobodyさん2005/09/30(金) 23:58:24ID:???
>>230
あ、>>229は余計な'があったな(試してないのバレバレ・・・)。

str_shuffle()のマニュアルを読めば判ると思うが「適当に入れ替えた文字列を返す」だから、
$alpha=str_shuffle($alpha);
で済むのではないかと。
0238nobodyさん2005/10/01(土) 01:52:07ID:???
>>219

>少なからずあるといえばあるが、可能性は限りなく少ない

少なくないが、限りなく少ない。
02392392005/10/01(土) 04:07:40ID:???
<?php
$logfile = "./counter.log";
$cookiename = "mycookie";
$counter = 0;
if( $fn = @fopen($logfile,'r')){
$counter = trim(fgets($fn));
fclose($fn);
}
if(!isset($_COOKIE[$cookiename])){
$counter++;
setcookie( $cookiename,$counter);
if($fn=@fopen($logfile,'w')){
fwrite($fn,$counter);
fclose($fn);
}
}
?>
<html>
<body>
<?php
if($fn= @fopen($logfile,'r')){
$counter=trim(fgets($fn));
fclose($fn);
}
print($counter."人目です");
?>
</body>
</html>

を実行すると、
02402392005/10/01(土) 04:10:56ID:IQUyxXuW
Warning: Cannot modify header information - headers already sent by
(output started at C:\04WebServer_182\04WebServer\DocumentRoot\p.php:1)
in C:\04WebServer_182\04WebServer\DocumentRoot\p.php on line 11
46人目です


↑こんなんが出ます。
HTTPヘッダが送られた後にクッキーを送ろうとしてるので、こんなエラーが出るのだと解読しましたが、
当たっていますか?
また、解決するにはどうすればいいでしょうか?
0241nobodyさん2005/10/01(土) 04:17:34ID:???
初期段階の質問なんですが、phpとapacheの連携がうまくいきません。
本にそってapacheはちゃんとインストールできて、「予想に反してー」ページが出ます。
phpもインストールでき、php.iniを/usr/local/libに置いています。
httpd.confにも
AddDefaultCharset none と
AddType application/x-httpd-php .php
を追加しています。
しかしphpにブラウザでアクセスしてもダウンロードダイアログが出てしまいます。
apacheも再起動してます。何か他の問題は考えられますか?

apache2.0.53 、 php5.0.4
FedoraCore4です。よろしくお願いします。
0242nobodyさん2005/10/01(土) 07:30:45ID:???
>>241
LoadModuleは書いた?
0243nobodyさん2005/10/01(土) 08:58:49ID:???
>>240
正解。クッキーはHTTPヘッダの中にSet-Cookie: mycookie=239の形で埋め込まれる。
1行目でヘッダ以外のものを出力したのでPHPの中の人はヘッダが終了したと思っている。(output started 〜 p.php:1 の部分)
うちでは問題なく動作したよ。「 <?php」てな感じにスペース1つを追加したら同じwarningを出せたけども。
0244nobodyさん2005/10/01(土) 11:13:05ID:???
> PHPの中の人

ワロス
0245nobodyさん2005/10/01(土) 12:22:33ID:???
2ch初心者ですか?
0246nobodyさん2005/10/01(土) 12:50:33ID:???
サーバーにアップして実行すると、Parse errorが出たので、
提示された行付近をチェックしたのですが、エラーの原因がサッパリわかりません。
ごく普通のswitch文なんですが、何がいけないのでしょうか?


 switch( mysql_num_rows($sql_result) )
 {
  case 0:
   $id_result = "";
   break;

  default:
   $id_result = ""; ←ここがダメと言われる
 }


ちなみに、問題の行をコメントアウトしても同じ行数でエラーが出ました
0247nobodyさん2005/10/01(土) 13:00:16ID:???
全角スペースでも紛れ込んでるんじゃないの。
または括弧の対応とかさ。
0248nobodyさん2005/10/01(土) 13:01:24ID:???
中の人は性格が几帳面だからな。
0249nobodyさん2005/10/01(土) 13:02:26ID:???
>>246
Parse error: parse error, unexpected '}' in
てな感じで、何が不適切なのかもでてるでしょ?それも参考にしる
02502462005/10/01(土) 13:04:54ID:???
秀丸でスペースの表示してみましたが、全角スペースが紛れ込んだりはしてませんでした。

試しに、switchを丸ごとコメントアウトして実行するとエラーが出ませんでした。
一体全体何が・・・

eclipseでやってるので、括弧の対応不一致とかも無いです
02512462005/10/01(土) 13:05:51ID:???
>>249
それが出ればいいんですが、

Parse error: parse error in ファイル名 on line 63

しかでないんです・・・
0252nobodyさん2005/10/01(土) 13:09:02ID:???
>>246
PHPのアクセラレータかオプティマイザの所為かもしれない。
phpinfo()でインストールされてないか確認。
02532462005/10/01(土) 13:25:13ID:???
>>252
Zend Extensionとか、PHP Extensionとかのことでしょうか
0254nobodyさん2005/10/01(土) 14:44:59ID:???
>>246
> サーバーにアップして実行すると、Parse errorが出たので、

これってローカルで試した時はエラー無しでアップしたらエラー出たって意味か?
0255nobodyさん2005/10/01(土) 16:13:01ID:???
>>232,236,237
ありがとうございます。
目的のスクリプトが書けました。
02562462005/10/01(土) 16:18:25ID:???
>>254
いえ、書いてあるそのままの意味です
ローカルで実行する環境作ってないので


で、自己解決しました。
上に抜き出したソースは空文字列にしてますが、
実際にはcase 0 と default で、$id_resultにそれぞれ違う文字列を代入してたのですが
その文字列の内容を変えたら動くようになりました。
文字コードの問題なのでしょうか・・・

とりあえず、お騒がせしました。
0257nobodyさん2005/10/01(土) 16:37:04ID:???
正常に動作するコードなのに、原因を教えてくれって言ってたのかい┐(´ー`)┌
0258nobodyさん2005/10/01(土) 17:01:10ID:???
直すまでは正常に動作しないコードではあるんじゃ?
0259nobodyさん2005/10/01(土) 17:04:31ID:eDSneZeH
ApacheのDSOとIISのISAPIは似た技術と考えていいのでしょうか?教えてください。
また、WebサーバとしてApacheを用いた場合とIISを用いた場合ではPHPの挙動にどのような違いが出るのか教えていただけないでしょうか?
0260nobodyさん2005/10/01(土) 17:52:22ID:???
>>259
ApacheのSAPIとIISのISAPIは似たような技術だけど、
ApacheのDSOってのは全然ジャンルが違う。
そもそもそんな比較が出てくる時点で
「CGIとPHPは違うの?」並に理解不足と思われ。
02612592005/10/01(土) 18:13:42ID:???
>>260
すみません。こんな理解不足の僕がこの辺の知識を得るために読むべき本やサイトを紹介していただけたらありがたいのですが…。よろしくお願いいたします。
0262nobodyさん2005/10/01(土) 20:15:03ID:???
sechoって何ですか?
リファレンスマニュアルにもないような・・・・
0263nobodyさん2005/10/01(土) 20:24:46ID:???
>>262
ユーザー定義関数じゃないの?
02647802005/10/01(土) 21:08:23ID:???
>>263
そのようでした^^;
ありがとうございます(その発想ができなくて悶絶してましたorz
0265nobodyさん2005/10/01(土) 21:09:27ID:???
↑よそスレのコテつけっぱでした ゴメソ
262でしたorz
0266nobodyさん2005/10/01(土) 21:29:13ID:???
ディレクトリの一覧を表示させたのですが、
ローカル環境とサーバー環境で並び方が違います。
ローカルではabcの順に並んでるのですが、鯖側では規則性が見つけられませんでした。
何が問題でしょうか。
0267nobodyさん2005/10/01(土) 21:38:22ID:???
自分でソートしないと駄目。
フォルダ操作は環境依存。
0268nobodyさん2005/10/01(土) 21:57:57ID:???
質問です。

$comment = preg_replace("/\n{2,}/", "\n\n", $comment);//2行以上の改行を2行に

上記のはわかるんですが、掲示板のコメントとか名前を改行禁止(改行しても一行表示)にしたいのですが…

どなたか教えて下さい
0269nobodyさん2005/10/01(土) 22:35:17ID:???
>>268
君、応用力ないなぁ…

つ[$comment = preg_replace("/\n/", "", $comment);//改行を削除]
0270nobodyさん2005/10/01(土) 22:37:49ID:???
while ($i = fgetcsv($fp, 1000)) {
処理
}

これは $i に値が存在する場合TUREを返し、ループ。
値が存在しない場合はFALSEを返すからループ停止。
という意味でOKですか?
0271nobodyさん2005/10/01(土) 23:06:42ID:???
まにゅあるよもうぜ

fgetcsv()はファイルの終端に達した場合を含み、 エラー時にFALSEを返します。
0272nobodyさん2005/10/01(土) 23:23:49ID:???
>>271
(´・ω・`)  すみません。ありがとうございます。
0273nobodyさん2005/10/02(日) 00:03:36ID:???
改定新版基礎PHPを一通り読み終わったのですが
PHPについてこの後はどのようなことをして勉強をすれば良いのでしょうか?
0274nobodyさん2005/10/02(日) 00:21:46ID:???
>>273
一度自分で実際に作ってみて、
問題にぶつかってからいろいろ考えればいいじゃない。
勉強するだけじゃスキルは身に付かないよ
0275nobodyさん2005/10/02(日) 00:57:20ID:???
>>269
ありがとうございました。
出来ました。

つ�I
0276nobodyさん2005/10/02(日) 01:25:17ID:???
a.phpとb.phpで同じロックファイルをflockする場合

a.phpのプロセスでロック掛けている時はb.phpのプロセスでもロック掛かっていますでしょうか?
0277nobodyさん2005/10/02(日) 01:48:20ID:???
>>274
なるほど、ありがとうございます。

実際に何かを作る場合、リファレンスがあると便利なので買おうと思うのですが
逆引き代全とポケットリファレンスとではどちらの方が初心者向けでしょうか?
0278nobodyさん2005/10/02(日) 01:51:59ID:???
チャットとかで連続に投稿する場合にパソコンにはクッキーが効くからい良いとしても
アイモード(携帯全部?)にはクッキーは効きませんよね?
携帯用としてクッキーに変わるようなものはありますでしょうか?
0279nobodyさん2005/10/02(日) 02:13:04ID:???
>>278
それはphpに限っての話?
0280nobodyさん2005/10/02(日) 02:15:27ID:???
hiddenじゃだめなわけ?
0281nobodyさん2005/10/02(日) 02:21:13ID:???
>>261
http://ns1.php.gr.jp/pipermail/php-users/2002-February/005377.html
あとはGoogleや本でも手当たりしだいでも立ち読みして調べろ。
0282nobodyさん2005/10/02(日) 02:22:53ID:???
>>277
初心者ならどっちも買っとけ。
どっちも役に立つ。
0283nobodyさん2005/10/02(日) 06:14:40ID:???
すみません、これ↓すごい気持ち悪いんですが、なぜだかわかりますか?
マニュアルのどっかに書いてあったら教えてください。
(PHP5です)

class Hoge {
  private $value;
  public function __construct($value) { $this->value = $value; }
}

$a = array(new Hoge(100), new Hoge(32), new Hoge(255), new Hoge(7));
sort($a);

とやったらちゃんと$valueの順番にソートされてやがんの。
privateなのにアクセスされてる感がたまらなくキモイ。
0284nobodyさん2005/10/02(日) 07:28:33ID:???
(゚Д゚)ハァ?
0285nobodyさん2005/10/02(日) 07:51:37ID:???
>>279
>>280
レス有難うございます。
phpのチャットなんでここに書きましたがスレ違いの様な…

hiddenで構いませんので教えて下さい
もしくはヒントを!
0286nobodyさん2005/10/02(日) 08:08:27ID:???
必要な値を<input type="hidden"で出力ページに埋め込め
0287nobodyさん2005/10/02(日) 08:55:08ID:???
>>283
おまいが何をキモイといっているのかサッパリわからない。
クラスとかわかってる? 頭大丈夫か?
0288nobodyさん2005/10/02(日) 08:58:15ID:???
>>285

<FORM action="セルフ" method="post">
<?PHP
if($_POST['onamae']){
echo "$_POST['onamae'] ->";
echo "<INPUT type=\"hidden\" name=\"onamae\" value=\"$_POST['onamae']\">\n";
}else
echo "<INPUT type=\"text\" name=\"onamae\">\n";
?>

こんな感じかな?
0289nobodyさん2005/10/02(日) 09:22:44ID:???
>>288
$_POSTをそのまま使うな
0290nobodyさん2005/10/02(日) 09:41:40ID:???
なんで?
0291nobodyさん2005/10/02(日) 09:55:16ID:???
参考URI
http://php.s3.to/chat/schat.php

ソース
http://php.s3.to/chat/schat.php.txt
0292nobodyさん2005/10/02(日) 11:22:30ID:???
>>290
あなたが作った掲示板とかあったら教えてください。
過去の書き込みを全て200ptで表示してあげます。
0293nobodyさん2005/10/02(日) 18:12:55ID:???
文字列をサニタイジングしたとき、一部のタグだけ許可したいのですが、
いろいろ調べたのですがよくわかりません。
ヒントを下さい、お願いします。
0294nobodyさん2005/10/02(日) 18:36:20ID:???
>>293
予め決めておいた特殊な文字列 (特定界隈で特殊タグなどと呼ばれているもの)を
許可したい "一部のタグ" に変換するとか、一旦全ての文字列を HTML エンティティ
関数に通してから "一部のタグ" に置き換え直すとか、という風に出来ん?
0295nobodyさん2005/10/02(日) 18:56:52ID:???
>>282
アドバイスありがとうございます。
両方買ってみることにします。
0296nobodyさん2005/10/02(日) 20:01:36ID:???
>>292
おまえ面白いなw
0297nobodyさん2005/10/02(日) 21:02:32ID:KeoPF5ws
if (!(imagetypes() & IMG_JPG))
これって書き方間違っていませんよね?
どうしても
Fatal error: Call to undefined function: imagetypes() in ・・・・
と出てしまいます。
0298nobodyさん2005/10/02(日) 21:06:33ID:???
間違ってるからエラーになるんでしょ。メッセージは読んだの?
0299nobodyさん2005/10/02(日) 21:11:28ID:KeoPF5ws
あ、imagetypes()ってGD必要ですか?
0300nobodyさん2005/10/02(日) 23:29:21ID:???
undefined function
0301nobodyさん2005/10/03(月) 02:46:03ID:???
>>283
ソートするためには大小比較をしなければならないのだけど、
オブジェクトの大小比較って定義されてたっけか。

マニュアル15章の、比較演算子の項を見ると
オブジェクト同士の比較はできないことになってるから
偶発的なものと考えていいんじゃないかな。
本来ならエラーになってしかるべき手法だと思う。

そこには比較には配列形式でと書いてあるから、
たまたまそんな挙動になってるんじゃないかと推測。
03022832005/10/03(月) 04:52:53ID:???
レスありがとう。

>>287
何がキモイかわからないなら、>>301を読んでくれるとピンとくるかな?オブジェクトの比較って点がポイント。
クラスに関してひょっとしたら>>287さんほどわかってないかもしれないが、>>283に書いたコードのクラスくらいならわかりますよ。
頭は大丈夫。心配してくれてありがとう。

>>301
本当ですね。比較演算子のところでオブジェクトの比較にはまったく触れられていませんね。気になって試してみたら
$a = new Hoge(100);
$b = new Hoge(200);
とやると $a < $b は true になり、$a > $b は false になるようです。
勝手にプロパティで比較しているみたいですね。
クラスの中に複数のプロパティを定義してみると、ご丁寧にプロパティを定義した順に比較しているようです。

class Fuga extends Hoge {
  private $value2; public $value3 = "";
  public function __construct($value, $value2) { parent::__construct($value); $this->value2 = $value2; }
}

$c = new Fuga(10, 20); $c->value3 = "ABC";
$d = new Fuga(10, 20); $d->value3 = "ABZ";

とやると $c < $d が true になります。
Hoge::$value、Fuga::$value2、Fuga::$value3の順に正しく比較されていて、どうも偶発的ってよりも、意図的に比較してるような感じです。
プロパティが参照だったらどう比較するんだろう?

ずいぶん余計なお世話な挙動ですね。エラーだしてくれたほうがましなのに。
まあマニュアルにものってないようだから、変な比較はしないのが吉ってことかな。
0303nobodyさん2005/10/03(月) 06:52:27ID:???
>>302
こういうキモヲタが幼女誘拐とか起こすんだろうか。
0304nobodyさん2005/10/03(月) 08:29:51ID:???
>>303
おまいの発言に腹が立った
とりあえず以降の同等なレスはスルーするように気をつけることにする
0305nobodyさん2005/10/03(月) 08:38:22ID:???
そもそも何でオブジェクトをソートしようと思ったのだろう
0306nobodyさん2005/10/03(月) 10:24:35ID:???
>>305
キモヲタだからじゃね?
0307nobodyさん2005/10/03(月) 10:39:56ID:UqfVmxKv
今からPHPを始めるところなのですが
PHPはHTMLソースの中に書き込む形で書いてくらしいのですが
これって右クリックのソース見るで、<? ?>の部分を見たらどのようにPHPで書いたのか丸見えということはないでしょうか。
まさかとは思うのですが。何かユーザからは見えないようになってたりしますよね。
0308nobodyさん2005/10/03(月) 10:57:27ID:???
>今からPHPを始めるところなのですが
まずはPHPを始めてから聞いてください
0309nobodyさん2005/10/03(月) 11:01:02ID:???
>>307
PHPが正常に動いてさえいればPHPのソースは見えない。
見えるのは生成後のHTML。
0310nobodyさん2005/10/03(月) 11:03:26ID:???
>>307
PHPは鯖側で実行されるつーことをまず理解しましょう。
03113072005/10/03(月) 11:23:23ID:UqfVmxKv
皆さん、アドバイスありがとうございます。
見えないということで安心しました。丸見えってなんかやですもんね。
HTMLの中に一緒に書いたら見えるんじゃないのかと思ったのですが、やっぱり見えないようになってるんですね。

>PHPは鯖側で実行されるつーことをまず理解しましょう。
どこかに書いてありました。JavaScriptはユーザ側で実行されて、PHPはサーバ側で実行されると。
同じスクリプト言語でも仕組みが違うと。
なんか読んだことがあるのですが、この知識からPHPのソースは見えないの解を導き出すことはできませんでした。残念。
確かJavaScriptはソース丸見えでしたよね。
ということは、ユーザ側で実行するスクリプト=見える
サーバ側で実行するスクリプト=見えない

の図式がなりたちますね。
でもなんでサーバ側で実行すると見えなくなるんだろうか。
サーバ側で実行した結果をブラウザに返すからかな。
だからブラウザ側では帰ってきた結果しか見ることができない。ゆえにソース見えない。
と推理したのですが、あってるでしょうか。
0312nobodyさん2005/10/03(月) 11:29:15ID:???
>311
>サーバ側で実行した結果をブラウザに返すからかな。
そだね。
03133072005/10/03(月) 11:31:48ID:???
>>312
合ってましたか。どうもありがとうございます。
0314nobodyさん2005/10/03(月) 12:11:14ID:???
参照で返す時の&をつける場所についての質問なんですが、

function & bbb() {
// 色々な処理
return $aaa;
}

function bbb() {
// 色々な処理
return & $aaa;
}

function & bbb() {
// 色々な処理
return & $aaa;
}

のなかでどう書くのが一番良いでしょうか?
PHP4でクラスを返す場合は参照にしないと無駄なコピーができるということなのですが。
0315nobodyさん2005/10/03(月) 12:25:35ID:???
Cと異なり、PHPの場合、参照渡し・値渡しの違いは、値が変更された時に初めて起こる。
関数に渡した時点では、どちらもアドレスが渡されており、実行速度に差はなく、違ってくるのはその値が変更される時で、値渡しの場合に、関数内で変更された値が、関数内のローカル変数にコピーされるよう。つまり、値を変更しない関数ならば、値渡しと参照渡しの差はない。
0316nobodyさん2005/10/03(月) 12:32:08ID:???
>>314
参照で返すってどういうこと
引数に渡す変数には値渡しとか参照渡しとかあるけど

実際にやってみればわかるけどreturn & $aaa;でエラーがでる
03173142005/10/03(月) 12:47:03ID:???
>>315 >>316
すみません、とんだ勘違いなコード書いてました。
呼び出す方で
$aaa = & bbb();
とやるのと、
function & bbb() {
}
とやるのと、もしくは両方&をつける場合の違いについてでした・・・

あと、自分はCがわからないので、ちょっとイメージがつきにくいのですが、違いは全くないということなのでしょうか?
よく$x = new class()は$x = & new class()と書くほうがいいというのとはまた別の話ということなのでしょうか?
0318nobodyさん2005/10/03(月) 12:54:34ID:???
>>294
後者のやり方でやってみたのですが、属性が必要なタグ(font color=〜等)の場合は
どうすればよいのでしょうか?
0319nobodyさん2005/10/03(月) 12:59:11ID:???
>>318
正規表現。
後、後者だと誤爆が多くなる気がするけど・・・
0320nobodyさん2005/10/03(月) 14:09:15ID:???
>>317
http://www.php.net/manual/ja/language.references.return.php
03212942005/10/03(月) 14:44:59ID:???
>>318
俺としては、前者 + 正規表現 (最小限ならば str_replace だけでも) を推奨。

後者でやろうとすると、色々とボロが出てしまわないだろうか?以下の色々と
ボロが出てしまっている、小汚いソースの様に。

<?php

header("Content-Type:text/html; charset=".mb_detect_encoding("ほげ"));

$str = "<Font color=red>文字列</fonT> <font color=\"red>文字列</font> <font color=\"red\">文字列</font> <span style=\"font-size:500%;\">文字列</span>";

$bef = array("/<font(\s+color\s*=\s*(\"(#?[a-z0-9]*)?\"|(#?[a-z0-9]*)?))*>(.+)<\/font>/iU");
$aft = array("<font$1>$5</font>");

echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("<",">","?"),stripslashes($str)));
exit;

?>
■ このスレッドは過去ログ倉庫に格納されています