【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/
0223nobodyさん
2005/09/30(金) 20:31:23ID:???http://php.s3.to/man/function.eregi.html
マニュアル
「/」イラネ
で.*?じゃなくて(.*)?
最低エラーメッセージくらい書きたまい。
0225nobodyさん
2005/09/30(金) 20:41:59ID:???ありがとうございます。エラーは解決できました。
でも、【<li>aaaaaaaa</li>】だけとりたいんです、
最短マッチができません。
0227nobodyさん
2005/09/30(金) 21:26:13ID:???正規表現が苦手なら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:???何がやりたいのかイマイチ分からんが・・・
<?php
echo '<br /'>',
str_shuffle('123456789'),
'<br /'>', '<br /'>',
str_shuffle('abcdefghijklmnopqrstuvwxyz');
?>
0230nobodyさん
2005/09/30(金) 22:44:23ID:???ありがとうございます。
str_shuffle関数は下記のようにまずシャッフルして、それから出力といった使い方はできないんですね(´・ω・`)
<?php
$alpha = "abcdefghijklmnopqrstuvwxyz";
str_shuffle($alpha);
echo ($alpha);
?>
0231nobodyさん
2005/09/30(金) 23:02:58ID:???0235nobodyさん
2005/09/30(金) 23:17:43ID:???ありがとうございます。
小数点以下を切り捨てる場合はどのようにすれば良いんでしょう?
$total += (filesize($afn)/1024);
こんな感じでやってるんですが
0236nobodyさん
2005/09/30(金) 23:29:36ID:???てか検索しろよ
0237nobodyさん
2005/09/30(金) 23:58:24ID:???あ、>>229は余計な'があったな(試してないのバレバレ・・・)。
str_shuffle()のマニュアルを読めば判ると思うが「適当に入れ替えた文字列を返す」だから、
$alpha=str_shuffle($alpha);
で済むのではないかと。
0239239
2005/10/01(土) 04:07:40ID:???$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>
を実行すると、
0240239
2005/10/01(土) 04:10:56ID:IQUyxXuW(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:???本にそって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です。よろしくお願いします。
0243nobodyさん
2005/10/01(土) 08:58:49ID:???正解。クッキーはHTTPヘッダの中にSet-Cookie: mycookie=239の形で埋め込まれる。
1行目でヘッダ以外のものを出力したのでPHPの中の人はヘッダが終了したと思っている。(output started 〜 p.php:1 の部分)
うちでは問題なく動作したよ。「 <?php」てな感じにスペース1つを追加したら同じwarningを出せたけども。
0244nobodyさん
2005/10/01(土) 11:13:05ID:???ワロス
0245nobodyさん
2005/10/01(土) 12:22:33ID:???0246nobodyさん
2005/10/01(土) 12:50:33ID:???提示された行付近をチェックしたのですが、エラーの原因がサッパリわかりません。
ごく普通の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:???Parse error: parse error, unexpected '}' in
てな感じで、何が不適切なのかもでてるでしょ?それも参考にしる
0250246
2005/10/01(土) 13:04:54ID:???試しに、switchを丸ごとコメントアウトして実行するとエラーが出ませんでした。
一体全体何が・・・
eclipseでやってるので、括弧の対応不一致とかも無いです
0251246
2005/10/01(土) 13:05:51ID:???それが出ればいいんですが、
Parse error: parse error in ファイル名 on line 63
しかでないんです・・・
0252nobodyさん
2005/10/01(土) 13:09:02ID:???PHPのアクセラレータかオプティマイザの所為かもしれない。
phpinfo()でインストールされてないか確認。
0254nobodyさん
2005/10/01(土) 14:44:59ID:???> サーバーにアップして実行すると、Parse errorが出たので、
これってローカルで試した時はエラー無しでアップしたらエラー出たって意味か?
0256246
2005/10/01(土) 16:18:25ID:???いえ、書いてあるそのままの意味です
ローカルで実行する環境作ってないので
で、自己解決しました。
上に抜き出したソースは空文字列にしてますが、
実際には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また、WebサーバとしてApacheを用いた場合とIISを用いた場合ではPHPの挙動にどのような違いが出るのか教えていただけないでしょうか?
0260nobodyさん
2005/10/01(土) 17:52:22ID:???ApacheのSAPIとIISのISAPIは似たような技術だけど、
ApacheのDSOってのは全然ジャンルが違う。
そもそもそんな比較が出てくる時点で
「CGIとPHPは違うの?」並に理解不足と思われ。
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;
?>
■ このスレッドは過去ログ倉庫に格納されています