【PHP】下らねぇ質問はここに書き込みやがれpart15
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/01/14(土) 20:06:11ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
過去スレは>>2
FAQは>>3
0881nobodyさん
2006/02/03(金) 10:36:16ID:???GETとPOSTとSESSION以外で別ページに変数渡す方法ないでしょうか?
やりたいことは別PHPプログラムへ変数を渡すことです、
GETとPOSTはセキュリティの関係上使用したくありません、
変数を渡されるPHPプログラムは全く弄ることができないので、
SESSIONでも難しい状態です。
宜しくお願いします。
0882nobodyさん
2006/02/03(金) 10:48:39ID:???0883nobodyさん
2006/02/03(金) 11:14:29ID:???wrapper(1, 2, 3);
function wrapper() {
$args = func_get_args();
//return original($args);
//これでは original(1, 2, 3) ではなく original(array(1, 2, 3))
}
python かなんかだと配列渡すと勝手に展開してくれた記憶が。
同じようなことをやりたい。
0885nobodyさん
2006/02/03(金) 12:13:10ID:???渡されるプログラムをいじれないなら、渡されるプログラムが
受け取れる方法を確認するのが先じゃないのか?
つか渡されることを前提に作られていないなら get, post 以外は
無理だろ、ふつー。
0890nobodyさん
2006/02/03(金) 12:26:45ID:???こんな分割の仕方をする人がそのままの感覚でクラスを使ったら
めちゃめちゃメモリ食いのプログラムが出来上がる予感
0891nobodyさん
2006/02/03(金) 12:32:38ID:???0892nobodyさん
2006/02/03(金) 12:36:20ID:???0894nobodyさん
2006/02/03(金) 14:39:16ID:???今時そんな貧乏的なプログラミングする必要あるの?
どんな分割しようがこの時代において大差ないだろ。
そんなに、負荷が気になるなら eAccelerator でも使ってコンパイルすりゃいいじゃん。
そしたら分割がどうのなんてことによる差なんて殆どなくなるから。
0895nobodyさん
2006/02/03(金) 17:23:33ID:???と
$a =& $b;
って一緒ですか?
0897nobodyさん
2006/02/03(金) 17:57:08ID:???あの単なるラベルにしかなってないレベルの機能分けでクラスにしたら
大半の変数をメンバ変数に抱えてグローバルで持ち回る羽目になると思うし、
しかもそれをいちいちオブジェクトを通した間接参照することになる。
そういう状態になると、PHPってメモリを無駄に馬鹿食いする上に激遅になるんで
ホントにそのためだけにアクセラレーターなどを導入する羽目になりかねないと思う。
0898nobodyさん
2006/02/03(金) 17:58:27ID:???0899nobodyさん
2006/02/03(金) 19:47:52ID:QzQwZT7Xrequire_once "Auth/Auth.php";
function loginFunction()
{
/**
* HTML出力は、作成するアプリケーションに合うように、
* 変更してください。
*/
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<input type=\"text\" name=\"username\">";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
}
$dsn = "mysql://user:password@localhost/database";
$a = new Auth("DB", $dsn, "loginFunction");
$a->start();
if ($a->getAuth()) {
/**
* サイトの出力はここ。
*/
}
動かないんだが、
テーブル指定してないのにつながるの?
教えて下さい。
0900nobodyさん
2006/02/03(金) 19:52:35ID:???エスパーさんお呼びですよ
0902nobodyさん
2006/02/03(金) 20:06:13ID:???答えは出てるんじゃまいか。
0903nobodyさん
2006/02/03(金) 20:30:19ID:???それ配布するつもりか?
プログラム言語触ったことないやつにはecho "";なんて意味不明だ。
別ファイルにhtml部分は書き出したほうがいいんじゃないか?
0904nobodyさん
2006/02/03(金) 20:56:05ID:???そういうことか、さんくす
あるところに=&を参照代入の演算子だって書いてあったから=&で1つなのかと思った
0906nobodyさん
2006/02/03(金) 22:40:41ID:???mb_ereg(preg_quote($a),"あと");
で
$a="あ";
だと真で
$a="あと";
だと偽
になるんですが両方とも真にしたいのです。原因わかる方いますでしょうか?
0908nobodyさん
2006/02/04(土) 01:09:37ID:???再現しない。普通にどっちも真になった。
SJISだ、と言ってるが、実はソースがSJISなだけでphp.iniの設定はSJISじゃなかったりしないか?
0909nobodyさん
2006/02/04(土) 05:58:57ID:???あれま、そうなんですか。よく確認してませんが、php.iniではEUCかもしれません。今起きたばかりなんであとにしますが、php.iniをいじれないのでme_internal_encoding()、ini_set()あたりでいけますかね?
0910nobodyさん
2006/02/04(土) 06:00:01ID:???・共通部分を抜き出した配列を作り、重複するキーと値のペアを削除したい。
$array1 = array( 'a'=>1, 'b'=>2, 'c'=>3 )
$array2 = array( 'a'=>1, 'b'=>3, 'c'=>5 )
↓
$array1 = array( 'b'=>2, 'c'=>3 )
$array2 = array( 'b'=>3, 'c'=>5 )
$result = array( 'a'=>1 )
$result = array_intersect_assoc($array1, $array2 [, array ...])
マニュアルを調べて重複する物を取り出す方法は分かったけど、重複してるのを消すには各配列毎にunsetしなきゃダメかな。
もっとスマートな方法があれば教えてください。
0911906
2006/02/04(土) 08:30:29ID:???でできました。ありがとうございました。
0912nobodyさん
2006/02/04(土) 09:10:21ID:???俺、疲れてるんでしょうか?
0914nobodyさん
2006/02/04(土) 10:09:10ID:???複数の配列間で共通の物を抜き出す用途には使えないんじゃないかな。
0915nobodyさん
2006/02/04(土) 10:17:19ID:???array_diff()だな。
0916nobodyさん
2006/02/04(土) 10:32:01ID:???ってなってるから
>>910の例に則ると、array_diff($array1, $array2) の結果は array( 'b'=>2 ) になって、
欲しい結果として例示してる $result と 各$arrayには当て嵌まらなく・・ orz
0917nobodyさん
2006/02/04(土) 10:38:25ID:???あいう|aabbccdd|1234
えおか|eeffgg|4321567
等100件くらいのデータを登録したいのですが、10件ほどしか登録できません。
どうしたらいいでしょうか?
$text = "abc.txt";
$mi = file($text);
$i = 1;
foreach($mi as $val){
$jon = explode('|', $val);
mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')");
$i++;
}
0918nobodyさん
2006/02/04(土) 10:47:46ID:???0919nobodyさん
2006/02/04(土) 10:51:55ID:???$array1と$array2の共通部分が$resultならそれを各配列から除けばいい。
$array1 = array_diff_assoc($array1, $result);
多分こんな感じ。
0921nobodyさん
2006/02/04(土) 11:02:10ID:???あぁ、なるほど・・勘違いして妙な事言ってすみません。
動作チェックをして意図した通りに動く事を確認しました。ありがとうございます
0922nobodyさん
2006/02/04(土) 11:15:04ID:???echoはちゃんと100件ほど表示されるんですよ。
navicat使っとく事にします。
ありがとうございました。
0923nobodyさん
2006/02/04(土) 11:53:48ID:???mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')") or die(mysql_error());
0924nobodyさん
2006/02/04(土) 19:36:20ID:???PEAR が ペアって読むって TV 見てて初めて気付いた。。
てゆーか梨だったと今更気付いたしorz
0926nobodyさん
2006/02/04(土) 20:55:59ID:???0927nobodyさん
2006/02/04(土) 20:57:52ID:???0928nobodyさん
2006/02/04(土) 21:07:39ID:???日本語読みだとペアー
0929nobodyさん
2006/02/04(土) 22:13:32ID:???0930nobodyさん
2006/02/05(日) 03:06:13ID:???当方WindowsでPHPをコーディングしているのですが、仕事場ならまだしも自宅でコーディングする時に
あの登録されていない拡張子のアイコンがとても気になります。Javaとかは良いアイコンがあったので
変更しているのですが、PHPファイルの良いアイコンがなかなか見つかりません。
誰か良いアイコンご存じないですか?
0931nobodyさん
2006/02/05(日) 03:07:29ID:???これ使ってる。
0933930
2006/02/05(日) 03:59:17ID:???ありがとうございます!
こんな素敵なアイコンがあったのか・・・
やる気が出てきたです!
しかしアイコンとかちょっとかえるだけで何か凄い新鮮な気分だ
0934nobodyさん
2006/02/05(日) 04:06:25ID:???といったフォーマットの文字列から、
1〜4文字目と8〜9文字目を抜き出して
06 02/31
というフォーマットに変換にしたいんですが、どうやるのが手短ですか?
自分がやるとsubstrとか何度も使いまくってエライことになりそうなんですが…。
0937nobodyさん
2006/02/05(日) 04:50:40ID:uUJqicme書き足していくと、もとある文章の上に書き足されてしまいます。
もとある文章の下に加えたい場合はどのような操作をすればよいのでしょうか?
0938nobodyさん
2006/02/05(日) 05:12:58ID:???<?
$logpath = "hoge.txt";
$lines = @file($logpath);
$fp = @fopen($logpath , "w");
flock($fp, LOCK_EX);
$lines[] = "追加したい文字列<br>\n";
foreach($lines as $value) fputs($fp, $value);
flock($fp, LOCK_UN);
fclose($fp);
/*確認*/
$lines = @file($logpath);
foreach($lines as $value) print($value);
?>
こんなんでどうでしょう
0941938
2006/02/05(日) 05:17:52ID:???勉強になりますた
0942nobodyさん
2006/02/05(日) 05:23:48ID:???0943nobodyさん
2006/02/05(日) 05:31:54ID:???ってことは、無限ループphpを作って実行した場合には、
そのphpを終了することはできないのでしょうか?
終了するためにはApache再起動が必要になるんですか?
0944nobodyさん
2006/02/05(日) 05:41:50ID:???そこのあたりあんまり詳しくないけど多分そうだと思う。
しかもApache2からはタスクバーにApacheアイコンあるでしょ?
それからはApacheの再起動とか出来なくなっちゃう。
マイコンからサービスで止めなきゃダメポ
0945nobodyさん
2006/02/05(日) 05:51:49ID:???0946nobodyさん
2006/02/05(日) 05:57:28ID:???出来るならどっかにあげてくれ
0947943
2006/02/05(日) 05:58:55ID:???ということは、例えば共有レンタルサーバでスクリプトを無限ループさせちゃったら、
サーバ管理者しか止められないということなんでしょうか(´・ω・`)
0948945
2006/02/05(日) 06:01:16ID:???空白改行とコメント含んでます。貼るには長いですかね。。
はれる場所さがしちゅ
0949945
2006/02/05(日) 06:20:23ID:???すごく初歩的な質問になりますけれど、継承というのはこういう使い方でおかしくないでしょうか?
質問の仕方が悪いかもしれませんが、どう聞くべきかむずかし。。
親クラスに↓こんなメソッドがある場合、
//レコード取得
public function Set_Data($result, $row) {
mysql_data_seek($result, $row);
return mysql_fetch_array($result);
}
子クラスでそれを使いたい場合は↓のようにしている。
//結果取得
public function Setdata($row=0) {
$rs= parent::Set_Data($this->result, $row);
$this->setBbsdate($rs["bbsdate"]);
$this->setBbsid($rs["bbsid"]);
$this->setUsername($rs["username"]);
$this->setTitle($rs["title"]);
$this->setBody($rs["body"]);
$this->setMailaddress($rs["mailaddress"]);
$this->setWebaddress($rs["webaddress"]);
$this->setDeletekey($rs["deletekey"]);
$this->setRemotehost($rs["remotehost"]);
}
0950nobodyさん
2006/02/05(日) 06:26:14ID:???普通、子クラスから親クラスのメソッド呼び出すときも
$this->Set_Data(); ってやると思うぞ。
0952949
2006/02/05(日) 06:34:24ID:???ありがとうございます。
例えば、こんな親のコンストラクタがある場合、
//親コンストラクタ
public function __construct() {
$this->constr = mysql_connect('*******', '****', '*******');
$this->dbname = '******';
mysql_select_db($this->dbname);
}
子のコンストラクタから親のコンストラクタを使う場合、↓みたいにしなきゃいけなかったので
親の使うときは全部こうなのかと勝手に思い込んでました。
//コンストラクタ
public function __construct() {
parent::__construct();
}
ご教授ありがとうございました。
0953nobodyさん
2006/02/05(日) 09:10:19ID:iOU2xOeQformのtextareaタグで以下のデータを入力します。
aaa
bbb
ccc
スクリプトで、
$arr = explode("\n",$data)
のように、改行コードで配列に格納し、
if ($arr[0] == "aaa")
で比較しても条件にマッチしません。
var_dump($arr[0])したところ、4文字になっていました。
どういうことなのでしょうか?
0954nobodyさん
2006/02/05(日) 09:52:04ID:???さすれば道は開けよう
0955nobodyさん
2006/02/05(日) 10:23:24ID:???0956nobodyさん
2006/02/05(日) 10:34:00ID:???0957nobodyさん
2006/02/05(日) 10:45:22ID:???str_replace("\r","\n",$text);
str_replace("\r\n","\n",$text);
って常にやっとけばいいのかな?
0958nobodyさん
2006/02/05(日) 11:08:26ID:???\r\n \n \rの3パターンがある。(\n\rは無い)
それぞれの場合にその処理をするとどうなるか考えてみると、おのずと答えがでる。
0959nobodyさん
2006/02/05(日) 11:31:00ID:???0962nobodyさん
2006/02/05(日) 13:38:58ID:???| ̄| /> _ _ / _| | | />
| |// \ \ __ / / \ \. | |//
| \ \ \/ \/ / 〉 ヽ. | \
| |\ \ \ /\ / | ̄ ̄ ノ | |\ \
/::::/'"  ̄ヾi /  ̄ ̄ \ /::::/'" ̄ ̄ヾi /  ̄ ヽ
|:::::::| ,,,,,_ ,,,,,,| | ^ ^ | |:::::::| ,,,,,_ ,,,,,,| | ^ ^ |
|r-==( 。);( 。) | >ノ(、_, )ヽ、.| |r-==( 。);( 。) | >ノ(、_, )ヽ、.|
( ヽ :::__)..:: } ! ! -=ニ=- ノ ! ( ヽ :::__)..:: } ! ! -=ニ=- ノ !
ヽ ー== ; \ `ニニ´ / ヽ ー== ; \ `ニニ´ /
\___ !  ̄ ̄ \___ !  ̄ ̄ ̄
0963nobodyさん
2006/02/05(日) 14:37:05ID:6eXZDRj2例えば、2番目のテーブルの3行目の左から4個目のセルの値を取り出す方法。
やっぱり、文字列処理をしないといけないのでしょうか?
0964nobodyさん
2006/02/05(日) 14:38:11ID:???0966nobodyさん
2006/02/05(日) 15:11:02ID:???PHPにはPerl互換の正規表現を扱うpreg系ライブラリがあるから
それ使ってればそれほど違いを意識しないで済むよ。
若干の仕様差はあるけど、pregのマニュアルの中で明記されてる。
Perl互換でないereg系は要するにPerl拡張の入ってない標準的な正規表現です。
0967944
2006/02/05(日) 15:57:34ID:???今の俺の理解力ではそういうことになる。
一応そこに確認してみたらどうだろう?
で、結果が解ったら俺に教えてくれ('A`)
0968nobodyさん
2006/02/05(日) 17:15:02ID:???共有サーバだったら、PHPなりPerlなりの実行時間には制限が設けられていると思う。
1ユーザがリソースを食い尽くさないようにね。
なので、その制限時間を越えたら、問答無用で強制終了されると思われ。
0969nobodyさん
2006/02/05(日) 17:35:00ID:???0970nobodyさん
2006/02/05(日) 17:35:04ID:???ActiveXを組み合わせる以外に方法はありませんか?
0971nobodyさん
2006/02/05(日) 17:52:09ID:???トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。
[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。
これの対処はどのようにすればいいでしょうか?
0972nobodyさん
2006/02/05(日) 17:54:39ID:???CGIだから無限ループが問題にならないということはないよ。
リソース食えば同居してるApacheの足を引っ張るから。
普通のまっとうな管理者ならリソースの制限をしてるので、
ユーザの過失で無限ループに陥っても、管理者が手動で止めるまで際限なく
ループが続くということはない。Apahce+PHP(サーバモジュール/CGI/suExec等)の
組み合わせにもよるので、制限や監視のしかたにも色々とあるが
そういった用意は管理者がしてるものなので「管理者が止めないとだめ」というのは正しい。
制限、監視をしてても、それらは一時的にはサービスの提供に支障が出るので、
テスト自体を共有サーバでしてるような香具師は注意・警告の上、
何度も繰り返すようなら契約の解除ぐらいはやります。他の人に迷惑だからね。
0973nobodyさん
2006/02/05(日) 18:03:33ID:???>トップーページと入力すると
というのはURLに入力という意味で
『http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。
それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。
情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。
0976nobodyさん
2006/02/05(日) 18:35:09ID:???↑の説明って、マニュアルのどこにありますか?
レス数が950を超えています。1000を超えると書き込みができなくなります。