【PHP】下らねぇ質問はここに書き込みやがれpart10
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/25(日) 02:03:45ID:nLUfPXhDここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
0261259
2005/10/01(土) 18:13:42ID:???すみません。こんな理解不足の僕がこの辺の知識を得るために読むべき本やサイトを紹介していただけたらありがたいのですが…。よろしくお願いいたします。
0262nobodyさん
2005/10/01(土) 20:15:03ID:???リファレンスマニュアルにもないような・・・・
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:???君、応用力ないなぁ…
つ[$comment = preg_replace("/\n/", "", $comment);//改行を削除]
0270nobodyさん
2005/10/01(土) 22:37:49ID:???処理
}
これは $i に値が存在する場合TUREを返し、ループ。
値が存在しない場合はFALSEを返すからループ停止。
という意味でOKですか?
0271nobodyさん
2005/10/01(土) 23:06:42ID:???fgetcsv()はファイルの終端に達した場合を含み、 エラー時にFALSEを返します。
0273nobodyさん
2005/10/02(日) 00:03:36ID:???PHPについてこの後はどのようなことをして勉強をすれば良いのでしょうか?
0274nobodyさん
2005/10/02(日) 00:21:46ID:???一度自分で実際に作ってみて、
問題にぶつかってからいろいろ考えればいいじゃない。
勉強するだけじゃスキルは身に付かないよ
0276nobodyさん
2005/10/02(日) 01:25:17ID:???a.phpのプロセスでロック掛けている時はb.phpのプロセスでもロック掛かっていますでしょうか?
0277nobodyさん
2005/10/02(日) 01:48:20ID:???なるほど、ありがとうございます。
実際に何かを作る場合、リファレンスがあると便利なので買おうと思うのですが
逆引き代全とポケットリファレンスとではどちらの方が初心者向けでしょうか?
0278nobodyさん
2005/10/02(日) 01:51:59ID:???アイモード(携帯全部?)にはクッキーは効きませんよね?
携帯用としてクッキーに変わるようなものはありますでしょうか?
0280nobodyさん
2005/10/02(日) 02:15:27ID:???0281nobodyさん
2005/10/02(日) 02:21:13ID:???http://ns1.php.gr.jp/pipermail/php-users/2002-February/005377.html
あとはGoogleや本でも手当たりしだいでも立ち読みして調べろ。
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:???>>280
レス有難うございます。
phpのチャットなんでここに書きましたがスレ違いの様な…
hiddenで構いませんので教えて下さい
もしくはヒントを!
0286nobodyさん
2005/10/02(日) 08:08:27ID:???0288nobodyさん
2005/10/02(日) 08:58:15ID:???<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";
?>
こんな感じかな?
0290nobodyさん
2005/10/02(日) 09:41:40ID:???0291nobodyさん
2005/10/02(日) 09:55:16ID:???http://php.s3.to/chat/schat.php
ソース
http://php.s3.to/chat/schat.php.txt
0293nobodyさん
2005/10/02(日) 18:12:55ID:???いろいろ調べたのですがよくわかりません。
ヒントを下さい、お願いします。
0294nobodyさん
2005/10/02(日) 18:36:20ID:???予め決めておいた特殊な文字列 (特定界隈で特殊タグなどと呼ばれているもの)を
許可したい "一部のタグ" に変換するとか、一旦全ての文字列を HTML エンティティ
関数に通してから "一部のタグ" に置き換え直すとか、という風に出来ん?
0297nobodyさん
2005/10/02(日) 21:02:32ID:KeoPF5wsこれって書き方間違っていませんよね?
どうしても
Fatal error: Call to undefined function: imagetypes() in ・・・・
と出てしまいます。
0298nobodyさん
2005/10/02(日) 21:06:33ID:???0299nobodyさん
2005/10/02(日) 21:11:28ID:KeoPF5ws0300nobodyさん
2005/10/02(日) 23:29:21ID:???0301nobodyさん
2005/10/03(月) 02:46:03ID:???ソートするためには大小比較をしなければならないのだけど、
オブジェクトの大小比較って定義されてたっけか。
マニュアル15章の、比較演算子の項を見ると
オブジェクト同士の比較はできないことになってるから
偶発的なものと考えていいんじゃないかな。
本来ならエラーになってしかるべき手法だと思う。
そこには比較には配列形式でと書いてあるから、
たまたまそんな挙動になってるんじゃないかと推測。
0302283
2005/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の順に正しく比較されていて、どうも偶発的ってよりも、意図的に比較してるような感じです。
プロパティが参照だったらどう比較するんだろう?
ずいぶん余計なお世話な挙動ですね。エラーだしてくれたほうがましなのに。
まあマニュアルにものってないようだから、変な比較はしないのが吉ってことかな。
0305nobodyさん
2005/10/03(月) 08:38:22ID:???0307nobodyさん
2005/10/03(月) 10:39:56ID:UqfVmxKvPHPはHTMLソースの中に書き込む形で書いてくらしいのですが
これって右クリックのソース見るで、<? ?>の部分を見たらどのようにPHPで書いたのか丸見えということはないでしょうか。
まさかとは思うのですが。何かユーザからは見えないようになってたりしますよね。
0308nobodyさん
2005/10/03(月) 10:57:27ID:???まずはPHPを始めてから聞いてください
0311307
2005/10/03(月) 11:23:23ID:UqfVmxKv見えないということで安心しました。丸見えってなんかやですもんね。
HTMLの中に一緒に書いたら見えるんじゃないのかと思ったのですが、やっぱり見えないようになってるんですね。
>PHPは鯖側で実行されるつーことをまず理解しましょう。
どこかに書いてありました。JavaScriptはユーザ側で実行されて、PHPはサーバ側で実行されると。
同じスクリプト言語でも仕組みが違うと。
なんか読んだことがあるのですが、この知識からPHPのソースは見えないの解を導き出すことはできませんでした。残念。
確かJavaScriptはソース丸見えでしたよね。
ということは、ユーザ側で実行するスクリプト=見える
サーバ側で実行するスクリプト=見えない
の図式がなりたちますね。
でもなんでサーバ側で実行すると見えなくなるんだろうか。
サーバ側で実行した結果をブラウザに返すからかな。
だからブラウザ側では帰ってきた結果しか見ることができない。ゆえにソース見えない。
と推理したのですが、あってるでしょうか。
0312nobodyさん
2005/10/03(月) 11:29:15ID:???>サーバ側で実行した結果をブラウザに返すからかな。
そだね。
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:???関数に渡した時点では、どちらもアドレスが渡されており、実行速度に差はなく、違ってくるのはその値が変更される時で、値渡しの場合に、関数内で変更された値が、関数内のローカル変数にコピーされるよう。つまり、値を変更しない関数ならば、値渡しと参照渡しの差はない。
0316nobodyさん
2005/10/03(月) 12:32:08ID:???参照で返すってどういうこと
引数に渡す変数には値渡しとか参照渡しとかあるけど
実際にやってみればわかるけどreturn & $aaa;でエラーがでる
0317314
2005/10/03(月) 12:47:03ID:???すみません、とんだ勘違いなコード書いてました。
呼び出す方で
$aaa = & bbb();
とやるのと、
function & bbb() {
}
とやるのと、もしくは両方&をつける場合の違いについてでした・・・
あと、自分はCがわからないので、ちょっとイメージがつきにくいのですが、違いは全くないということなのでしょうか?
よく$x = new class()は$x = & new class()と書くほうがいいというのとはまた別の話ということなのでしょうか?
0318nobodyさん
2005/10/03(月) 12:54:34ID:???後者のやり方でやってみたのですが、属性が必要なタグ(font color=〜等)の場合は
どうすればよいのでしょうか?
0320nobodyさん
2005/10/03(月) 14:09:15ID:???http://www.php.net/manual/ja/language.references.return.php
0321294
2005/10/03(月) 14:44:59ID:???俺としては、前者 + 正規表現 (最小限ならば 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;
?>
0322294
2005/10/03(月) 14:49:56ID:???echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("&lt;","&gt;","&#64;"),stripslashes($str)));
0323314
2005/10/03(月) 15:14:40ID:???なるほど。両方に&をつけなければいけないのですね。了解です。
関数の中でnewしてるんで、3箇所に&を書かないといけないんですね。
しかし、そうなるとやっかいです。
クライアントコードの側にも&をつけなければならないのはドキュメントで明示しておくしか方法はないということなのでしょうか?
0324nobodyさん
2005/10/03(月) 15:40:51ID:yF4zapvkプログラミングは初心者で、htmlがちょっとできる程度なので、基本的な疑問があります。
メールフォームなどを作っているのですが、いくつかのテキストボックスなどを作成するときに、
エラーチェックのプログラムなどは、なにも考えずにテキストボックスの項目の順番に記述すればいいのですか?
0326nobodyさん
2005/10/03(月) 16:41:05ID:???その場合、呼び出し側で参照つけ忘れても大丈夫。
むしろ最初からその3つとも&をつけなくても無問題。
>>324
テキストボックスの順番自体に何か意味があるならそれなりに考える必要あるんだろうが、そうでないなら別に気にしなくてよし。
とりあえず状況詳しく書かないと、何でそんな疑問がわいたのかすら想像つかないんだけど。
0328nobodyさん
2005/10/03(月) 17:16:50ID:7v8t3+9llogin.php にてログイン認証し、その際にニックネームをセッション登録しています。
認証後にトップページ index.php に戻り、トップページではサイドメニュー menu.phpを include にて読み込んでいます。
このサイドメニューでニックネームを表示させたいのですが、うまく取得してくれません。
index.php の方で呼び出すときちんと表示してくれるのですが。
原因が分かる方、教えてください。
0331nobodyさん
2005/10/03(月) 19:45:28ID:???0332328
2005/10/03(月) 20:44:44ID:???index は呼び出せましたが、menu のほうだと呼び出せませんでした。
なんでだろう…。
0333328
2005/10/03(月) 22:29:49ID:???menu.php に直接アクセスすると表示されるのですが
include(requireも試した)で読み込んだ時は表示されません。
原因が分かる人いませんかー?! orz
0334nobodyさん
2005/10/03(月) 22:36:36ID:???include のパスをURLで指定していました。
絶対パスにしたところ、きちんと表示されるようになりました。
別のサイトと認識されてしまったのでしょうか…。
何にせよ、ご迷惑おかけしました。
0335nobodyさん
2005/10/03(月) 22:39:14ID:???0336nobodyさん
2005/10/03(月) 22:41:05ID:???単純化するとこんな感じになると思うけど問題なく動くよ。
って、再読込したらそんなオチかよ。。。
テストスクリプトまで書いたので送信ポチっとな。
1.php - セッションの設定、 2.php - includeする、 3.php - includeされる
1.php
session_start();
$_SESSION['name']='hoge';
<a href="2.php">link</a>
2.php
include("3.php");
3.php
session_start(); // 2.phpでsession_start(); しても動作する
echo $_SESSION['name'];
0338nobodyさん
2005/10/03(月) 22:51:58ID:+uOrbyCWメモリが足りなくなってプログラムが途中で止まってしまいます。
unsetを使っても、$var = NULLとしても
全然メモリが解放されないんですがどのようにしたら良いでしょうか?
0341nobodyさん
2005/10/03(月) 23:38:39ID:+uOrbyCWPEARのMail.phpを使って、
SMTPでメールを送っている時にメモリがみるみる内になくなっていきます。
一万通くらい送ると250MBくらい減ります。
require( "Mail.php" );
$param["host"] = "127.0.0.1";
$mail = Mail::factory('smtp', $param);
for( $i = 0 ; $i <= 10000 ; $i++ ){
$mail->send("[email protected]", $head, $body);
}
このような感じになります。
送信の後にunset($mail);としてみたり、
$mail = NULL;としてもメモリが解放される様子はありません。
分かる人助けてください!
0342nobodyさん
2005/10/03(月) 23:41:34ID:+uOrbyCWなるほど。メモリ上限は設定していませんが
設定してやってみます。
プログラムではメモリ解放できないですかね。
0343nobodyさん
2005/10/03(月) 23:47:31ID:???0344nobodyさん
2005/10/03(月) 23:49:26ID:+uOrbyCW登録してる人だけに送ってます
0345nobodyさん
2005/10/03(月) 23:52:51ID:???0346nobodyさん
2005/10/04(火) 00:08:26ID:???そこに専用URLが載ってたりするのありますよね。
あれの仕組みってPHPで出来るんですか?教えてくだされ。
0347軟式PHP
2005/10/04(火) 00:21:10ID:???0349nobodyさん
2005/10/04(火) 08:15:26ID:???0350nobodyさん
2005/10/04(火) 08:39:28ID:???0351346
2005/10/04(火) 11:05:37ID:???こんな便利な機能があることに驚きです。
しかし、xreaでは使えないようでした…。
残念ですが諦めます。
0354nobodyさん
2005/10/04(火) 11:53:41ID:???0355nobodyさん
2005/10/04(火) 11:59:09ID:???最近、XREAで使ってるドメインのメアドで送受信したメールが
届かないことがあるな〜と思ったら、やっぱりトラブル発生してんの!?
でも公式サイトの障害情報見ても何も載ってないんだが・・・
0356nobodyさん
2005/10/04(火) 12:02:52ID:JKocPbjBcopyはファイル全体をコピーする。
renameはディレクトリ構造とファイル名のみを書き換える。
検証するまでもない。
0357nobodyさん
2005/10/04(火) 12:32:57ID:oyC3QmoSありが�d
0358nobodyさん
2005/10/04(火) 13:09:49ID:ogSOlTW8Apacheをインストールするところなんだけど
インストールする際に出てくるウィザードに
Network Domain, Server Name, Administrator's Email Address
の3項目を入力する画面が出てきた。
Email Addressは適当なものを入れるとして
Network Domain, とServer Nameは適当に決めちゃっていいもんなんでしょうか。
XP Homeのローカルで実験するんだから
Network Domainは、C:\ でいいのかな。
それとも適当に、test.com とか書いちゃっていいんですかね。
Server Nameなんかは適当にPCがdynabookだからdynabookとか入れとこうかと思ってるのですが
これでいいんでしょうか。
0359nobodyさん
2005/10/04(火) 13:13:30ID:???ローカルなんだから適当なドメインを考えて入れればいい
サーバーネームは自分のマシン名でも入れとけ
どうせ、アクセスするときの指定はlocalhostか127.0.0.1でやるんだからよ
0360358
2005/10/04(火) 13:30:08ID:ogSOlTW8>C:\がドメインだと思うか?
いや、思いません。思わないけど。ローカルのアドレスを入れとかないと、PHPのコードを実行するときに困るんじゃないかなと
ちょっと思っちゃった。
ドメインもサーバネームも適当でOKということなので安心しました。
アクセスはlocalhostか127.0.0.1で指定するからこの画面で設定しなくてもいいんですね。
どうもありがとうございます。助かりました。
■ このスレッドは過去ログ倉庫に格納されています