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

【PHP】くだらねぇ質問はここに書き込みやがれpart6

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2005/06/05(日) 13:17:11ID:xiGnsMS4
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/
0002nobodyさん2005/06/05(日) 13:34:35ID:???
とりあえず2
0003nobodyさん2005/06/05(日) 13:47:42ID:D/68BBaZ
俺英語勉強してたとき、アメヤフーのゲームにはまっててさ、
テキサスホールデムっていうの?
やってたわけ

で"scream(叫ぶ)"って単語覚えたばっかで
ゲームのチャットで"I scream 'icecream'!"ってやったったわけよ

そしてらさ、ゲームから追い出されてやんのwwwww
青春の1ページだっぺ?
0004nobodyさん2005/06/05(日) 13:51:02ID:???
PHP3と4と5ではどれが一番高速で安定しててセキュアですか?
0005nobodyさん2005/06/05(日) 13:54:48ID:???
>>4
勿論、5。

ただし、5.1になると、更に速度が2倍にまでなるらしい。
0006nobodyさん2005/06/05(日) 21:55:36ID:???
5ってPHPAみたいなのあったっけ?

無けりゃ4
0007nobodyさん2005/06/05(日) 22:10:24ID:???
PHP5のオブジェクト定数を試してるんですけど、以下の動作は仕様ですか?

class test
{
 const ERROR = -1;

 private result = self::ERROR;   //エラー

public function __construct()
 {
  result = self::ERROR;       //こっちは問題なし
 }
}
0008nobodyさん2005/06/06(月) 06:06:24ID:???
仕様くさい。test::ERRORならいけるのに。将来的になんとかなったらいいね。
self::使うなら当面はコンストラクタで初期化の方向性で。
ちなみに$ついてなかったりするけど2番目のresultは$this->resultだよね?
いやローカル変数だったらいいんだけどさ。
000972005/06/06(月) 08:38:11ID:???
>>8 レスサンクスです。
あ、ほんとだ。クラス名::定数名だといけますね。気がつかなかった。
わけわからん仕様だ。。。

>2番目のresultは$this->resultだよね?
です。上のをコピった時にミスりました。はずぃ。


0010nobodyさん2005/06/06(月) 12:48:54ID:???
前スレの6000あたりに書いた者ですが、どうしても出来ません。
<?php
$str = '123ま147府ahf依田ま950まf';
print mb_ereg_replace('ま', 'み', $str);
?>
これで全ての ま が み になるはずですが、そのまま$strが出力されてしまいます。
どこが間違っていますか?
Apache2.053(WinXP/Gentoo) + PHP5.04
0011nobodyさん2005/06/06(月) 14:15:04ID:???
>>10
ヒント
mb_regex_encoding
0012nobodyさん2005/06/06(月) 14:27:01ID:???
PEARのスレもあるのですが、余りにも下らない?質問なのでこちらで質問いたします。
PEARのDB/Pagerなのですが、良く分かりません。(バージョン0.7)

ソースコードを見ると、
require_once 'DB/Pager.php';
$db = DB::connect('your DSN string');
$from = 0;
$limit = 10; // The number of results per page
$maxpages = 10; // The number of pages for displaying in the pager (optional)
$res = $db->limitQuery($sql, $from, $limit);
$nrows = 0; // Alternative you could use $res->numRows()
while ($row = $res->fetchrow()) {
$nrows++;
}
$data = DB_Pager::getData($from, $limit, $nrows, $maxpages);

このようなサンプル?が書かれていますが、動作いたしません。

結果的にはgetDataに何件目からのデータか、何件取得するのか、全レコード数は幾つかを
渡してあげれば良い?という事はなんとかわかりました。

しかし、このサンプル?はこれでいいのでしょうか?
取得するSQL分は無いし、最初にSQLを作ったとしても、次にはLIMITされてしまい、
常に1ページ分のデータしか作成されないような気が・・・

それと、DB/Pagerって結局はデータベースからデータは表示できない?
単純にページ数などを計算するだけなのでしょうか?
該当するページのデータぐらい自動で取って来てくれて配列などに格納されているという風に
イメージしていたのですが・・・
0013nobodyさん2005/06/06(月) 14:51:02ID:???
つ [ ttp://vulcanonet.com/soft/?pack=pager ]
0014122005/06/06(月) 16:22:01ID:???
>>13
とりあえず、バージョンが違いましたが、何とか表示させる事ができました。

ただ1つだけ不明な点があります。
教えていただいたサンプルを修正して表示すると、
ページ番号が全データ件数と1ページあたりの件数で算出された
全ページ番号が表示されます。

これを制御するのはgetDataの最後の引数である$maxpagesだと思うのですが、
build無いから呼び出されるgetDataには最後の引数を省略している為に、
全ページ番号が表示されていると思います。

これを制御するためにはどうしたらいいのでしょうか?
もう一度、getDataを呼び出して、そのときにmaxpagesを指定するのでしょうか?(2度手間?)
0015142005/06/06(月) 17:18:57ID:???
すいません。
更なる疑問が・・・

よーくソースコード見てみると、教えていただいたサンプルって、
全レコードを取得してからページャを作成している?

なんというか・・・凄くパフォーマンス悪そうですね・・・

getDataだけ使って後は独自にLIMITで必要な部分だけデータ取ってきた方が
良いような気がしてきました。
そうすれば、>>14で書いたようなmaxpagesの問題も解決しそうだし。
0016nobodyさん2005/06/06(月) 20:25:53ID:HIsAE+v7
すんません。
くだらねぇ質問かどうかさえよくわからないんですが、

ユニコード(ビッグエンディアン)で書いたテキストファイルを、
うまく読み込ませることって出来るんでしょうか?
mbstringでもダメだし・・・。

ご高配よろしくお願い申し上げます。
0017nobodyさん2005/06/07(火) 07:32:20ID:???
>>16
自分の環境ではできる
$text = mb_convert_encoding($text, "sjis", "utf-16be");
0018nobodyさん2005/06/07(火) 20:41:16ID:???
皆さんの周囲でPHPってどうですか?(あくまでも仕事として)

私の会社だと、ついにJavaプロジェクトが完全撤退になり、
Web系の仕事は.NETとPHPの2択になりました。

Javaの仕事が来ない訳じゃないのですが、会社として採算が合わないのが撤退の理由です。
私も、一時期Javaプロジェクトに居たのですが、なんともいえない状況でした。

一言でいうならば、収集がつかない。
色々な機能のモジュールが色々な所から出ているため、
プロジェクト毎に、同様の機能でも違ったモジュールをつかったりと
結局、過去にモジュール化した部品の再利用が出来ないために開発効率が上がらない。

そして、修正だ改善だと、モジュールのバージョンアップなども行い、もうバラバラ・・・
しかも赤字になるプロジェクトは殆どJava案件。

.NETやPHPは利益が薄くても赤字になる事は無いし、
PHPはそもそもの値段自体が安くても利益率は結構高い。
0019nobodyさん2005/06/07(火) 23:25:00ID:kfATXNgN
PHPなら、一人で数日もあればそれなりのものが作れたりするからなぁ。。。

>>18の会社がどの程度の規模の開発やってるのかにもよるけど。
0020nobodyさん2005/06/07(火) 23:41:21ID:???
>>18
>プロジェクト毎に、同様の機能でも違ったモジュールをつかったりと
>結局、過去にモジュール化した部品の再利用が出来ないために開発効率が上がらない。
>そして、修正だ改善だと、モジュールのバージョンアップなども行い、もうバラバラ・・・

そりゃ、単にお宅の会社のマネージャーが糞なだけ。
0021nobodyさん2005/06/08(水) 00:09:02ID:???
まぁ、PHPの方が割が良いのは事実だと思うがな。
0022nobodyさん2005/06/08(水) 10:07:16ID:???
メールのエンコードについて質問です。

DB(EUC-JP)の内容からメール本文を生成してます。
その中に「ア」や「梶vのような機種依存文字がある場合、
sjisにコンバートしてmb_send_mail()すると「?」になってしまいます。

UTF-8にすればイイとググッて得た知識を元にやってみたのですが
今度は空白になってしまいます。

$subject = "タイトル";
$body = base64_encode($text);
mb_language("uni");
mb_send_mail("hoge@example.com",$subject,$body,"From: hogehoge@example.com");

うまく変換できる方法をお教え下さい。

PHP Ver. 4.2.2
0023nobodyさん2005/06/08(水) 10:59:28ID:???
fooos.comみたいなプログラムって、どこに手に入りますか?
どう検索したら良いかでもいいので教えてください。
0024nobodyさん2005/06/08(水) 11:25:45ID:???
>>23
コワイ作りだな・・・
0025nobodyさん2005/06/08(水) 12:02:11ID:???
>>22
なぜに本文を base64 エンコードするんか判らんのだが。
普通に JIS に変換でいけると思う。
"EUC-JP" の部分は PHP ソースの文字コードに合わせてね。

$subject = "=?ISO-2022-JP?B?" . base64_encode(mb_convert_encoding($subject, "JIS", "EUC-JP")) . "?=";
$body = mb_convert_encoding($text, "JIS", "EUC-JP");
mb_language("ja");
mb_send_mail("hoge@example.com",$subject,$body,"From: hogehoge@example.com");
0026nobodyさん2005/06/08(水) 12:02:14ID:???
ここのカウンター広告ないし最高だよ。
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
0027252005/06/08(水) 13:02:49ID:???
>>22 >>25
ごめん。今確認したら「ア」はダメだった。「ア」ってEUCに存在しないような。。。
画面にはちゃんと表示できてる?
正しく表示できてるのならPHPの文字コードはSJISと思うので、変換せずに
mb_send_mail の代わりに mail でいけそう。

$subject = "=?ISO-2022-JP?B?" . base64_encode(mb_convert_encoding($subject, "JIS", "SJIS")) . "?=";
$body = $text;
mail("hoge@example.com",$subject,$body,"From: hogehoge@example.com\r\nContent-Type: text/plain; charset=Shift_JIS");
0028nobodyさん2005/06/08(水) 13:31:51ID:2ouVAjO/
文字列分割についてなんですがexplodeとsplitの違いがわかりにくいのですが
簡潔に教えていただけませんでしょうか・・
一般的にはどちらが使われているのでしょうか・
0029nobodyさん2005/06/08(水) 13:42:52ID:???
>>28
split 置換パターンに正規表現が使える
explode 使えない

大は小を兼ねるので、常に split を使っても問題はない

正規表現が使える分、多少遅くなるので、置換パターンに正規表現を
使わないのであれば explode を使用した方が良いけど
0030222005/06/08(水) 14:14:32ID:???
>>25 レスサンクス
「ア」は画面には表示されてます。
DBにPostgreSQL使用してますが、EncodingはEUC_JPで、
PHPもEUCで書いてるんですけど、表示されてるっておかしいですかね??

当初はmailを使用してましたが、文字化け報告が多くて(Mac、Lotus使いから)
「ア」などをすててmb_send_mailに逃げてました。
mailで再度送信するようにしてみます。
0031nobodyさん2005/06/08(水) 15:43:37ID:Gb/twTZb
自分でサーバーを立ててzen-cartというphpとmysqlで構成されたwebアプリを動かしています。
自分のマシン上で127.0.0.1とかlocalhostおよび192.168.x.xではきちんと動いています。
LAN内およびWANからアクセスすると、すぐに読み込みがとまってしまい、まともに表示ができません。
思うに、ホスト名のlocalhostという部分が悪い気がするんですが、この部分はどのようにwebアプリ側でどのように設定するのがよいのでしょうか?
Apacheの設定なのかphpの設定なのか、webアプリの設定なのかまったく見当もつきません。

Mac OS 10.3.9
PHP Version 4.3.10
Apache/1.3.33 (Darwin)
MySQL 4.0.20-standard
0032nobodyさん2005/06/08(水) 15:49:24ID:???
>>31
DNSについて学んで来い。
そしてDNSの話題はスレ違いなのでよろしく。
0033軟式PHP2005/06/08(水) 16:31:08ID:???
>>31
基礎が全く分かってないなw
0034nobodyさん2005/06/08(水) 17:46:54ID:sDM4PuH6
チェックボックスにチェックがはいってないときに
送信したらチェックがはいっていませんという処理をしたいのですが
うまくできませんどこを修正したらいいんでしょうか?

<?php
for($i=0;$i<sizeof($checkbox);$i++)
{
if($_REQUEST["checkbox"][$i]=="")
{
echo("入力してください");
}
}
?>
<html><head></head>
<body>
<form action="<?php echo($_SERVER["PHP_SELF"])?>" method="post">

<input type="checkbox" name="checkbox[]" value="1" size="50" >1
<input type="checkbox" name="checkbox[]" value="2" size="50" >2
<input type="checkbox" name="checkbox[]" value="3" size="50" >3
<input type="submit" name="submit" value="送信">
</form></body></html>

0035nobodyさん2005/06/08(水) 17:49:31ID:???
>>34
この程度、自分でどうにかしないと後々大変だぞ。

print_rつかって送信後にどんな値が渡ってくるのか見てみる。

チェックボックスにチェックがつけた場合、つけなかった場合、
見比べるとどうなってるのかが良く分かる。
それさえわかれば、後は簡単。(これが分からないならPHPやめろ)
0036nobodyさん2005/06/08(水) 18:09:29ID:???
>>34
チェックボックスはチェックついてるやつだけ送信。チェックついてないやつは送信しない。
あとは自分自身のためにprint_r($_POST)などで確認。
0037282005/06/08(水) 19:04:57ID:2ouVAjO/
>>29
 
わかりやすい説明ありがとうございました。
0038nobodyさん2005/06/08(水) 20:46:50ID:2dKZZRT0
>>34ですが
チェックがはいっていないと値が送られないということをためして
わかりました、となるとチェックが入っていないときに
はいっていませんと表示させる方法はどうすればよいのでしょうか?
0039nobodyさん2005/06/08(水) 20:48:10ID:???
入っていなければ、表示する
0040nobodyさん2005/06/08(水) 20:53:29ID:???
isset関数
0041nobodyさん2005/06/08(水) 21:07:33ID:2dKZZRT0
>>40
配列ができないんだよ$checkBox["submit"]="送信”
ていうわけわからん配列しか。
すべての項目にチェックいれないで送信したときに
チェックがはいっていませんからいてくださいという
メッセージを表示したいの・・・

だれか簡単なソースプリーズ・・・お願いプリーズ
0042nobodyさん2005/06/08(水) 21:16:01ID:???
チェックボックスが空なら表示させればいいんじゃ(´・ω・`)?
0043nobodyさん2005/06/08(水) 21:19:09ID:???
>>41
ttp://jp2.php.net/manual/ja/function.isset.php
0044nobodyさん2005/06/08(水) 22:52:09ID:3IRWVK3O
はじめましてです。
初歩的なことかもしれませんが、自分で見つけられなかったので…
以下のような
http://www.test.jp/test.php?id=hogehoge
(URLエンコード済み)

の様なURLでGETメソッドを使ってデータを送った場合
$_GET['id'] に入るデータは自動的にデコードされていますか?
それともrawurldecode($_GET['id'])
しないとだめですか?

よろしくお願い致します。
0045312005/06/08(水) 22:52:26ID:QAkoL1Aa
>>32>>33
こんなすれ違いのとこに来てしまうほど解ってないのです。
答えを教えてくれとは言いません。自分でぐぐりますので検索キーワードなどを教えてくれませんか?
0046nobodyさん2005/06/08(水) 23:15:54ID:???
致命的!

URLをhttp://〜/index.php?pos=50
にして
<?php print $pos; ?>
と書いているのだが
何も表示されねええええ
0047nobodyさん2005/06/08(水) 23:24:26ID:???
>>46
いつの時代の話をしてるんだ?
<?php print $_GET['pos']; ?>
0048nobodyさん2005/06/08(水) 23:24:43ID:???
GET
0049462005/06/08(水) 23:26:21ID:???
うは、しばらくPHPやってねぇうちにし様かわったのかwwww
サンクス
0050nobodyさん2005/06/08(水) 23:28:16ID:???
し様
0051nobodyさん2005/06/08(水) 23:29:37ID:???
>>46
クソスサイトスクリプティングって知ってるか?
0052nobodyさん2005/06/08(水) 23:29:44ID:G0+i0xLW
>>45
>>32で出てるでしょ。あとは自分で書いてる
「自分で サーバ localhost」とかで結果を絞っていけばいいではないか。
"自分で"は"自宅で"にした方がいいと思うけどな。
0053nobodyさん2005/06/08(水) 23:56:19ID:???
>>49
iniの設定だろ。
0054nobodyさん2005/06/09(木) 00:01:24ID:???
うはwww漏れ初心者杉wwww
変数で
N135.664.772.441E456.789.123.369
とかあるんだが
数字3桁ごとに区切りたいんだがどうすればいいか教えてえろいひとwww
0055nobodyさん2005/06/09(木) 00:09:29ID:???
うはwww漏れ初心者杉wwww
変数で
N135.664.772.441E456.789.123.369
とかあるんだが
数字3桁ごとに区切りたいんだがどうすればいいか教えてえろいひとwww
0056nobodyさん2005/06/09(木) 00:49:40ID:???
>>54-55
これは...山田ウィルスなのか?
0057nobodyさん2005/06/09(木) 01:42:50ID:???
number_format
0058nobodyさん2005/06/09(木) 03:00:06ID:???
>55
それが分かったら次は
緯度経度の計算教えれか?藁
0059nobodyさん2005/06/09(木) 06:54:35ID:???
>>56
ワロスwww
0060nobodyさん2005/06/09(木) 07:53:05ID:???
>>57
それって普通の数字を3桁づく区切るだけなのでは?
0061nobodyさん2005/06/09(木) 21:08:20ID:???
アフォばっか。
0062nobodyさん2005/06/09(木) 22:30:45ID:???
WWW::Mechanizeを知ってすごいなあと思ったんですけど、
これのPHP版ってありますか?
0063nobodyさん2005/06/10(金) 08:23:49ID:P1AHG4Lh
丸投げよりくだ質向きっぽいのでこちらで失礼。
BLOGの画像うp機能でファイル名を現在時間にリネームしてごにょごにょしてる部分で
$pathname = pathinfo($dest);
$dest = PICDIR.gmdate("YmdHis",time() + TIMEZONE).$pathname['extension'];
となってるんですが、これだと「200506100818jpg」みたいに
拡張子があるようで無いファイル名になってしまいます。(jpgの前にドットがない)
ちゃんと表示されてはいるので事実上、何も問題はないのですが、なんだか気持ちが悪いので
「200506100818.jpg」という風にドットを付けるにはどう書き変えたらいいですか?

#「ドットを付ける」というより「)と$の間のドットを有効にする」って言った方が正しいのかな…
0064nobodyさん2005/06/10(金) 08:33:21ID:???
>>63
ドット三連星
$dest = PICDIR.gmdate("YmdHis",time() + TIMEZONE).".".$pathname['extension'];
0065nobodyさん2005/06/10(金) 08:42:13ID:???
>64
うは!すごくスッキリした!ありがとう!愛してる!
0066nobodyさん2005/06/10(金) 11:04:19ID:???
PHPの動作環境には
CGI版とモジュール版ていうのが
あるそうなんだけど
モノを作る上で違いというか気をつけなければ
ならないことってありますか?
0067nobodyさん2005/06/10(金) 11:42:14ID:???
>>66

> モノを作る上で違いというか気をつけなければ
> ならないことってありますか?

マニュアルによく目を通す
0068nobodyさん2005/06/10(金) 11:42:59ID:???
>>66

http://www.php.net/manual/ja/
0069nobodyさん2005/06/10(金) 13:23:26ID:???
>>66
単なるCGIとして運用されてる場合は、余り違いは無いのだが
今時、多くの場合CGIはsuExecと組み合わせて動かされている。
その場合CGIは所有者の権限で実行されるので、サーバモジュール版で
スクリプトがサーバの権限で実行されてるのと異なるため注意が必要。
具体的にはディレクトリ/ファイルの読み書き、新設、削除とかね。
まあ、他にも相違が結構あるのでマニュアル参照
0070nobodyさん2005/06/10(金) 13:29:41ID:???
>>67>>68
くだ質コーナーなんだから
ちゃんとこたえてやれよー
あるかないかって聞いてるんだから
「ない」でいいじゃない。
0071nobodyさん2005/06/10(金) 19:50:21ID:zc8ejILu
携帯用のランキングサイトを作ってます。
クッションページ以外にimgタグによる不正投票を防ぐにはどうすればよいでしょうか。
ご存知の方がおられましたら教えてください。
0072nobodyさん2005/06/10(金) 19:55:11ID:???
固体識別番号とかは?
0073nobodyさん2005/06/10(金) 23:45:36ID:oNM+WEuu
ttp://www.supra.cx/joyful2chMe/index.html
この画像掲示板を、画像だけほかの鯖に飛ばせるようにできませんかね?
画像様の鯖借りてそこに画像をUPさせるみたいな
0074nobodyさん2005/06/11(土) 00:23:22ID:???
>>73
結構面倒。必要な機能が鯖によってはoffにされている場合がある。
オイラならそんな面倒&不確実な事をするより、素直に別の鯖に設置するな。
0075732005/06/11(土) 00:33:06ID:Yzuy6L1g
>>74
有料のCGI作成の依頼をした場合結構金かかりますかね?
0076nobodyさん2005/06/11(土) 01:26:40ID:???
最低5マソ
0077nobodyさん2005/06/11(土) 04:07:27ID:wjIS0kuw
>>73じゃないんだけど興味あるなぁ。具体的にはどうやるんでしょうか?
Socketでデータ送信やFTPでアップロードぐらいしか自分には思いつかないのですが、
どなたかご教授して頂けると嬉しいです。
0078nobodyさん2005/06/11(土) 09:22:20ID:JxmTPzAI
phpの本電車で読んでて、おなかがいたくなって
すかしたら、具がでて、ぱにくってトイレいってさ
そしたらPHPの本トイレにわすれちまって
とりにいったらなかったよ・・・俺の本持っていったのおまえらか?
0079nobodyさん2005/06/11(土) 09:44:35ID:???
スマソ
0080nobodyさん2005/06/11(土) 10:59:13ID:???
ワロスw車掌だろw
0081nobodyさん2005/06/11(土) 12:02:09ID:???
>>79
その前に、便所紙がなくて俺がページ破って
使ったから、索引のあたりがなかったろ?
0082nobodyさん2005/06/11(土) 16:44:34ID:g5OnHelk
最初の方が抜けてたあの本…。残りは俺が使ったよ。腹の調子悪くてさ、すまん。
0083nobodyさん2005/06/11(土) 18:53:31ID:KxymZ9Ms
自分で設置するブログを紹介してるスレどこでしょう
0084nobodyさん2005/06/11(土) 19:23:43ID:???
>>83
ヒント:ブログ板
0085nobodyさん2005/06/12(日) 06:08:46ID:???


           ま た ノ ー エ ア ー う ん こ か

0086nobodyさん2005/06/12(日) 15:17:59ID:???
なあ、誰か俺に -> の意味を教えてくれ。
0087nobodyさん2005/06/12(日) 15:48:43ID:???
class Sex {
 var $man = '';
 var $woman = '';
 function setName($manName, $womanName) {
  $this->man = $manName; //自分のインスタンスのメンバ変数manに代入
  $this->woman = $womanName; //自分のインスタンスのメンバ変数manに代入
 }
 function doKoubi() {
  print 'はぁはぁあんあん';
 }
}

$sex = new Sex(); //Sexクラスのインスタンスを生成、$sexに代入
$sex->setName('切込隊長', 'ひろゆこ'); //SexのsetName()を呼び出す
$sex->doKoubi();
0088nobodyさん2005/06/12(日) 16:11:43ID:???
>>86
あっち
0089nobodyさん2005/06/12(日) 16:12:08ID:???
>>87
とりあえず、レスサンクス
で、質問
setNameは何してるの?

class Sex {
function doKoubi() {
print 'はぁはぁあんあん';
}
}

$sex = new Sex();//Sexクラスのインスタンスを生成、$sexに代入
$sex->doKoubi();

これにした時と出力に違いが見えないから、
どういう風に動いてるのかがよくわからない…
0090nobodyさん2005/06/12(日) 16:50:25ID:???
漏れはみんながほとんど使い終わったあとの本を見つけて、
仕方ないから表紙を使ったよ。硬くて痛かった。
0091nobodyさん2005/06/12(日) 16:53:03ID:094WCNrp
クラスの勉強をしようにも、まずクラスの説明に出てくる
各種用語(インスタンスだのコンストラクタだの)の概念が
そもそも理解できない&それらを詳しく説明してる本やサイトが少ないので
クラスを勉強する気が2分で萎えます。
なんかそういう難しい専門用語・概念が当然のように使われてるけど、
初心者にとってはまったく意味不明。ついでに言えばクラスの必要性もよく分からない。
0092nobodyさん2005/06/12(日) 17:04:17ID:???
最初から無理して理解する必要ない。
単なる関数の集合体とでも思って実際に作っていけばそのうち分かってくる。
0093nobodyさん2005/06/12(日) 17:05:18ID:???
書店でオブジェクト指向については詳しく取り扱っている本があるから買ってみるといい。
0094nobodyさん2005/06/12(日) 17:06:27ID:???
>>91
3分まで我慢しろ
0095nobodyさん2005/06/12(日) 17:07:46ID:???
>>89
これで納得していただけるだろうか

class Sex {
 var $man = '';
 var $woman = '';
 function setName($manName, $womanName) {
  $this->man = $manName; //自分のインスタンスのメンバ変数manに代入
  $this->woman = $womanName; //自分のインスタンスのメンバ変数manに代入
 }
 function doKoubi() {
  print "{$this->man}: ええか?ええか?ええのんか?\n";
  print "{$this->woman}: はぁはぁあんあん\n";
 }
}

$sex = new Sex(); //Sexクラスのインスタンスを生成、$sexに代入
$sex->setName('切込隊長', 'ひろゆこ'); //SexのsetName()を呼び出す
$sex->doKoubi();
0096nobodyさん2005/06/12(日) 17:17:45ID:???
>>95
わざわざどもです。
わかりやすくて助かりました。
色んなページを探してるんですがなかなか見つからなくて、
->を使っていてもそれについての解説が無かったもので…

「->」 は 「の」 と解釈すればOKみたいですね
0097nobodyさん2005/06/12(日) 17:23:47ID:???
>>93
書店のオブジェクト指向の本って使える?

いや、オブジェクト指向そのものについての理解は得られるのは間違いない。
だけど、それを実際の仕事に適用しようとすると壁にぶつかる。

というのは実際の業務やら仕事をどういった単位でオブジェクトにしていいかが分からない。
0098nobodyさん2005/06/12(日) 17:37:26ID:???
正規表現のことで質問です。

XFR 2 NS 207.46.0.41:1863 0 207.46.104.20:1863 という文字列から「207.46.0.41」という
文字列(はじめに表示されているIPアドレスの部分)のみを取り出したいと思っています。
この値はランダムで変化するので正規表現を使うべきだと考え、以下のスクリプトを書きました。

preg_match("/XFR 2 NS ([0-9]{1,2,3}\.[0-9]{1,2,3}\.[0-9]{1,2,3}\.[0-9]{1,2,3})/", 'XFR 2 NS 207.46.0.41:1863 0 207.46.104.20:1863', $matches);

ところが、matchesに値が代入されていませんでした。何が悪いのか、教えて頂けますか?
0099nobodyさん2005/06/12(日) 18:08:18ID:???
>>98
反復指定子 { } はパラメータを2つだけ取るから。
{1,2,3} -> {1,3}
正規表現のエラーのならないのはなんでかシラネ
0100nobodyさん2005/06/12(日) 18:14:09ID:???
>>99
あ、なるほど、そういうことだったんですか。ありがとうございました。
0101nobodyさん2005/06/12(日) 22:40:04ID:IlkizvUK
質問です。
自宅サーバーに貰い物のPHPプログラムを入れてみようとしているのですが、
perlやPHPに関して勉強不足のため、自力で解決できませんでした。

環境はRH9.0 apache1.3 posatgreSQL7.3 php4.3 qmail1.03
全てソースからコンパイルしてのインストールです。

メールを受信してデータベースに保存するphpプログラムなのですが、
qmail > php実行ファイル > pear > mimeDecode.php > PostgreSQL
という動きのようです(自己判断)

PHP(CLI版)実行ファイルでのパスの指定先の判断に迷っています。

#!/usr/bin/php -q
ini_set('include_path','/home/user/public_html/lib:/usr/share/pear');
include_once 'Mail/mimeDecode.php';

phpとpearはデフォルト記述のパスには存在しなかったので修正する必要があるようなのですが、
自分なりに修正しても正常に働きませんでした。
which php と which pear で両方とも/usr/local/bin/以下にある事を確認しました。
ただ、phpは/usr/local/lib/php/というディレクトリも存在しています。
果たしてphp(cli版)のパスとはどちらの事なのでしょう?
pearも/usr/local/lib/php/PEAR/というディレクトリが存在しますが、こちらは
大文字なので違うだろうなぁと判断しました。
mimeDecode.phpは/usr/local/lib/php/Mail/の中にはいっていました。
フルパスで指定しなくても大丈夫なのかな?

プログラム固有の指定かもしれないのですが、もし一般的な指定方法があるのでしたら
教えて頂ければと思います。
0102nobodyさん2005/06/13(月) 00:35:07ID:???
本スレから来ました。

Windows環境でPHP5を使っているのですが、マルチスレッドプログラミングをするにはどうしたら
いいのでしょうか?
0103nobodyさん2005/06/13(月) 01:07:36ID:???
ウンコしたあとのケツを拭くにはどうしたらいいでしょうか?
0104nobodyさん2005/06/13(月) 01:28:26ID:JEep+xPl
http://cgi.apnic.net/apnic-bin/ipv4-by-country.pl?country=kr
上記APNICの国別IP範囲一覧をもとに、中国・韓国のIPを全てブロックしたいんですが、
CIDR欄にあるネットマスク(?)表記をそのまま.htaccessに利用できますか?
0105nobodyさん2005/06/13(月) 01:29:31ID:???
>>101
ディストリビューションのbinディレクトリ以下にあるのがcli版PHP
同じ場所にあるpearという実行ファイルはpearのパッケージをインストールするためのソフト。
pearのinclude先は /usr/local/lib/php/PEAR/の方

ちなみに、/ur/local/lib/php/はphpが利用するライブラリ類を突っ込むところ。
0106nobodyさん2005/06/13(月) 01:30:15ID:???
>>104
スレ違い .htaccessのどこがPHPなのか。
01071042005/06/13(月) 01:31:00ID:JEep+xPl
ごめん思いっきりミスしたので↑は無視して再投稿。
http://cgi.apnic.net/apnic-bin/ipv4-by-country.pl?country=kr
上記APNICの国別IP範囲一覧をもとに、中国・韓国のIPの場合、特定ページに
飛ばしたいんですが、.htaccessじゃなく、PHP内の処理で行いたいです。
外部テキストファイルに上記データベースにあるIPネットマスクを記述して、
PHPでそれを読み込ませて処理したいんですが、どんなルーチンを作ればいいでしょうか。
0108nobodyさん2005/06/13(月) 01:33:47ID:???
>>107
前スレのどっかにサブネット内にいるIPかどうか判断する関数書いたから探せ。
0109nobodyさん2005/06/13(月) 01:35:08ID:???
>>108
ありがとうございました。読んできます。
01101042005/06/13(月) 01:45:35ID:JEep+xPl
前すれ読んだんですが、ホスト名を正規表現で取り出してチェック、というのしかありませんでした。
どこにもネットマスク関連はなかったです。。前々スレでしょうか?
0111nobodyさん2005/06/13(月) 07:05:37ID:???
「極める!PHP」というムックを買ったのですが、
その中の記事で、クレジットカードなどの機密情報は暗号化してから
データベースに入れろ、と書いてありました。(p.145)
でも、MD5で暗号化しちゃったら、不可逆なので、データベースに
入れた情報を取り出せなくなる(復号化できない)と思うのですが…??

あと、そもそもMD5関数はどんな場面で使う意味があるのでしょうか??
復号化できない暗号化なら、前述のように意味がない気がするのですが。
(おそらく皆さんからすれば超初心者的な間抜け発言だと思います。すみません)
0112nobodyさん2005/06/13(月) 09:51:02ID:X5R6PEXU
前スレかどっかにあったのを改造して.htaccessで弾いた先の403(.php)でその後の処理をしてます。
今までは$bad_hostsにヒットしたユーザーには403ではなく偽装404を見せてたんですが
ホストチェックだけでなくリンク元もチェックする必要が出て来ました。
$bad_hosts = array('/^.*\.xx$/','/^.*\.xx.net$/','/^.*\.xx.net$/','/^.*\.xx.com$/');
$remote_host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$bad_ref = array(「yahoo」とか「google」とか「^http://ime\.st/*」);
$referer = $_SERVER['HTTP_REFERER'];
if( $bad_refが含まれてたら〜 ){
include("404.php"); #偽装
exit();
}elseif (preg_replace($bad_hosts, null, $remote_host) == $remote_host)
{
include("403ok.php"); #普通の403
exit();
}else{
include("404.php"); #偽装
exit;
}
$bad_refのarrayの書き方も去る事ながら、一回目のifの式の書き方もようわからんです。
ボスケテ。
01131012005/06/13(月) 11:22:20ID:???
>>105さん
ありがとうございます。
そうすると、一行目の「#!/usr/bin/php -q」は 
「#!/usr/local/bin/php -q」とパス指定するのが正しいようですね。
pearのほうは、/usr/local/bin/pearだと、pearコマンドを実行するファイル
を呼び出す事になってしまいますね。
そうすると、/usr/local/lib/php/PEARが正しいようですね。
3行目のincludeはフルパスで記述してみます。

実際のところ、pearがどうような働きをするのか理解していません。
なんとなく、PHPとDBを繋ぐインターフェイスみたいなもの?と感じています。

さて、無事動くといいのですが・・・ちょっとやってきます。
0114nobodyさん2005/06/13(月) 14:58:32ID:???
>>111
復元する必要のある情報をMD5かけてはだめ。
パスワードなどの直接値が必要ないものを照合するときにMD5する。

データベースの暗号化するかしないかはむずかしい。
どのみちKeyをPHP内に書かなければいけないのでその工夫次第。
どうせばれるなら、とそのまま書くのも悪くないとは思うけど。
やっぱりKeyの格納方法次第だね
0115nobodyさん2005/06/13(月) 15:07:00ID:???
PHP勉強中ですが、
require文とinclude文の使い分けが理解できましぇん。
どのような場面で使い分けるのが賢いやり方でしょうか?
0116nobodyさん2005/06/13(月) 15:11:56ID:???
>>115
つ [ttp://www.php.net/manual/ja/function.require.php]
0117nobodyさん2005/06/13(月) 20:58:51ID:S8y0i9cb
パラメータを付けて、○○○?mode=△△△ というURLにし、
△の部分のものはfunctionで設定した部分を表示させるにはどうしたら良いでしょうか?
0118nobodyさん2005/06/13(月) 20:59:26ID:???
>>115
ひとつ聞いてみたいんだけど、何で(どこで)PHP覚えたの?

>115さんだけじゃないけど、○○○って関数は知ってるけど、
どういう時に使えばいいのか分かりません、って質問多いよね。
マニュアル読んでれば、普通に書いてあることなんだが・・・。

純粋にどうやって覚えていってるのか(いくつもりなのか)、すごい気になる。
0119nobodyさん2005/06/13(月) 21:04:12ID:???
>>117
もう一度自分で書いたものを読み直してから、詳しく。
0120nobodyさん2005/06/13(月) 21:09:22ID:???
説明がアレですみません。

function ***(){
○○○
}

URLはhttp://〜?mode=***
という感じで、そこにアクセスすると、function内で設定した
○○○の部分だけが表示される

という、掲示板とかで見かけるもののやり方がいまいち分からないのです。
0121nobodyさん2005/06/13(月) 21:13:47ID:???
if ($_GET['mode'] == 'test') {
test();
}
こう?
0122nobodyさん2005/06/13(月) 21:15:59ID:???
なぜか、それだとfunction内のみが表示されるのではなく、
function外のものも表示されてしまって。。
0123nobodyさん2005/06/13(月) 21:20:24ID:???
例外処理させていないとか。
0124nobodyさん2005/06/13(月) 21:27:02ID:???
よく分からなかったので無理やりこんな感じにしたらできましたが・・・
これで良いのでしょうか

if ($_GET['mode'] == 'test1') {
test1();
}
elseif ($_GET['mode'] == 'test2') {
test2();
}
else{
print "<a href=\"$PHP_SELF?mode=test1\">テスト1</a>\n";
print "<a href=\"$PHP_SELF?mode=test2\">テスト2</a>";
}

function test1() {
print "テスト3\n";
}

function test2() {
print "テスト4\n";
}
0125nobodyさん2005/06/13(月) 21:48:29ID:???
>>111
そのムック面白い?
0126nobodyさん2005/06/14(火) 01:47:12ID:???
>>124
いいんじゃないかな。
そのサンプルだと必要部分だけ書いたファイルをつくって
includeするとかでもいけそうだが。
0127nobodyさん2005/06/14(火) 02:47:22ID:???
>>124
ダセー
0128nobodyさん2005/06/14(火) 04:00:27ID:???
>>127
趣味で作るレベルなら動けば良いんだから、
そっとしておいてやろうよ。
0129nobodyさん2005/06/14(火) 05:47:19ID:???
>>118
みんながみんなオンラインマニュアルを
読みながらやってるわけじゃないってことですよ。
いちいち質問してくるやつが嫌なら答えなければいい。
自分なりに調べてみたがわからなかった、調べ方自体がわからない、
というような人間も存在するわけで、
そういう人間のためにこの場があると、俺は解釈しております。
01301242005/06/14(火) 06:49:06ID:???
ありがとうございました。
やはり勉強が足りなかったようですね。
勉強します。
0131nobodyさん2005/06/14(火) 07:32:02ID:???
>>129
>>118じゃあないが、マニュアルも見ずに質問っていうのは
フォローしきれないよ。
あのマニュアル見て「調べ方がわからない」と言える事がすごいね。
あんな親切なマニュアルなんて滅多にないと思うが。多言語と比べて。
0132nobodyさん2005/06/14(火) 08:40:50ID:???
php_manual_ja.chmのダウンロードは基本だね
エディタのヘルプに指定すればキーワードダブルクリック+F1キーで一発参照できるし。
0133nobodyさん2005/06/14(火) 08:57:11ID:???
最近になってPHPを触り始めたんだけど、シングルクォートとダブルクォートの
使い分けが面倒。。。
変数を展開せず、エスケープシーケンスは認識してくれるってのが
ありがたいんだけど。
皆さんはどうされてます?
0134nobodyさん2005/06/14(火) 09:04:11ID:???
>>131
マニュアルの存在自体を知らないやつもいるだろう。
問題なのは、このスレの>>1-5あたりに
オンラインマニュアルみてから質問しろというような趣旨の
書き込みがないことだ。
次スレから
>>1にオンラインマニュアル読んでから質問すること(URLつき)とか
付け加えたほうがいいと思うんだがね。
0135nobodyさん2005/06/14(火) 09:30:45ID:???
マニュアルへの誘導がテンプレへの誘導になるだけだな。
0136nobodyさん2005/06/14(火) 09:48:00ID:???
>>129
調べ方自体がわからない→調べるのが面倒

だろ?
0137nobodyさん2005/06/14(火) 09:50:43ID:???
>>136
いや、職業柄、いろんなヤシを見てるが、
調べ方が本当にわからない奴がいるのは事実。
だけど人材が少ないので、お前、プログラマ辞めたら?
とは言えない。。。
0138nobodyさん2005/06/14(火) 10:06:01ID:???
くだ質スレだから
気軽にこたえてやろーぜ
0139nobodyさん2005/06/14(火) 10:06:37ID:???
>>137
調べるの好きです職くだs(ry
0140nobodyさん2005/06/14(火) 10:14:44ID:???
>>137
英語(っぽい)文章と思考停止するやつとかな。
0141nobodyさん2005/06/14(火) 10:23:45ID:???
>>129
例えば、"php include require"でぐぐってみれ
先頭のリンクだけでも、十分2つの違いは理解出来るはず
調べ方が分からないって、上に書いたみたいなことすらも出来ないもんかね
だとしたら、PHP以前に根本的なとこでかなりやばいと思うぞ
それとも、2chは知ってるけど、Googleは知らないっていうのか?

もっと向上心(上に書いたようなことは向上心とかいうレベルじゃないが)を
持たないと、Hello worldから先には進めんぞw
0142nobodyさん2005/06/14(火) 11:33:24ID:???
>>129
【PHP】includeとrequireの違いを語ろう
というスレを立てなかっただけでもエロい
0143nobodyさん2005/06/14(火) 12:37:57ID:???
>>141
Googleは知ってるだろうけど、
検索の正しい仕方がわからないっていうやつもいるもんだよ。
"php include require"というように、
ワードを区切るのがあたり前と思ってるんだろうが、
"includeとrequireの使い分け"とか一文で検索しようとするやつもいる。
キーワードが長文になるほど、HITする数が少なくなるわけだが、
調べてる本人にとっては、こんなもんしか資料がないのかと思うわけだ。
それで行き着く先はこのような質問系の板。
0144nobodyさん2005/06/14(火) 13:09:57ID:???
やっぱり言語が糞だとユーザーも糞だなwwwwwwwwwwww
0145nobodyさん2005/06/14(火) 13:47:33ID:???
>>139
今人手が足りない 職やる。
0146nobodyさん2005/06/14(火) 16:14:31ID:???
で、どこまでフォローしろと?
んなこと言ってたらキリが無いわけだが。
そもそも暇人が暇な時に暇つぶし程度に教えるこのスレに何を期待しているのか。
そこまで言うならば自分が理想の答え方をしてやればいい。
その為のスレなんだろ。

> >>1にオンラインマニュアル読んでから質問すること(URLつき)とか
> 付け加えたほうがいいと思うんだがね。
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/l50
0147nobodyさん2005/06/14(火) 16:44:06ID:???
phpのバージョンを変えたら、function foo(&$bar="hoge"){でエラーが出るようになりました
iniの問題だと思いますがどこを直せばいいのかわかりません ヘルプ!
0148nobodyさん2005/06/14(火) 16:54:07ID:???
php.iniに設定されている
 session.use_only_cookies
 session.use_trans_sid
を関数などで変更できますか?
01491482005/06/14(火) 16:56:21ID:???

実際のphp.iniの設定ではなくて
トランザクション内での変更です。
念のため。
0150nobodyさん2005/06/14(火) 17:06:51ID:???
>>147
エラーメッセージは秘密ですか。そうですか。
>>148
マニュアル ini_set
0151nobodyさん2005/06/14(火) 17:10:12ID:???
>>150
忘れてました
Parse error: parse error, expecting `')'' in ...
0152nobodyさん2005/06/14(火) 17:17:57ID:???
>>150
ありがとう。
0153nobodyさん2005/06/14(火) 17:18:25ID:???
>>147
いくつからいくつに変えたんだ?
0154nobodyさん2005/06/14(火) 17:21:35ID:???
>>153
5.0.4 から 4.3.11
php.ini見たらallow_call_time_pass_referenceはOnになってました
0155nobodyさん2005/06/14(火) 17:36:20ID:???
>>147
一応の目的はこれで達成できると思われ。
function foo($bar="hoge"){
 $bar = $bar."hoge";
}
$bar = 'huge';
foo(&$bar);
print $bar;
0156nobodyさん2005/06/14(火) 18:11:50ID:???
>>137
調べ方もわからない奴が戦力になるとは思えないんだけど、
どうだろう?
育て中って事?
パソコン初心者でプログラム初心者だからって事ならまぁわかる。
で、ここで質問->マニュアル読めって流れで
マニュアル読むことを覚えていいじゃないか。
0157nobodyさん2005/06/14(火) 18:26:50ID:???
agaらなくなくね?
0158nobodyさん2005/06/15(水) 01:38:17ID:???
ユーザー関数作成する時に注意する点ってありますか?
関数化する前ちゃんと動いてたんだけど
関数化したら動かなくなって(つД`)

因みに必要と思われる変数はglobalしてます
0159nobodyさん2005/06/15(水) 02:28:05ID:???
自己解決(´・ω・`)
0160nobodyさん2005/06/15(水) 03:06:11ID:???
>>158
グローバル変数なんかめったやたらに使うなドアホ。
バグの原因じゃボケ。

>>159
なにが自己解決したのか言え。ドアホ。
0161nobodyさん2005/06/15(水) 03:42:55ID:???
>>158
>>160のいうようにglobalを使うのは避けた方がいい。
関数内で変更する必要のない変数は値渡しをして、変更する変数はリファレンスで渡すようにする。
こうする事で、何が変更されるのかが明確になるし、デバッグ時にも注目する部分が減るというメリットもある。
globalを使うと、極端な話、コードのあらゆる個所で変更される可能性がある事になる。
0162nobodyさん2005/06/15(水) 08:23:11ID:???
>>160 >>161
たしかにglobalを普段使うのは危険だけどさ、usortとかに指定する比較関数に値を渡したくても渡せないときってどうしてる?漏れはglobalしか思い浮かばなかった。
なんていうか、ソートしている間はずっと値が変わらないけど比較には使う値をどう渡すかってこと。
staticも考えたけど、ソート時に内部で何度も呼び出される関数に、func_get_*()とかで無駄に場合分け増やしたくないってのはわがまま?
0163nobodyさん2005/06/15(水) 11:27:46ID:???
だからPHPは糞なんだよ。
0164nobodyさん2005/06/15(水) 11:48:13ID:???
>>162
めったやたらに使うなということで必要なら使ってかまわないでしょう
グローバルな設定値とかを$cfg['hoge']とかの配列に入れて関数内でglobal $cfgとか普通に使ってる
0165nobodyさん2005/06/15(水) 13:19:32ID:???
ねえねえ。
連想配列として
$item[$_GET['mode']] = '2get';
ってやったときに$itemから連想文字を
取得したいときはどうすればいいの?
0166nobodyさん2005/06/15(水) 13:31:12ID:???
>>165
連想文字って何
配列のキーのことかな
array_なんたら関数にお前のやりたいことはないかい
0167nobodyさん2005/06/15(水) 13:41:41ID:???
>>165
key
array_key
0168nobodyさん2005/06/15(水) 14:02:25ID:???
>>167
ありがと。

>>166
PHPは昨日から始めたばっかりで・・・かたじけない。
配列の操作に関してはarray_なんたら関数を調べれば
いいのねってことが分ったので・・・ありがと。
0169nobodyさん2005/06/15(水) 14:05:00ID:???
まったくの初心者のくだらない質問です。

<?php
extract($_POST);

if($jsh<>''){
mysql_connect(localhost,root,pppppp);
mysql_select_db(db01);
$sql = "insert into kojindata values('$jsh', '$sim', $nen, $shk, 0)";
mysql_query($sql);
$jsh = '';
echo "データを登録しました<br />";
echo "登録を続けますか <a href=\"kojin.php\">続行</a>";
exit;
}
?>

以下に続きます。
0170nobodyさん2005/06/15(水) 14:05:19ID:???
<p>データを入力してください</p>
<form action="kojin.php" method="post" >
<p>住所:<input type="text" name="jsh" size="40"></p>
<p>氏名:<input type="text" name="sim" size="40"></p>
<p>年齢:<input type="text" name="nen" size="40"></p>
<p>職業:<input type="text" name="shk" size="40"></p>
<input type="submit" value="登録">
<input type="reset" value="リセット">
</form>

「kojin.php」内のスクリプトです。
まず「住所」「氏名」などのフォームが現れ、そこに入力されたデータを
テーブル「kojindata」に送りレコードを追加、その後に登録を続けるかと
メッセージが出ます。
if文の$jsh(冒頭から4行目)は、17行目の"jsh"の事を言っているのでしょうか。
そして意味としては「もし$jshが空白で無かった場合」でいいんですよね?
9行目の「$jsh = '';」は「$jshに空白を代入する」と言う意味でいいんですか?

流れが良く分かりません。度素人なんです。よろしくどうぞ。
0171nobodyさん2005/06/15(水) 14:28:05ID:???
>>168
別に配列がらみはarray_なんたら関数だけではない。
マニュアルとかで配列の項をみたら?
あとは、「php 配列」でぐぐればいくらでもでてくるし。
本だっていっぱいあるんだから、入門書を一冊ぐらい買ってみたら?

0172nobodyさん2005/06/15(水) 14:32:11ID:???
>>162
クラスつくってメンバ変数に閉じ込めるってのはどうだ。
0173nobodyさん2005/06/15(水) 15:38:26ID:???
>>170
暇だから解説しよう
formからmethod post で送られたデータはPHPで$_POST['フォームのネーム']という配列に代入される
$_POST['jsh'} に住所の項目で入力された値が入るってことだね
そのスクリプトは$_POSTをextractで展開している
これで$_POST['jsh'} の値が$jshにもコピーされる。
住所さえ入力してあればデータベースに登録される
9行目の$jsh = '';は無くても問題ないはず
あとデータベースにクエリ投げる前に$jsh = mysql_escape_string($jsh); //他の項目も
0174nobodyさん2005/06/15(水) 16:55:39ID:???
if (($i > 0) and ($i < 10)) {...}
else if (($i >= 10) and ($i < 20)) {...}
else if (($i >= 20) and ($i < 30)) {...}....
のようなのをswitch等で見やすく書くことはできないでしょうか。
switch ($i) {
case 1..9 : ...; break;のような感じだと見やすいと思うのですが…。
0175nobodyさん2005/06/15(水) 17:10:23ID:???
>>174
多分こんな感じでいけんじゃね?

switch ($i){
 case 1: case 2: case 3: 〜 case 9:
 処理;
 break;
}
0176nobodyさん2005/06/15(水) 17:14:16ID:???
>>175
それを1-9、10-19、20-29、って全部書いたら余計に見づらそうだ・・・。
0177nobodyさん2005/06/15(水) 17:17:19ID:???
>>175
ありがとうございます。$iが1〜250あるんです。泣。
分岐としては【ほぼ】10番単位でいけるという。号泣。
0178nobodyさん2005/06/15(水) 17:19:22ID:???
ループ処理使って省略していけばいいじゃん。
0179nobodyさん2005/06/15(水) 17:20:44ID:???
10で割ってintにすればよくね?
0180nobodyさん2005/06/15(水) 17:31:10ID:???
わーい。レスがはやーい。
>>179
【ほぼ】なんで、1例外として何番と何番はこうで
何番と何番はこうなって…で、残りを10で割って…
せめて1から順に、上から並べれば見やすくなるかなという気持ちです。
>>178
ループ処理といいますと?私が思いつくのは結局
for ($i = 1; $i < 251; $i++) {
 if ($i < 10) {...}
 else if (($i >= 10) and ($i < 20) {...}
 else if ......
と結局、なんのためにforしてるのかわかんなくなっちゃいます。
0181nobodyさん2005/06/15(水) 17:31:13ID:???
>>174
それぞれの処理は
ファンクション化できないほど
そんなに違う事をしているのかい?
0182nobodyさん2005/06/15(水) 17:36:32ID:???
>>181
ただ単にSQL文の組み立てなのですが、その$iに応じて、検索対象の
項目や値が変わってくるというありがちといえばありがちな…
前段と末尾は共通なのですけれど。
0183nobodyさん2005/06/15(水) 17:51:35ID:???
>>182
素直にそのまま書いた方がはやくね?
0184nobodyさん2005/06/15(水) 17:57:08ID:???
>>180

switch (method_for_value($i)) {
 case METHOD_A: ...;
 case METHOD_B ...;
}

function method_for_value($i){
 $result=METHOD_UNDEF;
 if (($i > 0) and ($i < 10)) $result=METHOD_A;
 else if (($i >= 10) and ($i < 20)) $result=METHOD_B;
 else if (($i >= 20) and ($i < 30)) $result=METHOD_C;
 return $result;
}

保守性は上がると思ふ
0185nobodyさん2005/06/15(水) 18:00:16ID:???
>>183
そう思います。if文の羅列をコメント入りで書いてあります。
見やすくする意味で、switch(もしくはそんなようなの)を使えないかなという質問です。
0186nobodyさん2005/06/15(水) 18:09:18ID:???
>>184
なるほど、ループを使って省略というのは、そういうことですか。
確かに流れとして(という言い方でいいのかな)見通しが
よくなりますね。試してみます。ありがとうございます。
0187nobodyさん2005/06/15(水) 18:41:32ID:???
>>182
結局、25通りの何かの組み合わせなんでしょ。
だったら、予め配列に25個の項目名でも何でもぶち込んでおいて、

$num = int($i/10ゴニョゴニョ);
$select_table_name[$num];

とかで良いんでねぇの?
0188nobodyさん2005/06/15(水) 19:32:10ID:???
それぞれの$iごとの情報もDBにいれときゃいいじゃん。
大した量じゃないなら>>187の配列を用意しておく方式もいいと思う。
01891702005/06/15(水) 20:27:00ID:???
>>173
解説ありがとうござます!分かりました!
遅レスお許しください。
0190nobodyさん2005/06/15(水) 23:44:25ID:???
>>187-188
おおよそ80通りです。好みといってしまえばそれまでなのですが
配列にするのであれば、ループで省略の方が見やすいように思います。
また、DBは別の方の管理のため、大事になりそうで…。
否定ではないです。アイデアとして当然ありの方法論と思います。
ありがとうございました。
0191nobodyさん2005/06/16(木) 00:08:15ID:???
>>190
>おおよそ80通りです。

>>177で言ってることとぜんぜん違うじゃネェか(w
250を【ほぼ】10で割って、どうやったら80になるんだ。
0192nobodyさん2005/06/16(木) 07:36:20ID:???
現在DBに既に存在しているテーブルから逆算(?)して、
そのテーブルと同じ構造の(空の)テーブルを生成するためのSQL文を
作ることはphpスクリプトで出来ますでしょうか??

つまり、現在のテーブル構造を解析したいのです。
たとえばnameという名前でvarchar(10)のフィールドが1個、
furiganaという名前でvarchar(20)のフィールドが1個ある・・・みたいな
テーブル情報をスクリプトで取得して、それを元に、同じ構造の別のテーブルを作る
SQL文を自動生成したいのですが…)
0193nobodyさん2005/06/16(木) 07:47:15ID:???
>>192
マルチポスト
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/663
0194nobodyさん2005/06/16(木) 08:55:37ID:???
>>191
不快に思ったらごめんなさい。【ほぼ】10で割るというのは
例えば、1-10の内、2と3が例外、11-20の内、15と18が例外という感じで
ほどんど10で割ってですが、例外が(実際はまちまちなんですが)2づつある。
10で割った25+2つづつの例外(25*2)で、これだけで75パタンになりますが。
ぜんぜん違いましたでしょうか。日本語が下手ですみません。

>>192
構造をひっぱってこれる関数があればできそうですが…。
DBによってあったり無かったりしたんじゃないかな。
MySQLとかpostgresならあったと思いますが、使ってないので
うろ覚えです。
0195nobodyさん2005/06/16(木) 09:36:04ID:???
>>194
で、結局何が訊きたかったの?
80通りの分岐があって、その処理を個別に記述したいんなら、
if〜elseif〜・・・でも、switch...case...case...でも何でもいいじゃん。
ってか、80パターンを全て記述した時点で、美しく無いと思うがな(w
0196nobodyさん2005/06/16(木) 11:02:55ID:???
>>194
微妙な設計のDBに出合った時はずらずら列挙するに限る。

if ($i < 1 || $i > 250) { 値おかしい }
switch ($i) {
  // 例外1
  case A1:
  case A2:
  case A3:
    例外処理1;
    break;

  // 例外2
  case B1:
    例外処理2;
    break;

  // 通常手続き。ひとつのフィールドにいろんな意味持たせるんじゃねボケ
  default:
    switch (floor($i / 10)) {
      case 0: 通常処理1; break;
      case 1: 通常処理2; break;
      case 2: 通常処理3; break;
    }
}
0197nobodyさん2005/06/16(木) 12:32:05ID:???
関数テーブルにしとけ。

$functable = array(
    1 => "func_A",
    2 => "func_A",
    3 => "func_B",
    4 => "func_C",
    :
    :
);

$func = $functable[$i];
$func();

みたいなん。
0198nobodyさん2005/06/16(木) 12:48:44ID:???
>>196
まぁそういうことなのでしょうね。
随所に
//ここにもマジックナンバー
とかの遠慮がちな批判コメントを見るとほほえましく思えます。
ありがとうございました。
0199nobodyさん2005/06/16(木) 13:04:52ID:???
関数テーブル。いただきます。ありがとうございました。
0200ドラゴン2005/06/16(木) 14:06:43ID:???
あるフリーのPHPを設置して、<td><?php include("index.php"); ?></td>
と言う感じで読み込んだら、以下のエラーが出て困っています。

Warning: Cannot modify header information - headers already sent by (output started at ./index.php:11) in ./lib/common.php on line 57


./lib/common.phpの中には

function header()
{
header('Content-Type: text/html; charset=euc-jp');
}

があるんですが、どうすればエラーが出ないようにするのかわかりません。
もしよければご回答お願いします…。
0201nobodyさん2005/06/16(木) 14:21:14ID:???
関数header()が実行されるより前に何らかの出力が行われている。
0202ドラゴン2005/06/16(木) 14:27:13ID:???
呼び出し方は以下のように行っています。
ファイル名:test.php

<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<table width="200" border="1">
<tr>
<td> <?php include("index.php"); ?> </td>
</tr>
</table>
</body>
</html>
0203nobodyさん2005/06/16(木) 14:29:27ID:???
header()を<html>より前で実行すれば良いんじゃないの。
0204nobodyさん2005/06/16(木) 14:40:35ID:???
>>202
ひょっとしたら
test.phpを

<?php include("index.php"); ?>

だけにしたら実行できないか?
0205ドラゴン2005/06/16(木) 14:49:23ID:???
出来ないッス・・・。
0206ドラゴン2005/06/16(木) 14:52:29ID:???
./lib/common.phpの中のheader内を消してみたら

function header()
{
header();


Warning: header() expects at least 1 parameter, 0 given
と警告が出ました…。
0207nobodyさん2005/06/16(木) 15:00:59ID:???
>>206
header関数を実行する前には、何も出力してはいけないのだよ。
だから、index.phpをインクルードした時点では、
すでに

<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<table width="200" border="1">
<tr>

までが出力されているから、エラーになる。
index.phpの中身はどうなっているんだ?

0208nobodyさん2005/06/16(木) 15:20:11ID:???
>>206
マニュアルのheaderのページを見てごらん。
ttp://jp.php.net/manual/ja/function.header.php
headerを使う前にhtml要素(空白や改行でさえも)を出力してはいけない事や、
その制限を回避する方法(出力のバッファリング)の事が書いてあるから。

なにかの本・サイトに載っていたスクリプトがindex.phpで、
それに手を加えるために第一歩としてtest.phpの中で
そのままindex.phpをincludeしようとしたら、いきなりコケたって所かな?
0209nobodyさん2005/06/16(木) 16:11:21ID:???
function header()
{
header('Content-Type: text/html; charset=euc-jp');
}
???
PHPでは関数のオーバーロードはできないはずだが
0210nobodyさん2005/06/16(木) 16:23:16ID:???
>>209
たぶんクラスメソッド
0211nobodyさん2005/06/16(木) 16:23:18ID:???
>>200
どこのフリーのPHPソフトだ?
アドレス晒せ。
0212nobodyさん2005/06/16(木) 16:31:21ID:???
PHPでSQLServer(MSDE)を使ってる人いる?
mssql_fetch_arrayした時のdatetime型カラムの値が変なんだけど。。。
例えば 2005/06/16 11:12:13 だと 2005 6 16 11 12 と返ってくる。
フォーマットが違うのは対応できるけど、秒が落ちてしまっていて
使いもんになんねぇ。
0213nobodyさん2005/06/16(木) 16:55:26ID:???
>>200
header('Content-Type: text/html; charset=euc-jp');
ヘッダーが来る前に、多分どっかでなんかの文字が出力されてる気がする。
0214nobodyさん2005/06/16(木) 16:55:48ID:???
ごめん、既に既出しまくりの解凍でしたね。
0215ドラゴン2005/06/16(木) 16:56:41ID:???
すいません、解決致しました。

function header()
{
header('Content-Type: text/html; charset=euc-jp');
}

を消して、表示されるテンプレファイルに直接ヘッダを書いたらOKでした。

実際は、問題から逃げただけなんですが・・・(^^;
PHP難しいッス・・・。

どうもお騒がせしました
0216nobodyさん2005/06/16(木) 16:57:50ID:???
>>200
出力されたHTMLソースをみて、先頭の方にテスト残骸の「a」とかBOMとか怪しいものが無いかないかチェック
0217nobodyさん2005/06/16(木) 16:59:52ID:???
>>213
エラーメッセージがそういってますから間違いないでしょう
どっかでじゃなくてindex.phpの11行目で出力されてることもわかってます。
0218nobodyさん2005/06/16(木) 17:03:05ID:???
>>216
あのさ、index.phpの中でheader出力してて、
それをインクルードしているtest.phpが既にhtmlはいてるんだよ。
0219nobodyさん2005/06/16(木) 17:05:40ID:???
>>215
というかその関数を定義する意味はあるのかと問いたい
0220nobodyさん2005/06/16(木) 17:08:14ID:???
>>215
難しくないよ。
header出力の前には、ほかのものを出力しない、
それだけのことじゃん。今回のことは。
0221nobodyさん2005/06/16(木) 17:12:08ID:???
Perlみたいに、帰ってきた配列を直接

$hoge = hogehoge()[0]とかするやり方ってありませんか?
今は、
$hoge = hogehoge();
$hoge = $hoge[0];
ってやってるのですが、もっと簡単に書くやり方あったら教えてください。
0222nobodyさん2005/06/16(木) 17:25:16ID:???
>>221
list($hoge, ) = hogehoge();
0223nobodyさん2005/06/16(木) 18:00:01ID:???
>>222
なるほど、ありがとうございます!
0224nobodyさん2005/06/16(木) 19:29:59ID:???
[0]のときしかまともに使えねーな。
0225nobodyさん2005/06/16(木) 23:20:32ID:???
同じファイルの中身をphpでincludeして表示する負荷と
ssiでincludeして表示する負荷は同じですか?
0226nobodyさん2005/06/16(木) 23:55:37ID:???
UTF-8でスクリプト書いても良い?
0227nobodyさん2005/06/17(金) 00:15:38ID:???
悪いの?
0228nobodyさん2005/06/17(金) 00:40:43ID:???
ちょっと聞きたいんですが、
ログインページと認証後のメインページがあって
認証後のメインページにはログインページでセッション発行してる人しかこれないようにしたいんです。
URL直打ちとかでメインページに来た人でセッション発行されてなければ
強制的にログインページに飛ばしたいのですが。

ログインページ.php

<?php
session_start();
$_SESSION['user'] = 'お客様';
?>

メインページ.php

<?php
session_start();
if ($_SESSION['user'] = false){
}

if文のところで値のない(ヌル値)人は別ページに飛ばす場合のif文の書き方などがいまいちわかりません。
わかりにくいかもしれないですが、教えてエロイ人!
0229nobodyさん2005/06/17(金) 00:48:09ID:???
>>228
if文には条件式を書きます。代入式ではありません。
変数が存在するかどうかを確認するには、isset()を使うとよいでしょう。
0230nobodyさん2005/06/17(金) 00:57:58ID:x3OuW/uy
/code/funcs.phpというincludeされたファイルの中に相対パスがあった場合、
これを/index.phpの中にincludeしたとします。
この場合、index.phpが基準になってしまうんですが、
これでは、階層レベルの違うところから/code/funcs.phpを利用すると内部のパスがおかしくなってしまうんですが、なんかうまい方法(関数)はないのでしょうか?
funcs.phpと同一階層にあるdatというディレクトリの中のdata.datを常に参照したいです。
0231nobodyさん2005/06/17(金) 00:59:41ID:???
>>225
計ってないけどおそらくSSI。
CGI版PHPとなら間違いなくSSI。
>>228
if($_SESSION['user'] == 'お客様')
header()でRedirectするなり、エラーページをだすなり。

細かいけど、セッションはサーバーとクライアントのやり取りのことだから、「セッションを発行」というのはおかしい。クッキーとごっちゃになってない?
0232nobodyさん2005/06/17(金) 01:11:27ID:???
>>229
ありがとうございました。
色々勘違いしてましたが isset にて目的達成できました。
参考までに。

<?php
if (isset($_SESSION['user'])) {
echo '既に認証しています。';
} else {
echo '認証していません。';
}
?>
0233nobodyさん2005/06/17(金) 01:14:04ID:???
>>231
言い方がおかしかったですね。
また、セッションとクッキーの違いについても正しく認識してないと思います。
お手数おかけしました。
0234nobodyさん2005/06/17(金) 01:16:39ID:???
>>231
ありがたう
0235nobodyさん2005/06/17(金) 04:56:10ID:???
ランダムに日本語を表示させることをしたいのですが、
1文字ずつ配列に入れていくのは文字が多いので大変です。
なのでアスキー文字から日本語に変換したいのですが、chr()では無理でした。
上手い方法ってありますか?
0236nobodyさん2005/06/17(金) 05:31:21ID:???
>>235
上位バイト・下位バイトに分けた時にそれぞれ特定のbit列(いいかえれば数値)しかもたないから、
それぞれにランダムな数値を割り振ってpackあたりで引っ付けて出力すればいいんじゃないかな。
0237nobodyさん2005/06/17(金) 05:52:56ID:???
phpやcgiにpostで値を渡してアクセスするにはどうすればいいですか
getのように〜?hoge=hugaと簡単にはいきませんか
0238nobodyさん2005/06/17(金) 06:22:41ID:???
すみません自己解決しました
function post($url,$postdata) {
  require_once "HTTP/Request.php";
  $req =& new HTTP_Request($url);
  $req->setMethod(HTTP_REQUEST_METHOD_POST);
  foreach ($postdata as $key => $value) {
    $req->addPostData($key, $value);
  }
  if (! PEAR::isError($req->sendRequest())) {
    $response = $req->getResponseBody();
  } else {
    $response = "";
  }
  return $response;
}
02392382005/06/17(金) 08:01:53ID:???
実は独自のphpから2chに書き込みたかったのですがクッキー確認画面があってうまくいかないですね
どういう方法でやれば書き込めるのかお知恵を拝借したい
0240nobodyさん2005/06/17(金) 08:09:32ID:???
p2参考にすれば?
0241nobodyさん2005/06/17(金) 08:56:22ID:???
phpソースの拡張子をphpやhtmlとしたとき
スクリプトが実行されるのですが、
htmとしたときはスクリプトは実行されず
<?php・・・・・?>のコードごとブラウザに送信されます。
どうも拡張子によって展開できないようなのですが
これはどこの設定により変えることができるのでしょうか?
0242nobodyさん2005/06/17(金) 09:00:03ID:???
>>241
鯖conf or .htaccess
0243nobodyさん2005/06/17(金) 09:34:29ID:???
>>192
DBは何使ってるの?
MySQLだったらphpMyadminでコピーするんじゃダメ?
0244nobodyさん2005/06/17(金) 11:32:16ID:???
>>239
hostとuser-agent(Monazilla)とcookie(PON)が必要だったと思う
0245nobodyさん2005/06/17(金) 12:02:47ID:???
>>239
よくよんでないけど、ここ参考にならんか?

【p2】PHPでつくった2ch viewer【part26】
http://pc8.2ch.net/test/read.cgi/software/1118476501/

02461922005/06/17(金) 13:42:51ID:WoohunCD
>>243
DBはMySQLですが、スクリプトから操作したいのです。。。
そういう関数って無いですよね? テーブル構造を分析するような関数。。。
0247軟式PHP2005/06/17(金) 13:45:48ID:???
>>246
mysql_fetch_field使ったらできそうやけど。
0248nobodyさん2005/06/17(金) 13:49:28ID:???
>>243
試してないけど、
mysql_list_tables、mysql_field_flags、mysql_field_len、mysql_field_name、mysql_field_type
辺りの関数でなんとかなるんぢゃないの?
0249nobodyさん2005/06/17(金) 13:50:10ID:???
ごめん。アンカーまちがえた。
>>246 です。
0250nobodyさん2005/06/17(金) 14:15:28ID:???
ま、関数は用意されている。
使い方が分からなければ、phpMyAdminのソースでも読むとか
0251nobodyさん2005/06/17(金) 15:57:01ID:???
>>192
http://dev.mysql.com/doc/mysql/ja/show-create-table.html
02522352005/06/17(金) 16:00:55ID:???
>>236 なるほど、packか。。調べてみます
ありがとうございました
0253nobodyさん2005/06/17(金) 16:34:15ID:???
>>246
http://dev.mysql.com/doc/mysql/ja/getting-information.html
構造の分析は自前で汁
0254nobodyさん2005/06/17(金) 17:14:59ID:???
<?
// ランダム表示設定(表示コメント|URL)
$banner = array(
'【コメント(タグ可)】|【URL】',
);

function rnd_banner($banner){
mt_srand((double)microtime()*1000000);
$num = mt_rand(0,(count($banner)-1));
//コメント,URL分割
list($comment,$url) = explode("|",$banner[$num]);
//タグ生成
$display_banner01 = '<a href="'.$url.'">'.$comment.'</a>';

return $display_banner01;
}
$display_banner01 = rnd_banner($banner);
?>
----------------------------------------
これを「コメント|URL」の区切りでなく、「コメント(タグ可)」のみの
ランダム表示スクリプトにしてください。お願いします。
0255nobodyさん2005/06/17(金) 17:28:15ID:???
>>254
それぐらい自分で…
0256nobodyさん2005/06/17(金) 18:35:55ID:j6Wl64CO
{$_POST['hoge']} など { } で変数を囲うのはどういう意味ですか?
0257nobodyさん2005/06/17(金) 18:45:23ID:???
つ[ ttp://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing.complex ]
0258nobodyさん2005/06/17(金) 18:53:46ID:???
たとえば
echo "ああああ {$_POST['hoge']} あああ";
{}で囲ってるのは変数ですよって意味

でもこっちの方が多少速い
echo "ああああ ".$_POST['hoge']." あああ";

まちがいかもしれないっすけど
0259nobodyさん2005/06/17(金) 20:10:53ID:???
そうやるなら
echo 'ああああ '.$_POST['hoge'].' あああ';
の方がいい。
””だと中に変数があるか探すから。
0260nobodyさん2005/06/17(金) 20:12:59ID:???
そういえば ' と " どっちが早いかベンチ取ったことなかったな。
0261nobodyさん2005/06/17(金) 20:30:40ID:???
さっきから何度試しても駄目なんだ、助けてくれ。

PHPから'を含むSQLをMySQLに投げたいんだが、
<?
$test = "what's";
$test = Mb_Ereg_Replace("'","\'",$test);
$sql = "select * from tb where aa = '{$test}'";
MySql_Query($sql);
echo MySql_Num_Rows($sql);
?>
みたいな感じで書いても0しか返ってこないんだ。
何が悪いんだろう…

スレ違いだったら謝る。
0262nobodyさん2005/06/17(金) 20:36:45ID:Y+HIW1Mt
質問なのでage
0263nobodyさん2005/06/17(金) 20:44:34ID:???
>>261
0が表示されているっつーのも変な気が。。。コピペミスかのぅ。
'のエスケープ以前に、MySQL関数の使い方が間違ってるので、
マニュアルのmysql_queryとmysql_num_rowsのページを良く見てみ。
つーか、SQL文に突っ込むと困る文字をエスケープするための関数もある。
0264nobodyさん2005/06/17(金) 20:49:25ID:???
>>261
int result = mysql_query ( string query, int [link_identifier])
int value = mysql_num_rows ( int result)
02652612005/06/17(金) 20:55:42ID:Y+HIW1Mt
>>263
サンプル打ってて間違えたー。
$result = MySql_Query($sql);
echo MySql_Num_Rows($result);
の間違い。
AddSlashesの存在はさっき気付いた。

でも変更しても解決しないよー
0266nobodyさん2005/06/17(金) 21:00:24ID:???
>>265
一度、素直にベタのSQLを走らせて切り分けてみたら?
what's を what''s(シングルクォート2つ)にするのを忘れないように。

$sql = "select * from tb where aa = 'what''s'";
$result = MySql_Query($sql);
echo MySql_Num_Rows($result);
02672612005/06/17(金) 21:07:20ID:Y+HIW1Mt
>>266
駄目でした。

因みに
$sql = "select * from tb where aa = \"what\'s\"";
$sql = "select * from tb where aa = \"what''s\"";
でも駄目

もう何が悪いのか微塵も解らないよorz
0268nobodyさん2005/06/17(金) 22:38:37ID:???
>>267
そもそもクエリ自体が成功してるのか、mysql_errno()とかmysql_error()で確認汁。
またPHPからだけじゃなくて、mysqlのプロンプトで同じSQL打ってみ。
あとmagic_quote_runtimeがOffになってるのか再確認。
0269nobodyさん2005/06/17(金) 22:55:56ID:???
>>267
print_r($sql);
で吐きだれたクエリを
>>268
02702612005/06/17(金) 23:39:41ID:Y+HIW1Mt
プロンプトから直に投げてみました。
該当件数無しで帰ってきました。
該当レコードは間違いなく存在する状態で、です。
magic_quote_runtimeはOFFでした。
これ以上はDB板の方で利いた方がいい内容でしょうか…。
02712612005/06/17(金) 23:50:01ID:???
書き込んだ後で、関係の無い他の部分を修正してもう一度試してみたら
何故か普通に動作しました。
結局原因は不明ですが、解決いたしましたのでご報告。
アドバイス有難うございました。
それと、ごめんなさい。
0272nobodyさん2005/06/18(土) 00:05:18ID:???
>>270
原因不明で解決つう余り望ましくない結果で収束したが、
(原因不明だと、根本的に解決したわけじゃないから)
プロンプトから直に投げても望まない動作だとわかった時点で、
ここを切り上げて、DB板のMySQLスレに移る。
本当は最初からPHPなのかDBMSなのか自分で切り分けるのが良いんだけど、
まあ自分で切り分けが最初に出来なければ、それはそれで仕方がない。
0273nobodyさん2005/06/18(土) 01:30:43ID:???
ヘタレはデバッグの仕方を覚えろ
知識が無くても天と地の差が・・・
0274nobodyさん2005/06/18(土) 01:37:31ID:QW3Qffbr
PHPのデバッグの仕方教えてください
ぐぐっても出てこないです
0275nobodyさん2005/06/18(土) 01:42:17ID:QW3Qffbr
デバッグじゃなくてデバックでぐぐってた
スマソ
0276nobodyさん2005/06/18(土) 01:55:17ID:???
>>274
怪しい箇所にecho挿入。
0277nobodyさん2005/06/18(土) 05:48:57ID:???
挿入したら3秒もちましぇん
0278nobodyさん2005/06/18(土) 08:47:57ID:???
早漏か。
0279nobodyさん2005/06/18(土) 09:41:50ID:???
>>276
基本だよな
0280nobodyさん2005/06/18(土) 10:50:07ID:???
構文チェックなら、DOS窓からできる。
0281nobodyさん2005/06/18(土) 11:02:16ID:???
>>280
Windowsならな
0282nobodyさん2005/06/18(土) 12:00:46ID:???
>>281
CLI版が入ってれば
php -l -f hoge.php
でsyntaxチェックできるぞ。
0283nobodyさん2005/06/18(土) 12:25:26ID:???
日付関数で、
文字列 12 から翌月の 01 を求めたいんだが..
誰か教えて下さい。
0284nobodyさん2005/06/18(土) 12:39:01ID:???
文字列 12 ってどういう意味?
0285nobodyさん2005/06/18(土) 12:50:31ID:???
>>283
お前にはマニュアルの見方を教えてやろう。
まずお前が探しているのは日付関数だ。
ということでとりあえず
http://www.php.net/manual/ja/ref.datetime.php
を開く。つぎにこの中を全部見る勢いで読みふける。この程度なら読めるだろ。日本語だし。

http://www.php.net/manual/ja/ref.datetime.php
にたどり着くわけだ。
0286nobodyさん2005/06/18(土) 13:06:14ID:???
わけわからん、もっと詳しく
02872832005/06/18(土) 13:20:06ID:???
>>285
リンクに飛ぶのが面倒なので、やり方だけを書いてください。
お願いします。
0288nobodyさん2005/06/18(土) 13:29:04ID:hdLIfWAD
現在rssをphpで表示しています。
借りているサーバーではサブドメインでのPHPが利用できないのですが
サブドメインで表示できるようにしたいのですが方法はありますか?
0289nobodyさん2005/06/18(土) 13:50:12ID:???
iframeかなんかで外からとれば?
0290nobodyさん2005/06/18(土) 13:53:45ID:???
鯖かえれば
0291nobodyさん2005/06/18(土) 13:58:16ID:???
>>287
1. 俺がこれから指定する銀行口座に1000円入金する。
2. 小一時間待つ
3. このスレに希望のソースコードが貼られる。
0292nobodyさん2005/06/18(土) 14:00:48ID:???
>>291 早く口座晒せ
0293nobodyさん2005/06/18(土) 14:24:51ID:???
>>289
以前はそれでやってたんだが
偽装パケット攻撃かなんか?の問題で急に
に本ドメインのphp自体を停止された(鯖側は一切否定)
サーバー側では一切弄ってませんとか言ってたけど
他のPHPがすべて使えなくなったから鯖側でいじったのは間違いない
0294nobodyさん2005/06/18(土) 14:27:39ID:???
>>287
おいおい……
そのまえに284の質問に答えたら?
0295nobodyさん2005/06/18(土) 14:31:41ID:???
>>292
今口座屋と話してるのでちょっと待ってね。
なんか法律がどうとかで単価上げやがって値下げ交渉中。
0296nobodyさん2005/06/18(土) 16:32:43ID:ify5TbYf
投票PHPで投票者のIP・ホストを保存できるものはないでしょうか?
検索してもなかなか見つからなくてorz
0297nobodyさん2005/06/18(土) 16:39:00ID:???
echo "<a href=\"aiueo.php?id=";
echo $row["abcde"];
echo "\"> ほげ </a>";

これを一行にはできないのでしょうか?

echo "<a href=\"aiueo.php?id=$row["abcde"]\"> ほげ </a>";
上記ではだめでした。分かってなくて済みません。
0298nobodyさん2005/06/18(土) 16:42:03ID:???
echo "<a href=\"aiueo.php?id=" . $row["abcde"] . "\"> ほげ </a>";
0299nobodyさん2005/06/18(土) 16:53:19ID:???
>>298
すごい、一発で出来た・・。ありがとうございます。
$row["abcde"] を" .と. "で囲んでいますね。これの意味は
どういう事でしょうか。echoの次にHTML文以外の言語を用いるときに
使うとか?
0300nobodyさん2005/06/18(土) 17:16:43ID:???
>>299
"(クオーテーション)は文字列の開始・終了。
.(ピリオド)は連結演算子。
echo "<a href=\"aiueo.php?id={$row['abcde']}\"> ほげ </a>";
でも良い >>256-260 参照
0301nobodyさん2005/06/18(土) 17:46:38ID:???
>>300
aありがとうございます。
>>256-260見ました。リンク先も見たのですが、私にはサッパリ・・・。
echo文に変数を入れるときには" .と. "で({と}で)囲む、と覚えることに
します。
0302nobodyさん2005/06/18(土) 19:22:16ID:???
>>301
塚、.は文字列を連結するんだって。
サッパリとかいってないで、覚えようとしないと、またはまるよ。
0303nobodyさん2005/06/18(土) 20:06:43ID:???
日付同士の比較をしたいのですが、みなさんはどうしてますか?
UNIX時間にしてから比較しかないのかな
0304nobodyさん2005/06/18(土) 21:17:30ID:???
unixタイムスタンプにした方が便利な時で、なおかつunixタイムスタンプの範囲内であれば、unixタイムスタンプを使いますよ。
そうじゃない時は、必要な処理だけを自分で実装します(数値に分解して比較処理等)。
0305nobodyさん2005/06/18(土) 21:50:21ID:???
>>304
(゚∀゚)サンクスコ
あと30年動くわけないんでUNIXタイムでいくよ!
0306nobodyさん2005/06/18(土) 23:31:14ID:???
includeするスクリプトと、実行するスクリプトの文字コードが違ってても大丈夫?
0307nobodyさん2005/06/18(土) 23:50:39ID:???
コメントが日本語とかだと化けて出るぞぉ
0308nobodyさん2005/06/19(日) 00:45:05ID:TIL6O4MF
特定のサイト(URL)のhtmファイルを、一定感覚でログ保存してくれるphpスクリプトってありませんか?
0309nobodyさん2005/06/19(日) 00:50:19ID:???
ありますよ。
0310nobodyさん2005/06/19(日) 00:55:24ID:???
ありませんよ。
0311nobodyさん2005/06/19(日) 01:03:29ID:???
>特定のサイト(URL)のhtmファイル保存
10分でかける

>一定間隔
cronでまわせ。
0312nobodyさん2005/06/19(日) 02:52:08ID:???
>>311
10分でかけるなら書いてあげろよ^^
0313nobodyさん2005/06/19(日) 02:56:49ID:???
>>308=>>312
03143122005/06/19(日) 03:14:15ID:L/EHa1/f
>>308に悪いんで、一応IDだしときますね^^;;;;;;;;;
0315nobodyさん2005/06/19(日) 03:34:15ID:???
>>312
それようのスレで頼めばいい。
0316nobodyさん2005/06/19(日) 09:03:21ID:???
>>308
それくらい自分で作れよ。
0317nobodyさん2005/06/19(日) 11:08:03ID:???
作れるやつがわざわざ何々のスクリプトありますか?なんて聞かないだろ…
0318nobodyさん2005/06/19(日) 11:28:42ID:???
作れない奴は望むべからず
0319nobodyさん2005/06/19(日) 11:34:22ID:???
OS作れないのにパソコン使ってるんですが、まずいでしょうか?
0320nobodyさん2005/06/19(日) 12:31:14ID:???
>>319
ヤバス
0321nobodyさん2005/06/19(日) 12:33:41ID:???
つくってやればいいじゃん
0322nobodyさん2005/06/19(日) 12:42:55ID:???
やだよ、カネクレ
03233082005/06/19(日) 13:27:19ID:TIL6O4MF
スレ違いの質問だったようですいません

>>315
該当スレを探したんですけど、それらしいスレを見つけることができませんでした
誘導してもらえると助かります
0324nobodyさん2005/06/19(日) 13:28:17ID:???
10分で書けるコードに金を要求するほど困ってるのか?
0325nobodyさん2005/06/19(日) 13:35:56ID:???
結局脳内ってことか
0326nobodyさん2005/06/19(日) 13:36:55ID:???
書けもしないのに適当に10分でかけるっていったんだろw

特定のサイトが他人のサイトだったら、
負荷がかかるだろうし、迷惑かかるんじゃないか?
コンテンツが多いサイトならなおさら。
一定感覚が毎日とかだと、アク禁される恐れもあるかもね。
0327nobodyさん2005/06/19(日) 13:41:33ID:???
正論禿同
0328nobodyさん2005/06/19(日) 14:09:44ID:???
open (CMD, "$uptime |");
$UPTIME = <CMD>;
close (CMD);

このPerlスクリプトをPHPスクリプトにしたいのですが、
どのように書けば良いか教えていtだけませんか?
0329nobodyさん2005/06/19(日) 14:10:09ID:???
間違えました
open (CMD, "uptime |");
0330nobodyさん2005/06/19(日) 16:33:03ID:???
$uptime = `uptime`;

もしくはpopen参照。
ttp://www.php.net/manual/ja/function.popen.php
0331nobodyさん2005/06/19(日) 17:27:22ID:???
なるほど、実行演算子で出来るのですね。
ありがとうございました
0332nobodyさん2005/06/19(日) 17:30:09ID:???
rubyではスクリプトを実行ファイル (exe形式) に変換 する exerbがありますが
phpではこういったものはありませんか?
0333nobodyさん2005/06/19(日) 18:16:07ID:???
>>332
ある。フリーのものもあったと思う。
03343322005/06/19(日) 18:49:43ID:???
>>333
名称わかりませんか??
03353322005/06/19(日) 18:51:28ID:???
Zend Encoder 以外は何があるんでしょうか・・・
0336nobodyさん2005/06/19(日) 20:26:26ID:???
特定のサイトが更新されたら、自サイトに更新部分を自動で表示する
スクリプトって既にありますか?

例:ヤフーhttp://dailynews.yahoo.co.jp/fc/
のとある部分の更新を自サイトにも反映させる
0337nobodyさん2005/06/19(日) 20:28:50ID:???
 つ http://a.hatena.ne.jp/
0338nobodyさん2005/06/19(日) 20:32:34ID:???
>>337
自サイトに更新部分を自動で表示する
スクリプトって既にありますか?
0339nobodyさん2005/06/19(日) 20:53:47ID:???
捜し物スレへどうぞ
0340nobodyさん2005/06/19(日) 20:56:43ID:???
>>339
探し


で板内検索かけても0HITなのは仕様ですか?
0341nobodyさん2005/06/19(日) 21:49:29ID:???
探し物スレも探せないのか
0342nobodyさん2005/06/19(日) 23:23:59ID:???
>>336
自分で作れ ⇒(翻訳)⇒ クレクレ厨 Uzeeeeeeeeeeeeeeeeeeeeeeeeee
0343nobodyさん2005/06/20(月) 01:14:32ID:???
>>335
http://php-compiler.net/
03443362005/06/20(月) 08:25:49ID:???
ども。
今月号のウェブデザイニングかなんかでRSSをPHPでごにょごにょして
自サイトに表示させよう!ってコラムを発見したので
やってみまーす。
0345nobodyさん2005/06/20(月) 13:07:37ID:???
初めてVine LinuxにPHP4を入れていろいろと試しているのですが。
普通は表示されるはずのエラー表示が全くされません。

正しいコードを書いてみて実行させたときには正常に表示されましたので、
今度はわざとコードを間違えて記入し実行させてみたところ、全くエラー表示が出ず、
ページには何も表示されていませんでした。
何か設定がおかしいのでしょうか?
0346nobodyさん2005/06/20(月) 13:59:35ID:???
>>345
error_reporing(0)
03473452005/06/20(月) 14:00:59ID:???
自己解決しました(_ _(--;(_ _(--; ペコペコ

php.ini の display_errors の箇所をOffにしたままという超あほな原因でした。
お騒がせ致しました。。
0348nobodyさん2005/06/20(月) 22:48:03ID:0mb4CR9X
htmlのフォームからpostで受けた値をcsvに書き出す、っていうスクリプトの依頼を受けたんだけど、極力、そのフォームはいじらないでくれということでやってみたんだけど
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
のせいらしく、文字が化けたり、おかしなことになってしまっています。
よく考えたらフォームからphpで、それもEUCでしか書いた事がなかったんで初めてのケース。
Shift_JISのhtmlのフォームからEUCのphpにちゃんと値を受け渡すのって、面倒なことなんでしょうか?
あんまり面倒なら、元のフォームから作らせてもらおうと思ってます。
0349nobodyさん2005/06/20(月) 23:52:51ID:???
はい、そうですか。
0350nobodyさん2005/06/20(月) 23:53:43ID:???
>>348
すごく簡単だよ。
Shift_JIS(HTML) → EUC-JP(PHP)
ってことは、PHPにはPOSTされたデータはShift_JISで渡ってくるよね?
だから、POSTされたデータをPHP側でShift_JISからEUC-JPに変換してから処理すればいい。
03513442005/06/21(火) 00:02:08ID:???
なんとレッツPHPにて、公開されてました。。。
すんません。

−RSSブロガー−■ 概要
特定サイトのRSSを表示します
ブログの右ブロックとかに置くとか。
シンプル。件数指定可能
03523482005/06/21(火) 00:02:31ID:8+GyN4cK
>>350
いろいろぐぐって見るのですがなかなか。
なんと言う関数を見ればよいんでしょうか?
無難なことしかやったことがないもんで・・・情けないです
0353nobodyさん2005/06/21(火) 00:03:28ID:???
>>350
コンテンツのエンコーディングと同じエンコーディングでGET/POSTされるとは限らない。
ちゃんと受け取り時にチェックするように作るのが吉。
0354nobodyさん2005/06/21(火) 00:08:11ID:???
>>353
おっしゃる通り。
ただ、いきなりそんなこと言っても分からないと思ったので。
0355nobodyさん2005/06/21(火) 00:11:46ID:???
>>352

mb_convert_encoding()関数で変換できるよ。
詳細はマニュアルを参照↓
ttp://jp.php.net/manual/ja/function.mb-convert-encoding.php
0356nobodyさん2005/06/21(火) 00:18:09ID:???
>>352
簡単なのは、mbstring.encoding_translation機能で
HTTP入力のエンコーディングを変換させてしまう。

但しmbstring.http_inputをautoに設定した場合、エンコーディングの
自動判定は完璧ではないことに注意すること。判定に使われる文字数が
少なかったり、特殊なものだったりすると誤判定となる場合がある。

確実なのは自動判定にはせず、hiddenで出力に判定用の文字列(非ASCII)を
埋め込み、それを利用して適正な変換を掛けること。
0357 2005/06/21(火) 07:12:10ID:lHQtHO0n
web制作板で質問し、誘導されてきました。

ttp://halpal.net/xoops/modules/auth/buy_list.html
のように検索→選択→.vcs .csv .pdbなどで出力というのは
どうやっているのでしょうか?
ずーぷすでないと無理なのでしょうか?
0358nobodyさん2005/06/21(火) 11:30:35ID:t9cWxmD/
セッション管理を MySQL で行いたいのですが、ハマっています。
サンプル・プログラムの画面遷移は以下のようになっています。
-----------------------------------------------
+----------------+
| |
V |
login.php --> do.login.php --> top.php
-----------------------------------------------

do.login.php では、POST されたパラメータを使い認証を行います・
成功すれば、$_SESSION["username"] にユーザ名をセットし・
トップ画面にリダイレクトしています。
-----------------------------------------------
:
snipping
:
$username = $_POST["username"];
$password = $_POST["password"];

if (User::isExist($username, $password)) {
$_SESSION = array();
$_SESSION["username"] = $username;

// トップ画面へ
}
else {
// ログイン画面へ
}
-----------------------------------------------

03593582005/06/21(火) 11:31:25ID:t9cWxmD/
上記の認証をパスしてトップ画面へ遷移した後、テーブルの
セッション・データを格納するフィールドを確認すると、
username|s:"anonymous"; とシリアライズされた文字列が
格納できているのですが、top.php にて $_SESSION["username"] の
値を参照しても値を取得することが出来ません・

ちなみに、do.login.php および top.php の先頭では、
以下の関数を実行しています。
-----------------------------------------------
function createSession() {
$session_handler =& SessionHandler::getInstance();
session_set_save_handler(
array(&$session_handler, "open"),
array(&$session_handler, "close"),
array(&$session_handler, "read"),
array(&$session_handler, "write"),
array(&$session_handler, "destroy"),
array(&$session_handler, "gc"));
session_start();
}
-----------------------------------------------

php のバージョンは、4.1.2 です。
マヌケなミスをしているかもしれませんが、アドバイスでもいただければ
助かります。
0360nobodyさん2005/06/21(火) 16:24:54ID:???
<form action="hoge.php" method="POST">
<input type="submit" name="aaa" value="登録">

で、hoge.phpへ飛ばされたname属性"aaa"とvalue属性"登録"の扱われ方が
よく分かりません。
とある例題のhoge.phpを見ると
if($aaa == "登録"){ 処理内容 }
となっています。name属性が突然変数として扱われ、value属性"登録"が
その条件の対象として扱われています。
そう言ったものだと言われればそれまでですが、どうも釈然としません。
うまく説明していただけませんでしょうか。
Web製作板でも聞き、「ブラウザは"aaa=登録"というフォームデータ集合を送る」
までは教えていただきましたが、あとはこちらへ誘導されました。
よろしくお願いします。
0361nobodyさん2005/06/21(火) 16:38:39ID:???
>>360
それは昔のバージョンの場合。
ま、今のでもregister_globalがonだとできるのかな。でも、off推奨です。
あとは、
http://php.s3.to/man/language.variables.external.html
でも読んで下さい。

簡単に書くとPOSTで送信されたデータは、$_POSTという配列にはいります。
で、name属性aaaは$_POST['aaa']にはいり、その値が「登録」になります。
0362nobodyさん2005/06/21(火) 16:44:02ID:QobDAUu/
phpでリモートのsybaseに接続したいんですが
sybase_connectに、どのように書けばいいのでしょうか・・・

servernameにはinterfacesのDB名なのはわかったんですが
ホスト名はどこで指定するんでしょうか
0363nobodyさん2005/06/21(火) 16:54:23ID:???
>>361
ありがとうございます。難しいですが、なんとか理解できそうです。
残念ながらご紹介のサイトはリンク切れ(サーバ落ち?)のようでした。
自分でももうちょっとあれこれ探してみます。
どうもでした!
0364nobodyさん2005/06/21(火) 16:58:44ID:???
>>363
つけたし。
[登録]ボタンを押したら $_POST['aaa'] に '登録' という文字列がセットされる。
エンターボタンを押すなどして[登録]ボタンを押さずに送信した場合はセットされない。
これでもためしとけ。

<pre>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="text" name="bbb" value="">
<input type="submit" name="aaa" value="登録">
</form>
<?php if ($_POST) print_r($_POST) ?>
</pre>
0365nobodyさん2005/06/21(火) 16:59:19ID:???
>>359
read()がおかしんじゃね?
0366nobodyさん2005/06/21(火) 17:02:02ID:???
>>363
別にリンク切れではなく、ちゃんと見られるのだが。
では、
http://jp2.php.net/manual/ja/language.variables.external.php

0367nobodyさん2005/06/21(火) 17:03:11ID:???
>>363
あとは、
http://jp2.php.net/manual/ja/tutorial.forms.php
これも。
0368nobodyさん2005/06/21(火) 17:09:35ID:???
>>362
漏れはsybase使ったことないが、マニュアルのUser Contributed Notesにこんなのあったよ。
http://www.php.net/manual/ja/function.sybase-connect.php

> Set the appname using the 5th optional parameter:
> http://lxr.php.net/source/php-src/ext/sybase_ct/php_sybase_ct.c#713
>
> sybase_connect(
> $host= 'host',
> $user= 'user',
> $pass= 'pass',
> $charset= NULL,
> $appname= 'myapp'
> );

一個目の引数がホスト名なんじゃないの?
で、DB名の指定はマニュアルには正式に書いてないが5個めの引数ってことだと思うけど。
違ってたらスマソ。
0369nobodyさん2005/06/21(火) 17:37:23ID:???
現在PECLのImagickライブラリを使っているのですが、
このライブラリを使って画像の減色は可能でしょうか?
ImageMagickのコマンドだとconvert -colorsオプションで色数を指定することできますが、
PHPスクリプト上で同様のことを行いたいと考えています。

ご存知の方がいらっしゃいましたら、ご教授よろしくお願いいたします。
03703632005/06/21(火) 20:08:21ID:???
遅レスになりますが、お答えくださった方、ありがとうございます。
レスをプリントし、マイテキストとしました。感謝します。

遅まきながら、ただ今オンラインマニュアルのご紹介頂いたページを
見ています。
0371nobodyさん2005/06/21(火) 20:16:19ID:???
>>369
Imagickのソースで
http://sourdough.phpee.com/api//__filesource/fsource_sourdough_image_Sd_ImageSd_Image_peclim.class.php.html#a65
の_doConvert関数のコメント部分によると、quality and/or border option には今のところ使えるものはないらしい。
たぶんImagickじゃ無理なんじゃないかと推測。(わからんけど)
execなりGDなりで頑張りましょう。
0372nobodyさん2005/06/21(火) 20:34:57ID:???
>>371
やはり無理ですか・・。
execでコマンド叩くしかなさそうですね。
ご回答ありがとうございました!!助かりました。
03733482005/06/21(火) 22:35:21ID:8+GyN4cK
>>353-356
サンクスです。これだけヒントもらえれば大丈夫、がんばってみます!
0374nobodyさん2005/06/22(水) 02:43:23ID:BzQc8psA
数十くらいのファイルのデータベース呼び出すPHPって、いくらくらいで
やってもらえるもの? って具体的じゃないからくだれねえ質問なんだが
0375nobodyさん2005/06/22(水) 03:27:18ID:???
>>374
なんの処理もなく呼び出してぶちまけるだけなら1万円。
見た目の調整とか
呼び出すだけじゃなくて入力もしろとか
検索とか、一定の条件での抽出とか
要求が増えるたびに1項目数万〜数十万のオーダーで金額が上がる。

どこかのスレで要求を全部晒せば
暇な誰かが作ってくれるかもしれないけど。
0376nobodyさん2005/06/22(水) 10:37:07ID:???
参考なりますた。
風俗のオプションみたいに考えればいいんですね。
数年契約なら、初年度10万とか言われたもので、びびりました。
0377nobodyさん2005/06/22(水) 16:47:32ID:+cNtc3On
0xF90x42 を F942 に変換する方法を教えてください。
0378nobodyさん2005/06/22(水) 17:01:12ID:???
str_replace("0x","0xF90x42");
0379nobodyさん2005/06/22(水) 17:01:33ID:???
>>377
バイナリデータを文字列にするなら
$hex = "\xF9\x42";
$str = bin2hex($hex);
echo $str;
0380nobodyさん2005/06/22(水) 17:01:43ID:???
↑miss
str_replace("0x","","0xF90x42");
0381nobodyさん2005/06/22(水) 17:03:34ID:???
>>377
str_replace('0x', '', '0xF90x42');

0382nobodyさん2005/06/22(水) 17:07:27ID:???
$str = strtoupper(bin2hex($hex));
03833772005/06/22(水) 18:51:27ID:???
レス頂いた方々ありがとうございました。携帯の絵文字変換に使おうと思っています。今晩試します。
0384nobodyさん2005/06/22(水) 18:56:43ID:W6A/DjUI
とある本のサンプルなんですが、
どうやってもちゃんと動きません。
当方初心者のためお手上げです。
どこが悪いんでしょうか?

<?php
$hour = date('H'); //現在の時刻から時間のみを取得
if (3 <= $hour < 10) { //午前3時から午前10時
  $greeting = 'おはようございます! ';
} else if (10 <= $hour < 18) { //午前10時から午後6時
  $greeting = 'こんにちは! ';
} else { // 午前3時から午後6時以外の時間
  $greeting = 'こんばんは! ';
}
echo $greeting."現在の時間は".date('H時i分s秒')."です。";
?>
0385nobodyさん2005/06/22(水) 18:59:06ID:???
>>384
前にも同じ質問あったな…ネタか?
その「とある本」の名前を明かしてください。
話はそれからだ。
0386nobodyさん2005/06/22(水) 19:00:02ID:W6A/DjUI
はじめてのPHP言語プログラミング入門
という本です。
最初の方で紹介されているサンプルです。
0387nobodyさん2005/06/22(水) 19:08:20ID:???
<?php
$hour = date('H'); //現在の時刻から時間のみを取得
if (3 <= $hour && $hour < 10) { //午前3時から午前10時
  $greeting = 'おはようございます! ';
} else if (10 <= $hour && $hour < 18) { //午前10時から午後6時
  $greeting = 'こんにちは! ';
} else { // 午前3時から午後6時以外の時間
  $greeting = 'こんばんは! ';
}
echo $greeting."現在の時間は".date('H時i分s秒')."です。";
?>
0388nobodyさん2005/06/22(水) 19:11:02ID:W6A/DjUI

やはりサンプルは間違いなんですかねぇ。
ありがとうございました。
03893872005/06/22(水) 19:12:56ID:???
念のため。

中に含まれる全角スペースは削除汁
0390nobodyさん2005/06/22(水) 20:22:06ID:???
>>385
別スレの前スレだから、既に落ちてる

で、P31のhenkan2.phpでまたハマるのかな(w
(returnのところな)>>386
そろそろ正誤表を載せるべきかと思う>技評
http://www.gihyo.co.jp/list/list_support.phpにないし。
03913842005/06/22(水) 21:07:27ID:1AW0Sutd
いろいろ有難うございました
0392nobodyさん2005/06/22(水) 21:29:09ID:???
2ちゃんねるのread.cgiのように、一定の負荷量を超えていたら一時的にexitするようにしたいのですが、「負荷量」はどうやって取得すればよいのですか?
0393nobodyさん2005/06/22(水) 23:11:45ID:???
read.cgiのソース読めば?
uptimeても漬かってるんじゃないの。
0394nobodyさん2005/06/22(水) 23:26:50ID:???
LANでphp+apacheでwebサーバーを立てています。

LAN内のPCからはhttp://hoge/でアクセスします。
特にドメインは設定していません。

このサーバーでクライアントにcookieを食わせるため、
setcookie('foo','hoge',time()+3600)
とかやってみるんですが、
http://hoge/cookie.php
とホスト名のみでアクセスした場合はうまくいきません。
http://192.168.0.x/cookie.php
とかIPアドレス直打ちだとうまくいきます。

setcookieにドメイン名を設定するといいのかと思いましたが、
hogeというのはホスト名なので
どうやったらうまくいくのか見当がつきません。

setcookieの制約とかあるのでしょうか。
0395nobodyさん2005/06/22(水) 23:58:20ID:???
>>393
調べてみましたが、
print `uptime`
しても何も出力されないんです。(FreeBSD)
これは鯖が禁止しているということですか?そうなら代替手段を教えていただけませんか?
0396nobodyさん2005/06/23(木) 00:03:44ID:???
>>392
そこで「負荷量」の指針となるものは、"具体的"になんなの?
0397nobodyさん2005/06/23(木) 01:51:49ID:???
>>396
実はよく知らないのですが、調べたところ、UNIXでは普通はロードアベレージをさすようなので、ロードアベレージを取得したいです。
0398nobodyさん2005/06/23(木) 02:38:19ID:???
>>397
ttp://www.pic.mydns.jp/time/uptime_php.html
0399nobodyさん2005/06/23(木) 02:45:22ID:???
>>397
じゃあ、>>393の言ってることがそう。
でも多くの場合PHPはCGIとしてじゃなくて
サーバモジュールを介して実行されてるから
難しい、というか困難だよ。
0400nobodyさん2005/06/23(木) 02:58:40ID:???
>>398
shell_exec関数を使うのですね。ありがとうございました。
>>399
鯖はXREAでCGI版PHP5を使っています。
どうも昨日仕様変更があり、uptimeがとれなくなったようです。今回は残念ですが諦めようと思います。ありがとうございました。
0401nobodyさん2005/06/23(木) 10:27:31ID:F1hyqq8I
みなさん、PHPのハックとかやってますか?
やってる人いたら活用法を教えてください。
0402nobodyさん2005/06/23(木) 15:25:08ID:???
Mojavi Japanのサイトが文字化けしまくりなんですが素人製作なんでしょうか
0403nobodyさん2005/06/23(木) 15:37:10ID:???
文字化けはしないけど、Mojavi Japan重いなぁ。
Mojaviって重いの?
0404nobodyさん2005/06/23(木) 15:39:41ID:???
確かにちょっと重いね。
APIマニュアルはサクサクなのに。
0405nobodyさん2005/06/23(木) 15:47:44ID:???
>>402
藻前のブラウザの設定の問題だろ。
化けないぞ。
0406nobodyさん2005/06/23(木) 16:03:40ID:???
Mojaviってブラウザによって化けるの?
使えねえな。
0407nobodyさん2005/06/23(木) 16:40:05ID:???
>>406
普通にcontent-type でcharset=EUC-JPってヘッダー送ってるから文字化けするのはおかしいよ
0408nobodyさん2005/06/23(木) 16:50:20ID:???
MYSQLにdate型で格納されているデータを
PHPで呼び出して「○○○○年○○月○○日」って表示させたいんだけど…
なんぼ探しても分からんです…、
0409nobodyさん2005/06/23(木) 16:55:04ID:???
echo date("Y年(省略)", strtotime($mysqlHogeDate));

これでもあかんのか
04104082005/06/23(木) 17:06:51ID:???
>409
あっさり出来た…。そっか。strtotime()でタイムスタンプに変換しなきゃいかんのね。
ありがとー。チョー感謝。
0411nobodyさん2005/06/23(木) 17:59:24ID:???
趣味のサイトに、ちょっとしたblog… というかnews投稿スクリプトが欲しくて作成依頼をしたいのですが、
個人の方に依頼する場合幾ら位掛かるものでしょうか?
業者のサイトを見てみましたが、40000〜100000と少し厳しめで( ´Д⊂ヽ

かなりの数のblogやNucleus等のスクリプトが配布されていますが、
どれもベストなものが無く、カスタムもしましたが自分の考えているモノに出来なくて。

このスレでも誰か仕事として請け負って頂けないかな…。
0412nobodyさん2005/06/23(木) 18:02:48ID:???
>>411
趣味なら自作したら?
0413nobodyさん2005/06/23(木) 18:08:10ID:???
>>412
自作はしたいのですが、自分で作れるほどスキルが無くて…。
請負をされている方も殆ど見つからず、こっちに書かせてもらいました。
0414nobodyさん2005/06/23(木) 18:09:06ID:???
>>411
取りあえず仕様書いたら、誰か作ってくれるかもよ。
0415nobodyさん2005/06/23(木) 18:25:51ID:???
>>411
>かなりの数のblogやNucleus等のスクリプトが配布されていますが、

それだけじゃわからんだろ。
希望でなかったものはどれで、
どんな風にしたいのかが分からないとなぁ。

0416nobodyさん2005/06/23(木) 18:31:28ID:J1stG/Y3
あるSQLと連携したphpスクリプトを運用しているのですが、
70万リクエスト/日程度の規模のサイトの場合、PHPはCGI/DSO
どちらの方が安定して稼動するのでしょうか、検索してみると
今はモジュールで回してるほうが安定するといった書き込みが散見
されるのですが、データがない為不安を感じているところです。

--------以下構成------------
OS:Windows Server 2003 + IIS6&PHP4.3.9 + SQL Server 2000
0417nobodyさん2005/06/23(木) 18:46:32ID:???
PHP blog系ツールのスレのblogを使わせて頂きましたが、どれもファイル数が多く、非常に使い辛くて(カスタムもしにくくて)。
出来れば1ファイルのみで動くものが希望でした。

自分の考えている構成としては、
index.php
  インデックスページ(blog風)
  ページ1
  ページ2
  ページ3... (switchで切り替え?)
このような感じです。インデックスページのスクリプトが作れずにいました。

機能としては、
1記事毎に1logfile生成(ttp://host/index.php?a=001 等で表示されるように)
カテゴリー分類
記事毎にコメント可能
各ページ共通のheader footer navimenu
ページ部分はincludeで読み込ませる
DBやトラックバック等は不要
この様な感じで考えています。
0418nobodyさん2005/06/23(木) 19:10:09ID:???
>>417
各種Wikiは試してみた?
Wikiといっても、それぞれ特色も仕様の違いもある。
カレンダーを目次としたナビゲーションも可能。
コンテンツの構成も希望するものに近いと思う。
0419nobodyさん2005/06/23(木) 19:11:26ID:???
4,1,0,あな,http://www.a/,
3,1,0,に、,http://www.n/,
2,1,0,いれ,http://www.i/,
1,3,0,たい,http://www.r/,

のようなテキストファイルから、
カンマで区切って4つ目と5つ目をセットにしてそれぞれ変数に入れたいんです。
ランダムに。

一番最初の桁は1,2,3,4,5,6…と順に増えていくので、その数字をランダムに取得して、その行の4つ目と5つ目を変数に入れるにはどうやればいいのでしょうか。
0420nobodyさん2005/06/23(木) 19:22:11ID:???
>>419
各行を「,」でexplodeして配列にいれれば?
0421nobodyさん2005/06/23(木) 19:49:56ID:???
すいません、各行にできないんです。
一行目ならなんとかできるんですが、、、
0422nobodyさん2005/06/23(木) 19:51:42ID:???
fgetcsv()ならexplode不要だよ。
全部読みこんだらshuffle()かましとけばOK。

それぞれのフィールドの長さが固定で、かつファイルを全部読むのが嫌ならfseek()で無理やりやりますか。
0423nobodyさん2005/06/23(木) 20:17:12ID:???
>>421
なんで角行ができないの?
0424nobodyさん2005/06/23(木) 20:29:59ID:???
$fp = fopen("dat.txt", "r");
$hand=fgetcsv($fp,100);

うーん、、、
shuffle()は配列全部の順番を変えてしまうので4つ目と5つ目だけを取得出来ないような。
今やってみたらfgetcsv()でも一行目しか取得できてないのですが。てか説明が下手でごめんなさい。

やりたいことはdat.txtからphpにランダムで表示するリンクを作りたいんです。
アクセスするたびに違うサイトへのリンク(ひとつ)が表示されるやつです。
1行に1サイト登録してあって、区切りの4つ目がサイト名で5つ目がURIなんです。
どうやるのがいいんでしょうか
0425nobodyさん2005/06/23(木) 20:43:38ID:???
たぶんこんなとこじゃね?

while ($line = fgetcsv($fp, 100))
  $data[] = $line;

srand(time());
list($num, $nazo1, $nazo2, $yottsume, $itsutsume, $nazo3)
  = $data[rand(0, count($data)-1)];

echo "$num <a href=\"$itsutsume\">$yottsume</a>\n";
0426nobodyさん2005/06/23(木) 20:44:29ID:n/yDCgXV
本当にくだらない質問なんですけどお尋ねします
PHPでサイトを作りたいのですが、PHPの専門書を見ると
Webを作るためというより、最初からPHPプログラミングの解説
のような本ばかりに思えます。まず何をしていいのか・・・
HTMLの初心者向け解説のように、一つ一つ段階を追って
基本的なところから「Webサイト」制作を支援するような
本かサイトをご存知ありませんか。
テンプレートのようなものがあるとうれしいのですが。

作りたいのはブログのような見た目のサイトです。
(あと簡単なアンケートをつけたりです)
細かいことは追って勉強して付け加えるような感じで・・・
簡単なPerl、CGIが書ける程度のプログラミングの基礎はあります。
どなたかアドバイスお願いできませんか。
0427nobodyさん2005/06/23(木) 20:47:30ID:???
つ [http://www.php.net/manual/ja/]
0428初心者2005/06/23(木) 21:12:37ID:x16cC/Vq
大変申し訳ありません。
スレ違いだと思いますが、IPアドレスについて教えていただけませんか?
0429nobodyさん2005/06/23(木) 21:13:39ID:???
>>428
http://e-words.jp/w/IPE382A2E38389E383ACE382B9.html
0430初心者2005/06/23(木) 21:16:23ID:x16cC/Vq
>>429
リンク、ありがとうございます。
ちょっと読んできます。

3つのIPアドレスから、同一人物もしくは同一PCからの
書き込みかを判断出来るのでしょうか?
0431nobodyさん2005/06/23(木) 21:21:12ID:bxtJrr+S
>>427
たしかに>>426みたいな人もたくさんいるんだよ。
そんな人に>>427を教えても仕方ない。
マニュアルのstr strとかいきなり出ても意味分かんないもん。
結局hello worldで行き止まりってパターンが多いと思う。
漏れはperl全然理解出来なかったけどphpはなんだかとっつきやすかった。
phpで色々やって、久々にやったらperlもjavascriptも前分からなかった事がすんなりと分かった。

>>426
hello worldからアフォくさがらずにやる。かならず、実行。
読んで分かった気になるのとやってみるのは何倍も違う。
それから、自分のやりたいことを調べながら作る。
調べるのがうまくいかないのは、やりたい事が明確じゃないから。
探し物をするうちに、いろんな知識が頭の片隅に残る。
たしか、あんな関数あったよな、とか。
苦労してやりたい事が自分の力で出来たら面白くて夜も眠れなくなる。
そんなことしてるうちに、これが仕事になってたよ。
ここのとこ、寝てても半覚醒で脳内でルーチンを考えてがばっと起きて
やってみたらずっと出来なかったことがうまく逝ったり、
パソコンの前で一人で、ぶつぶつ言ってたら、朝、出社してきた同僚が
びっくりしたり、けっこうやばい人になってきたみたい。
0432nobodyさん2005/06/23(木) 21:26:22ID:???
IPアドレスは、平成元年にドメイン名の私有が認められたことから、
CSNET時代より公益者や私益管理者が、ドメインの領有を宣言する意味も含め
ドメインを引くためのアドレスとしたことに由来するといわれるが、
IPアドレスのみを使用する例もあり、ドメイン名とIPアドレスのいずれが早いかは
鶏と卵のような議論となって判然としない場合が多い。しかしドメイン名を所有していたのは
古くは社会的な裕福層(経営者)であり、そのものたちは常に財力でブランドの威勢を誇示していたので
必然的にドメイン名はブランドの名誉を象徴し、余人の僭称を許さない特権的色彩が濃くなっていたものと考えられる。
0433nobodyさん2005/06/23(木) 21:32:11ID:???
>>430
>3つのIPアドレスから、同一人物もしくは同一PCからの
>書き込みかを判断出来るのでしょうか?
判断できません。その瞬間において"誰"または"どの端末(機器)"に
割り当てられていた(使用されていた)かのデータが必要です。
そのようなデータは個人の通信の秘密にも関わることなので、
法律上の強制力がない限り、第三者に漏洩することは処罰の対象にもなります。
0434nobodyさん2005/06/23(木) 21:37:48ID:???
>>425
レス遅れましたがありがとうございました。
動作に何の問題もなかったです。
さらに弄って使わせていただきます。
while (〜) $data[] = $line;
の発想がないんだよな〜
0435nobodyさん2005/06/23(木) 21:54:37ID:???
まぁ、マニュアルのfgetcsvのページに 例としてwhile()を使ったものも載ってるんだけどね。
0436nobodyさん2005/06/23(木) 21:59:38ID:???
>>431
PHPやっててJavascript久しぶりに触るってのも珍しい気がする。
俺もHelloWorldから実際にやってみるのは有効だと思うね。
全くもって同意見!んで、ぶつぶつ言ってるのも同じだねw
最初先輩らの独り言がうるせーなーと思ってたけど、1年も経つと
自分もやっぱり歩きながら「あ〜、あれをこうして・・・」とか思わず口に
だしてるね・・・。
04374272005/06/23(木) 22:03:27ID:???
>>431
ちょっと待て。
漏れは初心者の間ずーっと、PHP本家のマニュアルが一番役にたってたぞ。
今もリファレンスは役に立ってるし。
最初は何もわからなくて色んな入門サイトを回ったけど、行き着いたところは本家のマニュアルだった。
I.はじめに から始まって V.機能 までは初学者にとってもためになる内容が多いと思う。
難しい内容も少しはあるかもしれないけど、まさに>>426の言うように一つ一つ段階を追って基本的なところから説明してくれている。
0438nobodyさん2005/06/23(木) 22:25:17ID:???
>>432
便乗質問。
ipをdigなりlookupすればドメインは解るけど、ipの何番から何番は、どこのプロバイダで・・・というリストみたいな物はあるんでしょうか?

>>436
あ、ほとんど使うJavascriptは使い回しで事足りてたから。新たに書いてみようと思ったときに昔が嘘のように、自分の思った事が書けたんだ。
それに他人のソースを見て意味がわかってすぐに応用出来た。やりたい事が明確になって構造的な思考が出来ると、あとはリファレンスを見るだけだもん。
あと、ほんと、読んで「わかった気になる」ってのは大きな落とし穴。
最初は意味がわからんから、セミコロンとコロンを間違えていきなり嫌になったりとかw
ブツブツいうのはホントにやばいね。嫁も「やめさせなきゃと思うけど、途中で話しかけると怒るじゃん」と。まだオブジェクト指向もわかってないのにキチガイ一歩手前でつ。寝ながら夢の中でひらめいちゃったりっていうのはない?

>>437
あくまで、漏れはそうした、っていうことを>>426に言いたかったんだ。
いきなり、膨大なマニュアルを突きつけられると引いてしまうひともいるんだよ。

>>426
きつい事をいうとその段階でこんなとこで質問してるのでは先が思いやられる。
>基本的なところから「Webサイト」制作を支援
>テンプレート云々
ここらへんから、なんか焦ってるなぁ、と感じたんだよね。
焦るな。とにかくもちつけ。
>簡単なPerl、CGIが書ける程度のプログラミングの基礎はあります。
これだけ書けてるなら、phpはもっと解りやすいはずだ。

とりあえず、この辺はどう?
離れPHP島
ttp://masago.kir.jp/
レッツPHP!
ttp://php.s3.to/
0439nobodyさん2005/06/23(木) 22:37:29ID:???
長くて読む気にもなr(ry
0440nobodyさん2005/06/23(木) 22:39:02ID:???
>>438
最初の便乗質問と、
その後に続くゴタクを同じ人間が書いていると思いたくないな。
0441nobodyさん2005/06/23(木) 23:00:56ID:???
        _____
        (\  ∞  ノ
   ぱんつぅヽ、ヽ(゚∀゚) /ぱんつぅ!
          `(ノ)__ノつ
           U U
0442nobodyさん2005/06/24(金) 00:00:24ID:???
文系が混ざってるな。

文系理系どっちが優れてるかっていう話でなく、
質問する側は答える側に多いと予想できる
理系の人間に解りやすい文章を書いた方がいいぞ。

郷に入れば郷に従えですよ
0443nobodyさん2005/06/24(金) 00:12:01ID:???
文系(笑)
0444nobodyさん2005/06/24(金) 00:14:57ID:???
つ [ blog、日記帳、チラシの隅]
0445nobodyさん2005/06/24(金) 00:31:16ID:???
文系の人は顔文字は使わない。
m9(^Д^)プギャーなら、
はっはっは。おかしくて腹がよじれそうだよ。
と言う。
0446nobodyさん2005/06/24(金) 00:32:22ID:???
文系の人は擬音なんて使わない!
0447nobodyさん2005/06/24(金) 00:36:03ID:???
PHPでPOSTを送るにはどうしたらいいですか?
0448nobodyさん2005/06/24(金) 00:40:00ID:???
>>447
fsockopen
0449nobodyさん2005/06/24(金) 06:50:57ID:???
fsockopenだのHTTPクライアントをPHPで作るだの、
その辺の話は難しすぎてよく分からん。
マニュアルのマニュアルが欲しい。
0450nobodyさん2005/06/24(金) 08:12:29ID:???
大抵の人はこういう思考手順になるんじゃないかな?

PHPでPOSTを送る
-> PHP言語を使って、HTTP/1.0 or HTTP/1.1で定義されているPOSTリクエストを実行したい
PHPでそれをするにはどういう関数がある?
-> ネットワーク関数のfsockopenでソケット通信をすればできそう。
  処理手順はHTTPの事が書いてあるRFCを見れば分かるかな。
  GETの時には便利だったファイルシステム関数はPOSTには使えないみたい。ショボーン
誰かが便利な関数を作ってないかな?
-> pearのHTTP_Clientクラスが使えそう。(今、pearのDBdj。。)

で、レスには 「 つ [fsockopen] 」と書くっと。
そうすると、「使い方が分かりません」とかレスがあって、
「RFC嫁」とかレスされて、カウンターや掲示板を作る時には不要だった知識が存在する事を知る。
それらの知識を吸収するにつれて、彼女からのackが返ってきませんとかRSTされますた、
とかいうレスをたてるようになる。
0451nobodyさん2005/06/24(金) 08:54:46ID:???
にゃーにゃー
あっ、ネタたんだ
にゃーにゃー!ネコたんだぞー
ねこたんかわいいいいーー
0452nobodyさん2005/06/24(金) 10:08:18ID:???
>>450
> 大抵の人はこういう思考手順になるんじゃないかな?

けっこう同意。漏れもそういう流れだった。
WebProgやってるとHTTPに触る機会が何だかんだで出てくる罠。
でPHPマニュアルだけでは情報が網羅されていないことに気づき、RFCを読みに行くと。
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
↑ここかなり助かってる。

> 彼女からのackが返ってきませんとかRSTされますた

実体験済みですね?
0453nobodyさん2005/06/24(金) 10:14:45ID:???
>>450
なんか笑った。
ぶっきらぼうに見えて意外と親切だな、喪前。
でも漏れはド素人なので、「RFC嫁」の段階で挫折してる厨房だけどな。

ところでackとかRSTって何??
0454nobodyさん2005/06/24(金) 10:56:37ID:???
>>453
脊髄反射してないでe-wordなりGoogleで調べろって。

0455nobodyさん2005/06/24(金) 12:02:51ID:???
ttp://home.netyou.jp/gg/ugpop/academy003-078.htm
0456nobodyさん2005/06/24(金) 12:09:47ID:???
PHPでTCPいじくる機会あるのか?
0457nobodyさん2005/06/24(金) 13:45:10ID:???
php-5.1.0b2インストールしてみたんだけど、
./configure のオプションに
--with-pdo-pgsql=/usr/local/pgsql
付けただけじゃPDOでPostgreSQL使えないの?
なんか画面に
could not find driver
って出るし
0458nobodyさん2005/06/24(金) 14:31:03ID:???
きっとドライバが見つからなかったんだよ。
0459nobodyさん2005/06/24(金) 14:40:13ID:USyl7tNv
PHPの変数って基本的にどこで定義しても
グローバル変数になるんでしょうか?
スコープの概念は無い?
0460nobodyさん2005/06/24(金) 14:46:53ID:???
つ [ ttp://www.php.net/manual/ja/language.variables.scope.php ]
0461nobodyさん2005/06/24(金) 15:10:24ID:???
グローバル変数って言っても関数の中からアクセスする場合globalつけないとアクセスできないから、PHPのメインルーチンは軽くCのmain()みたいなもんだと捕らえてる。
globalとか$GLOBALSでアクセス「できてしまう」点にこだわるならそうは言い切れないけど。
なるべく関数やクラスを使ってグローバル変数を少なくするのも意味があるけど、メインルーチンでさらっとかけるのもPHPの利点だな。
その辺はサイトの規模に応じて適度にやるべしってことで。
0462nobodyさん2005/06/24(金) 17:31:55ID:???
レンタル鯖のサポートは技術的な質問がNGなので、こちらへ来ました。
レンタル鯖にデフォルトでMySQL、PostgreSQL6・7があるのですが、
PHPからDBを呼び出すことができません。
■PostgreSQL6に接続する場合
$conn = pg_connect("host=localhost port=5432 dbname=ユーザID user=ユーザID");
■PostgreSQL7に接続する場合
$conn = pg_connect ("host=localhost port = 5433 dbname=ユーザID user=ユーザID password=パスワード");
上記をPHPファイルに記述して、読み込みを試みると
Parse error: parse error in /usr/home/ユーザID/html/ファイル名.php on line 行
となり、おもいっきり入口で足踏み状態です。
どなたかおわかりになられる方がおられましたら、解決方法をお教えください。
0463nobodyさん2005/06/24(金) 17:34:15ID:???
マニュアルをまるごと写せ。そして値を書き換えろ。
04644622005/06/24(金) 18:46:19ID:???
>>463さま
レスありがとうございます。
マニュアルもなく悪戦苦闘しています。
呼び出しができないことには何もできず、
あの手この手でいじり倒している最中です。
0465nobodyさん2005/06/24(金) 19:39:34ID:???
>>マニュアルもなく悪戦苦闘しています。
つ http://jp.php.net/manual/ja/function.pg-connect.php
0466nobodyさん2005/06/24(金) 19:40:48ID:???
>>462
マニュアルって、
php公式のオンラインマニュアルのことをいっているのだと思われ。
0467426 2005/06/24(金) 22:30:19ID:???
レス遅れてすいません
皆さんありがとうございました。

>>431
大変参考になりますた。やっぱりHello Worldから始めることなんですね。
参考書は、関数一覧とか、PHPではこういう書き方をしますとか、まずそういうのが
飛び込んできて、サイトらしいものがどのような構造で作られてるのか
全体像が見えなかったんです。まず形になっているもの、テンプレートというか
初心者にやさしいシンプルなPHPがあって、それをいじりながら勉強・・・みたいなものを
勝手に思い描いてたんですけど、改めます。。 時間かかりそうです。

>>437
ブクマに入ってるんですけど、自分はまだこれを参考にする段階じゃない
とか思ってますた。よんでみます・・・

>>438
そうですね焦ってるというか、本当に普及してきていて
似た見た目(機能)のPHPサイトを度々見るので、きっとテンプレも
あるはずだと思っちゃったんですよね 近道思考というか、大昔初めてサイト
作ったときにそんなやり方でHTML勉強したのを思い出して・・・
Perlを勉強したときのよーに1からやります、ハイ。

オラわくわくしてきますた。
0468nobodyさん2005/06/24(金) 22:45:12ID:???
>>467
長くて読む気にならんけど、「ブクマ」に失笑
0469nobodyさん2005/06/24(金) 22:56:56ID:???
>>468
失笑
0470nobodyさん2005/06/24(金) 23:39:42ID:???
爆笑
0471nobodyさん2005/06/25(土) 01:44:42ID:???
phpのtar の中にspecが入ってるんだけど、そのspecでrpmビルドすると
buildconfが実行されるんだけど、buildconfを実行するとどうなるんでしょうか
0472nobodyさん2005/06/25(土) 02:32:16ID:n/Krloyt
「ゲームサーバー構築」はどのスレ行ったらいいでしょうか
0473nobodyさん2005/06/25(土) 02:42:46ID:???
聞きたい事によるんじゃないかな。
ここはPHPというプログラム言語のスレなのでそれ以外はスレ違いになるけど。

・何から手をつけていいか分からない -> オイラもどこに誘導していいか分からない
・webサーバ等の一般的な鯖を構築したい -> 各OS板か自宅鯖板
・サーバ・クライアント プログラムを作成したい -> プログラム板
etc.
04744722005/06/25(土) 04:48:00ID:6Ztw8aQ7
>>473 ありがとうございました。
0475nobodyさん2005/06/25(土) 08:39:15ID:YtxstrO5
Ladybug.phpっていうWeb埋め込み型アンケートがあったんですが、それを再配布してる所って知りませんか?
0476nobodyさん2005/06/25(土) 10:28:15ID:???
phpで乱数を表示させるにはどうやればいいんでしょう?
10〜32ぐらいの範囲で表示させたいんですが
0477nobodyさん2005/06/25(土) 10:29:09ID:???
http://www.proxy2.de/
ここのしかないかな。
0478nobodyさん2005/06/25(土) 10:43:59ID:???
>>476
echo rand(10, 32);
0479nobodyさん2005/06/25(土) 18:11:23ID:???
便乗質問。
乱数を発生させる時の、
srand()とかで種を植えるってどういう事ですか?
しなかった場合とどう違うのでしょうか?
# php4.2以降は自動になって不要なのですね
0480nobodyさん2005/06/25(土) 18:36:00ID:???
>>479
種を蒔かなけりゃ、まともな実(乱数)は得られません。
工業物のように同じ生産物が欲しければ同じ種を、
ひとつひとつの異なる味わいが欲しければ、
それぞれ蒔く種にも違いを与えます。
0481nobodyさん2005/06/25(土) 18:41:25ID:???
コンピュータの発生させる乱数は真の意味でランダムなわけではない。
意図的にランダムな種を植えてやらないと、コンピュータはアフォなので、randが毎回同じ値を返してしまう。
srandの引数には、その瞬間の時刻などのランダムになりやすい要素を与えてやる。
(プログラムは人間のきまぐれで実行されるので、まず間違いなく時刻は実質上ランダムになる)
0482nobodyさん2005/06/25(土) 20:03:43ID:???
PHPの場合に限れば、最近のVerはrandの際には自動でsrand相当が働くので、
いちいちsrandする必要は無い。

あえてsrandするのは・・・
例えば、100件のリストをシャッフルしたりする場合、
リスト値の頭に個々に乱数値を付けてからソートし、
そのリストをページ分けしたりする場合。

まぁ、普通はそんな事しなくてももっと簡単な方方があるけど。
0483nobodyさん2005/06/25(土) 20:31:05ID:???
echo文の中に文字列と変数を混ぜて書く場合はコンマで繋ぐ、とモノの本に
書いてありましたが、

echo "<p>番号 $bango1 と $bango2 </p>";
でも希望通りに表示されます。でもこの書き方って良くないのでしょうか?
0484nobodyさん2005/06/25(土) 20:37:30ID:???
問題はないけどコンマでつなぐほうが多少速い
0485nobodyさん2005/06/25(土) 20:40:36ID:???
なるほど、分かりました。
お返事感謝します。
0486nobodyさん2005/06/25(土) 20:44:44ID:???
問題はないけどマンコでつなぐほうが多少臭い
0487nobodyさん2005/06/25(土) 20:45:35ID:???
なるほど、分かりました。
お返事感謝します。
0488nobodyさん2005/06/25(土) 21:27:52ID:???
>>484
コンマじゃなくてピリオドじゃね?
0489nobodyさん2005/06/25(土) 21:51:06ID:???
山田君!>>488の座布団、全部持ってって!
0490nobodyさん2005/06/25(土) 22:15:59ID:???
>>488 ほんとだ きづかんかったorz
0491nobodyさん2005/06/25(土) 22:19:55ID:???
体感でそんな変わると思わんけど。
0492nobodyさん2005/06/25(土) 22:44:34ID:???
>>480-482
なるほど、お返事感謝します。
0493nobodyさん2005/06/26(日) 00:25:14ID:???
初心者の初心者的質問なんですが。
DOCTYPE以下HTMLのヘッダだけ header.incに書いておいて
mainのphpでincludeしようとしてるのですが
titleタグに変数を書いておけば動的に指定できると思うとそうはいかず
($hogeと変数名がそのまま出力される)
じゃあheader.incの中身をヒアドキュメントで囲んだphp文に変えると
変な挙動を起こします(ブラウザから表示されたソース見るとincludeされてない)
逆にCのincludeみたいに「ただそこに入れるだけ」だと思うと
<?php - ?>でかこったphp文の中にいきなりDOCTYPEなんかが入ってきて
まともに動作するのが妙です。
PHPのincludeはいったい何してんでしょうか。

ちなみにわざわざhtmlヘッダを用意するのは、あとで静的HTMLファイルを作成する時使う予定だからです。
0494nobodyさん2005/06/26(日) 00:41:34ID:???
>>493
とりあえずソース晒さないと誰にも分からないよ。
0495nobodyさん2005/06/26(日) 00:44:53ID:???
>>493

> mainのphpでincludeしようとしてるのですが
>titleタグに変数を書いておけば動的に指定できると思うとそうはいかず
これ、やってるけど普通にできるよ。
どっかでparseミスしてない?
04964932005/06/26(日) 01:13:46ID:???
失礼。こういうのまんま貼ってだいじょうぶかな?
----header.inc
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>$title</title>
<meta http-equiv="content-type" content="text/html; charset=euc-jp">
</head>
<body>
----ここまで
----main.php
<?php
$title = "おらのぺーじ";
include("header.inc");
?>
本文だじぇ
</body></html>
----ここまで
これで main.phpをブラウザで開くと、タイトルが$titleとして表示される。
ページのソース見ても $titleまんま表示された。なんでだろ?という話です。
0497nobodyさん2005/06/26(日) 01:29:07ID:???
<==
04984932005/06/26(日) 01:34:02ID:???
あふぉでした。
$titleを<?php echo $title; ?>としたら出ました。
と書こうとしたら<==というのもあるのか。。。

includeされた部分が自動的にphp外である、というのは
まあ仕様って思ってればよいのですね?
まんず失礼すますた。
0499nobodyさん2005/06/26(日) 01:42:32ID:???
   〃∩ ∧_∧
   ⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
     `ヽ_っ⌒/⌒c ttp://www.php.net/manual/ja/function.include.php
0500nobodyさん2005/06/26(日) 02:34:59ID:???
>>497
すいません<==って何ですか?
検索キーワードでもいいので教えてください
0501nobodyさん2005/06/26(日) 03:48:10ID:???
<?php
$mail = '<a href="mailto:hoge@hoge.jp">E-Mail</a>';
echo "メールは $mail まで<br>";
?>

↑のように$mailの周りにスペース入れないと
「メールは」
で終わってしまうんですけど、そういうものなんでしょうか。
スペースを詰める何かいい方法ありますでしょうか。
0502nobodyさん2005/06/26(日) 03:57:27ID:???
>>501
PHPの中の人は、" "内で$を発見すると、できるだけ長くなるような変数名を探そうとする。
$mailまで = '<a href="mailto:hoge@hoge.jp">E-Mail</a>';
echo "メールは$mailまで<br>";

または、
echo "メールは${mail}まで<br>";
のように、どこまでが変数名なのか{ }を使って教えてやればよい。

文字列演算子 . を使って文字列の結合をするのも手やね
0503501 2005/06/26(日) 04:04:02ID:???
>>502
大変参考になりました。ありがとうございます!
0504nobodyさん2005/06/26(日) 04:16:26ID:???
exitってわざわざ記述した方が良いの?
0505nobodyさん2005/06/26(日) 04:47:26ID:???
記述したいときに記述したらいい。
0506nobodyさん2005/06/26(日) 08:33:14ID:???
ありのままに。













きりぎりすはぱぱ。
0507nobodyさん2005/06/26(日) 09:56:01ID:???
<TEXTAREA rows="8" cols="20"></TEXTAREA>
の内容をPOSTで送り、受け取ったデータを一行ごと別々の変数に入れたいのですが、
どうすればいいのでしょうか?
0508nobodyさん2005/06/26(日) 10:31:02ID:???
>>507
別々の変数名ってならチト面倒。
配列ってなら、受け取ったデータを、
改行コードでexplode
で桶。
0509nobodyさん2005/06/26(日) 10:40:02ID:???
>>508 できました。 サンクス
0510nobodyさん2005/06/26(日) 12:21:41ID:???
>>500
顔文字だよ
0511nobodyさん2005/06/26(日) 12:33:31ID:???
>>488
カンマでもイケル。
意味は異なるけど出力は同じ
0512nobodyさん2005/06/26(日) 13:31:02ID:???
printはできるけど、echoはできないんじゃなかったっけ。
確か配列として渡すって奴でしょ。
0513nobodyさん2005/06/26(日) 14:08:27ID:???
>>512
なんの話でつか?

ちなみに
・printには戻り値がある。echoにはない。
・printには1つしか引数を渡せない。echoにはいくつでも渡せる。

違いと言う違いはこのくらいだけど、
PHPが内部で素直に動いているなら>>484の言うようにコンマのほうが早いかも。
ピリオドでつなぐと文字列の結合をしてから出力するはめになるから。
0514nobodyさん2005/06/26(日) 15:21:10ID:???
<a href="?mode=sample">sample3</a><br>
<? php
if (mode=='sample') {
include("./formsample3.php");
} else {
echo "ここに表示されます";
}
?>

Ifの行でエラーが出てしまいます。。
?mode=で渡してページを切り替えたいです。おねがいします
0515nobodyさん2005/06/26(日) 15:34:22ID:???
>>514
modeって何?
0516nobodyさん2005/06/26(日) 15:39:14ID:???
>>514
ttp://jp.php.net/manual/ja/language.variables.php
ttp://jp.php.net/manual/ja/language.variables.predefined.php#language.variables.superglobals
0517nobodyさん2005/06/26(日) 16:33:21ID:???
>>514
むしろphpversion()を実行して出力結果を我々に報告したまえ。
話はそれからだ。
0518514 2005/06/26(日) 16:57:26ID:???
>>516
よくわかりませんでした。
$_GET['mode']== でもダメdes

>>517
http://jp.php.net/manual/ja/function.phpversion.php
ここのコピペして実行したんですけど、エラーが出ます・・・
一応PHP Version 5.0.4です
0519nobodyさん2005/06/26(日) 17:36:59ID:???
( ゚д゚) <? php ...?

(つд⊂)ゴシゴシ

(;゚д゚) 半角スペースある?

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚) 半角スペース入ってるよね
0520nobodyさん2005/06/26(日) 18:21:21ID:???
もしかして大漁?w
0521nobodyさん2005/06/26(日) 18:24:47ID:???
Perlの$/ = "\n"、Javaのprintlnに相当する機能は何ですか?
0522nobodyさん2005/06/26(日) 18:33:46ID:???
>>521
男は黙ってecho
0523nobodyさん2005/06/26(日) 18:36:54ID:???
PHPでアクセス解析スクリプトを書いています。

$ip = getenv('REMOTE_ADDR');
でリモートアドレスが

$ref = getenv('HTTP_REFERER');
でリンク元が取得できますが、

さらに閲覧しているブラウザの種類、OSの種類を調べるには
どうしたらいいでしょうか?
0524nobodyさん2005/06/26(日) 18:48:12ID:???
>>523

print_r($_SERVER);
0525nobodyさん2005/06/26(日) 18:48:29ID:???
HTTP_USER_AGENT
05265142005/06/26(日) 19:36:32ID:???
>>519
どこのことでしょうか。
釣りじゃありません。
0527nobodyさん2005/06/26(日) 20:26:50ID:???
>>526
釣られついでに・・・

<? php
  ↑
 ここ
0528nobodyさん2005/06/26(日) 20:32:18ID:???
>>519
しっかしタイミングサイコーだったな
禿藁www
05295232005/06/26(日) 20:48:58ID:???
>>524-525
> print_r($_SERVER);

$_SERVERで調べてみましたら、

$_SERVER['REMOTE_ADDR'] …… ユーザのIPアドレス
という用法がありました。

> $ip = getenv('REMOTE_ADDR');
getenvは使わなくても済むんですね。
05305142005/06/26(日) 21:03:14ID:???
>>527
_| ̄|○

デキマスタ・・・。
0531nobodyさん2005/06/26(日) 21:13:01ID:???
なあー、お前ら本当に釣りだと思ってレスしてるの?
0532nobodyさん2005/06/27(月) 01:05:41ID:???
>>531
釣りじゃないとしたら、逆に涙が出てくる。
0533nobodyさん2005/06/27(月) 01:26:11ID:???
>>500
漏れもわからん、それ初めて見たけど、どういう風に使うんだろう?
>>502
${mail}と{$mail}どっちでもいいんだよね?
漏れはとくに意味もなう{$mail}という書き方に統一してるけど、どっちがいいとかあるのかな?
0534nobodyさん2005/06/27(月) 01:32:57ID:???
function & ???? ($a, $b, $c)

function ???? (&$a, &$b, &$c)
は違いますか?
0535nobodyさん2005/06/27(月) 01:54:31ID:???
>>500
===、<==、>==は型を区別する
(型は整数型、文字型など)

(0 == FALSE)はTRUE
(0 === FALSE)はFALSE
("0" == 0)はTRUE
("0" === 0)はFALSE
0536nobodyさん2005/06/27(月) 02:46:06ID:???
>>500
PHPのマニュアルと見ると、
戻り値に配列を返す(失敗時はfalse)という関数が多いけど、
そういう場合は、!==か===で戻り値を判定しないとうまくいかないことがある。

例えば、こういう場合。
$lines = file("sample.txt");
if($files == false) {
echo "読み込み失敗";
}

sample.txtが空のファイルの場合、読み込み自体は失敗していないので、
本当は空の配列が返って来てるのにfalseと判定されてしまう。

なので、こうする。
$lines = file("sample.txt");
if($files === false) {
echo "読み込み失敗";
}

これなら、正しく動作する。
05375362005/06/27(月) 02:48:15ID:???
ちょっと書き間違えた。

×:if($files == false) {
○:if($lines == false) {

×:if($files === false) {
○:if($lines === false) {
0538nobodyさん2005/06/27(月) 03:16:08ID:???
>>513
>>533
どっちもPHP5での測定だけど、両方とも実行時間変わらなかった。
0539nobodyさん2005/06/27(月) 09:08:21ID:???
>>538
文字列の長さがムチャクチャ長ければ>>513は歴然と差がでる。
ま、通常のシチュエーションでは気にする必要ないだろうが。
それと、>>533は速度を気にしているわけではないと思われ。

>>533
漏れも意味もなく{$mail}だけど、敢えて${mail}に変える必要性は今のとこ感じたことない。

というわけで結論

お 前 ら そ ん な こ と 気 に す ん な
0540nobodyさん2005/06/27(月) 13:29:35ID:2NmU8YuH
ソケット通信って具体的にはどんなことが出来るんですか?
0541nobodyさん2005/06/27(月) 13:42:55ID:???
マニュアルの例にコード付きで載ってるじゃん。。。
0542nobodyさん2005/06/27(月) 14:07:28ID:???
>>541
いや、全然分かりません。全く分かりません。

例えば、自分で作ったサイトに検索フォームを設置し、入力された語句をGoogleで検索し、
その結果を受信して、加工して、自分のサイトに表示する、みたいなことをしたいんですけど。

って友達に言ったら「ソケット通信で出来るんじゃね?」と言われた。
マニュアル見てもちんぷんかんぷん。レベル不足なのは分かっているけどレベルアップしたい。
だから教えて下さい。
0543nobodyさん2005/06/27(月) 14:17:21ID:???
>>542
google検索ならWebサービスが使える。
コードもわんさか転がってる。
それと、例みても理解出来ない無能さを少しは恥じろ
0544nobodyさん2005/06/27(月) 14:23:30ID:???
>>543
はい、出直してきます。。
0545nobodyさん2005/06/27(月) 15:03:21ID:???
そんなキミにプレゼント。とりあえずこれで遊んどけ。

$keyword = "すけべ";
$result = file_get_contents( "http://www.google.co.jp/search?q=$keyword" );

慣れてきたらfsockopenとかいじってみたり、HTTPの勉強してみたり。
言っとくけどHTTPの詳細はPHPマニュアルには載っていない。
HTTPをかじった後には友達の「ソケット通信で出来るんじゃね?」の意味がわかる。

その次はXMLの勉強。
SOAPというものがわかってきたら、ようやくGoogle Web APIの登場。
これが>>543のいうWebサービス。
道のりは短くはないぞ。
0546nobodyさん2005/06/27(月) 15:10:27ID:???
PHP5になって嬉しいことってある?
俺はPHP4でも満足だがおまいらもそうだろ?
0547nobodyさん2005/06/27(月) 15:14:59ID:???
性能面ではPHP5は明らかにPHP4より上だな。
アンチPHP5なのって結局は移行に手間かけられないとかPHP5ありの鯖が少ないとかそういう理由でしょ。
0548nobodyさん2005/06/27(月) 15:15:04ID:???
if($ccc<>"") {
$sql="insert into tableA values ('$aaa','$bbb','$ccc')";
$result=mysql_query($sql);
$sql="select * from tableA where aaa='$aaa'";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result)){
$xxx = $row["bbb"];
}

echo "$xxx";
echo "$bbb";
exit;
}
 ・
 ・
insertはどの行で実行されるのでしょうか。
またselectはどの行で実行されるのでしょうか。(なんとなく
echo "$xxx"; のような気もしますが)

はじめに変数sqlにインサート文を代入し、続けて同名の変数sql
に今度はセレクト文を代入しています。
mysql_fetch_arrayの$resultはどちらの結果を代入されたのか
混乱しないのでしょうか。
よろしくお願いします。
0549nobodyさん2005/06/27(月) 15:23:18ID:???
ヒント:上書きされる
0550nobodyさん2005/06/27(月) 15:54:17ID:???
>>547
最近PHP初めたばかりで5と4の違いもわからないんですけど
5の環境で開発すると、4の鯖で動かないとかあるんですか?
5で追加されたような新しい書き方してなければOKなんですよね?
(といってもどれが新しいのかもわからないけど)
05515482005/06/27(月) 16:34:21ID:???
>>549
上書きってことは、$resultには
mysql_query(select * from tableA where aaa='$aaa');
しか代入されないってことですか?
0552nobodyさん2005/06/27(月) 16:45:48ID:???
自分でやってみりゃわかるじゃん。。
insertがどの行で実行されるかつーのも、マニュアルのmysql_queryのページに書いてあるんだしさ。
もうちょっと頭使おうよ。
0553nobodyさん2005/06/27(月) 16:53:33ID:???
そもそも元のコードもワケワカラン
何のために while ループ内で $xxx に代入してるんだ?
最後の echo "$bbb" って何なんだ?
さっぱり理解できませぬ。。。
05545482005/06/27(月) 17:06:34ID:???
>>553 すみません。
echo $xxx;
echo $bbb; の間違いでした。(ダブルコーテーションで囲んでいました)
省略していましたが、>>548の続きには自分自身にポストする入力フォーム
があります。入力されたデータをレコードに登録し、その後登録したものを
表示する、といったものです。
0555nobodyさん2005/06/27(月) 17:12:28ID:???
>>551
上書きするまでは、ちゃんと最初のmysql_query()の結果が入ってるよ。

>insertはどの行で実行されるのでしょうか。
>またselectはどの行で実行されるのでしょうか。(なんとなく
>echo "$xxx"; のような気もしますが)
この辺の理解が明らかにオカシイ。
mysql_query()のリファレンス(というかMySQLの項全部)を嫁
0556nobodyさん2005/06/27(月) 17:16:05ID:???
塚、変数への代入って処理自体理解してねーんじゃないの?
0557nobodyさん2005/06/27(月) 17:32:04ID:???
>>554
別にダブルクォートで囲っていても問題ないけど >> echo $bbb;

レコードに登録した直後なんだから、登録したデータは手元の
変数($aaa,$bbb,$ccc)にあるわけで、それを表示すればいいような。
わざわざSELECTする必要性があるの?
もしかしてINSERTが正常に行われたかどうかをチェックする意味で
SELECTし直してるの?
0558nobodyさん2005/06/27(月) 17:34:29ID:???
さて、2905年はデュアルコアCPUがブレークしたわけだが
我がPHPもデュアルコアに対応すべくなにか効率的な記述方法は無いだろうか?
0559nobodyさん2005/06/27(月) 17:35:30ID:???
ヒントワロシス
0560nobodyさん2005/06/27(月) 17:38:20ID:???
>>558
すまん。。オレにはその超ロングパスは受け取れそうにない。。
0561nobodyさん2005/06/27(月) 17:43:05ID:???
デュアルコアCPUがブレークするまで後900年も待たねばならんのか。。
漏れの生きている間にはムリポ
05625482005/06/27(月) 18:03:00ID:???
>>555
>この辺の理解が明らかにオカシイ。
ハイ、いまいち理解していません。今読んでいる参考書がその辺
をすっ飛ばしていたもので・・。マニュアルをよく読むことにします。

>>557
その参考書の例で載っていたんです。(変数名などは変えていますが)
度素人の私は「う〜ん、そんなものなんだろう」と鵜呑みにしていました。
0563nobodyさん2005/06/27(月) 19:15:03ID:???
>>562
で、変数の代入は理解してるの?
0564nobodyさん2005/06/27(月) 20:10:40ID:???
>>550
PHP5の特性を生かしてスクリプトを作ると4では動きません。
05655482005/06/27(月) 20:18:58ID:???
>>563
あれから関連サイトを眺めてみてなんとなく理解できました。
その後に皆さんのカキコムを改めて読んでみて、納得。
>>551の発言が赤面デス。忘れてください。
0566nobodyさん2005/06/27(月) 20:28:53ID:???
>>565
>551の発言には顔があるのか
05675482005/06/27(月) 20:32:07ID:???
>>566
>>551の発言に」の間違いです。
流石にprog板の住人さんは一字一句にキビシイですね。
0568nobodyさん2005/06/27(月) 20:32:50ID:???
発言に顔があったって、いいジャマイカ
0569nobodyさん2005/06/27(月) 20:34:53ID:???
>>566 pgr
0570nobodyさん2005/06/27(月) 21:11:40ID:???
これってバグ?

$str = '?&&&';
$arr = array(
0x0000,0xFFFF,0,0xFFFF,
);
$str = mb_decode_numericentity($str, $arr, 'utf-8');
echo $str;

!&&
(&が一つ消える)
0571nobodyさん2005/06/27(月) 23:48:43ID:???
>>568 gtr
0572nobodyさん2005/06/28(火) 00:19:16ID:???
/main.php
/subdir/sub.php
/common/inc.inc
/img/hoge.jpg

inc.incの中に
<img src="../img/hoge.jpg">

と書いておいて

inc.phpを
main.phpとsub.php両方にincludeすると、当然ですがsub.phpでしかhoge.jpgを参照出来ません

/から始まるルート相対パスを使わずにhtmlの外部cssファイルのように、inc.inc自身を基準にして、ほかの階層にあるファイルを参照ってする方法がないんでしょうか?
0573nobodyさん2005/06/28(火) 02:03:31ID:???
にゃーにゃー
0574nobodyさん2005/06/28(火) 02:06:56ID:???
にゃ?
0575nobodyさん2005/06/28(火) 02:14:43ID:???
マジくだらなくてすまん。phpはじめたばっかりなんだけど、
日本語が表示できない!どうすれば良いですか?

<?php echo "日本語"; ?> 実行すると→ ??{?

<?php header('Content-Type: text/html; charset=euc-jp');
echo "日本語"; ?>        実行すると→ ??{?
Shift-JIS、SJISにしても同じ

・VineLinux3.1、Apche2、PHP4.3.11
#apt-get install php-apacheで入れました

[mbstring]
mbstring.detect_order auto auto
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS SJIS
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.language Japanese Japanese
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value

・エディタ・送信ソフトはDreamWeaver(WINDOWS)、送ったファイルをcat等で見ると日本語で見れる
・pukiwikiでは完全に日本語使えてます


0576nobodyさん2005/06/28(火) 02:17:33ID:???
>>572
<base href="http://domain/common/">

>>575
mb_http_output()
05775752005/06/28(火) 02:36:00ID:???
>576
理解できなくてゴメン
・mbstring.http_output をEUC-JP にしてみた →かわらず

・以下のページを表示
<?php
mb_http_output("EUC-JP");
echo mb_http_output();
echo "<br>日本語";
?>

↓結果
EUC-JP
??{?

イキテテスマン
0578nobodyさん2005/06/28(火) 03:31:51ID:???
>>575
php.iniの設定のどこか。
もれもさっきインスコしたら文字化けしたから、
php.iniのどこかが悪いと思って現在調べ中。
今までレン鯖においてテストしてたから(;´ω`)
0579nobodyさん2005/06/28(火) 03:35:48ID:???
きさま!
05805782005/06/28(火) 05:04:14ID:???
>>579
反省してます。ゴメンナサイゴメンナサイ・・・

で、報告ですが、やはりphp.iniの設定が問題ですた。
>>576さんのおっしゃるとおり、mbstringまわりが怪しいかと。
結局自力じゃ無理と判断し、『php.ini 設定』でググって設定しますた。
3つ目のサイトぐらいのphp.iniの設定でようやく文字化けがなおった・・・

ということで>>575さんもガンバッテ
0581nobodyさん2005/06/28(火) 10:12:50ID:???
<?php
$rndphp[0] = '<?php require("test.php"); ?>';
$rndphp[1] = '<?php require("test2.php"); ?>';
$length = count($rndphp) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$rndphp[$num]");
?>

これでHTMLにtest.phpかtest2.phpのどちらかを
ランダムに出力したいんだけど上手くいかない…どなたかご助力お願い
0582nobodyさん2005/06/28(火) 10:26:17ID:???
>>581
test.php と test2.php の中身と目的があいまいだが、

<?php
$rndphp = array( 'test.php', 'test2.php' );
$filename = $rndphp[rand(0, count($rndphp) - 1)];

// test.phpとかをテキストデータとしてそのまま出力
readfile($filename);

// もしくはtest.phpとかをPHPファイルとしてインクルード
require($filename);
?>

漏れは今日readfile()を初めて使ったw
0583nobodyさん2005/06/28(火) 10:29:59ID:???
>>582
即レスthxxx PHPファイルとしてインクルードさせるファイルです。
無事できた(つд`)
0584nobodyさん2005/06/28(火) 10:35:51ID:???
>>583
一応、こんな方法もあるよ。

$rndphp[0] = 'require("test.php");';
$rndphp[1] = 'require("test2.php");';
$length = count($rndphp) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
eval($rndphp[$num]);          
0585nobodyさん2005/06/28(火) 10:42:14ID:???
evalかー

phpマニュアル読み直してきます _/ ̄|○ ホントアリガト…
0586nobodyさん2005/06/28(火) 11:34:29ID:NOgQf4l5
今phpとフラッシュを連携する勉強をしているのですがどうしても動かないのでぜひ教えていただきたいです。

txt→php→swfの順にダイナミックテキストを使用して読み込むようにしています。

apacheとphpは動いています。MX2004を使用しています。

現在txt→phpやtxt→swfで表示はされるのですがtxt→php→swfとやると、何も表示されないのです。

変数やスクリプトを確認しても間違いっていません。

apacheやphpでフラッシュと連動させるときは何か他に設定などが必要なのでしょうか?よろしければ教えていただきたいです。
0587nobodyさん2005/06/28(火) 11:35:00ID:NOgQf4l5
586の続きです

下記にtxt、php、swfの中身を書いておきます。いずれも同じファイルの中にあります。

・・・・・・・・・・・・・・・・・
txtの中(ファイル名はsamPHP01.txtです)

テストです。
・・・・・・・・・・・・・・・・・
phpの中(ファイル名はsam02a.phpです)

<?php
if (!($fileTxt = fopen ("samPHP01.txt", "r"))) {
die("ファイルが開けません。");
}
while (!feof($fileTxt)) {
$vTxt = fgets ($fileTxt, 4096);
}
fclose($fileTxt);
echo "txtIn=".$vTxt;
?>
・・・・・・・・・・・・・・・・・・・
swfの中(ダイナミックテキストのインスタンス名はphpTxt1です)

varsData2 = new LoadVars();
varsData2.onLoad = function () {
phpTxt1.text=this.txtIn;
}
varsData2.load("sam02a.php");
・・・・・・・・・・・・・・・・・

よろしくお願いいたしますm(_ _)m
0588nobodyさん2005/06/28(火) 12:01:38ID:???
>>587
phpに直接アクセスしたときの結果は?
ちゃんとtxtIn=・・・って出力されてるかい
0589nobodyさん2005/06/28(火) 12:36:20ID:???
>>587
ヘッダは?

header("Content-type: text/plain; charset=UTF-8");
って感じで。

コンテントタイプはtext/plainにしなきゃダメだよ。
漏れの知る限りではFlashで文字コードはUTF-8しか対応してなかった気がするが、けっこう以前の話なので自信なし。
0590nobodyさん2005/06/28(火) 12:38:52ID:???
>>587
問題なく動作した。
onLoad に trace(this.txtIn) を入れて確認してみれ。
0591587です2005/06/28(火) 12:59:35ID:NOgQf4l5
>>587さん
返信ありがとうございます。
localhostでphpを動作すると
txtIn=テストです。
と出てきます。
0592587です2005/06/28(火) 13:04:27ID:NOgQf4l5
すいません上は588さんの間違いですm(_ _)m

589さん返信ありがとうございます。
すいません初心者なのでヘッダの設定はどうやるかわかりません。
header("Content-type: text/plain; charset=UTF-8");
をphpでechoを使って表示させるのでしょうか?
よろしければ教えていただきたいですm(_ _)m
0593587です2005/06/28(火) 13:08:54ID:NOgQf4l5
590さん返信ありがとうございます。
動きましたか・・・・。
なぜ私のでは動かないのか本当に困っていますorz
onLoad に trace(this.txtIn)を入れても何も表示されないのです・・・。
わざわざ確認までしていただいて申し訳ないですm(_ _)m
0594nobodyさん2005/06/28(火) 13:24:34ID:???
samPHP01.txt
sam02a.php
はUTF-8になってる?
0595587です2005/06/28(火) 13:28:43ID:NOgQf4l5
594さん返信ありがとうございます。
初心者のためUTF-8のやり方がわかりません。
今ヤフーで調べていますが、よろしければ教えていただきたいです。
お願いしますm(_ _)m
0596nobodyさん2005/06/28(火) 13:33:48ID:???
テキストエディタで変更出来る。Macならmi、WinならTeraPad等。
0597587です2005/06/28(火) 13:57:37ID:NOgQf4l5
596さん返信ありがとうございます。
TeraPadでUTF-8にしてみましたがだめでした・・。

phpで echo "txtIn=テストです。"
とやってtxtを使わないでやってみたところこれはできました。

txtで  txtIn=テストです。
とやってphpを使わないでやってみたところこれもできました。

txt→swf php→swfの二つができるのになぜ txt→php→swfはできないのでしょうか?
ホントに困ります・・・orz
0598587です2005/06/28(火) 14:11:04ID:NOgQf4l5
varsData2.load("http://localhost/sam02a.php");
と入れてみたらできました。

親切なみなさん本当にどうもありがとうございましたm(_ _)m
0599nobodyさん2005/06/28(火) 15:36:35ID:???
PHPって何の略ですか?
0600nobodyさん2005/06/28(火) 15:39:59ID:???
ttp://www.php.net/manual/ja/history.php
0601nobodyさん2005/06/28(火) 15:53:03ID:???
>>600
39!
0602nobodyさん2005/06/28(火) 16:23:21ID:???
>>599
つ [http://www.php.net/manual/ja/introduction.php]
といいたいとこだがマジレス。

P: PHP (←「再帰的」だそうです)
H: Hypertext
P: Preprocessor

PHPの一文字目Pが表すPHPはPersonal Home Pageかなんかの略だった気がする。
ということは全部広げて書くと
Personal Home Page Hypertext Preprocessor
かな?
0603nobodyさん2005/06/28(火) 16:28:39ID:???
>>602
訳して。
0604nobodyさん2005/06/28(火) 16:44:53ID:???
>602

http://jp.php.net/manual/ja/history.php
0605nobodyさん2005/06/28(火) 17:38:47ID:???
$_POSTで受け取るnameに数字を指定してるので
for($i=0;$i<10;$i++){
print $_POST['$i'];
}

のような処理をやりたいのですが、これって不可なんですか?
どうも出力されないようなので。

$val = sprintf("$_POST['%d']",$i);

みたいな処理かませばいけますか?
どうぞご教授ください。
0606nobodyさん2005/06/28(火) 17:53:23ID:???
for($i=0;$i<10;$i++){
print $_POST[$i];
}

 ' で囲った変数は無視されるよ
答えは$_POST[$i]か$_POST["$i"]
0607nobodyさん2005/06/28(火) 17:54:05ID:???
自分でやってみたんですが、sprintfじゃ普通に$_POST['0']っていう文字列になりますね。
どのようにすればいいんでしょうか・・・
0608nobodyさん2005/06/28(火) 17:54:59ID:???
>>606
どうもありがとうございました。
そこでハマってたんですね。
さっそくやってみます。
0609nobodyさん2005/06/28(火) 22:04:01ID:???
参照渡し
function & ???? ($a, $b, $c)

function ???? (&$a, &$b, &$c)
は違いますか?
0610nobodyさん2005/06/28(火) 22:36:15ID:???
蓄膿症になった
0611nobodyさん2005/06/28(火) 22:53:38ID:???
PHPのマニュアルって文字化け多くね?
0612nobodyさん2005/06/28(火) 22:56:17ID:???
>>609
上が値渡しで下が参照渡しだよ。
http://www.php.net/manual/ja/language.variables.php
0613nobodyさん2005/06/29(水) 03:47:27ID:???
>>609
上のは関数の戻り値(言わば関数からの出力)が参照渡しされる。
下のは関数の引数(言わば関数への入力)が参照渡しされる。
0614nobodyさん2005/06/29(水) 03:56:28ID:???
>>602
「再帰的」なんだからこういうことじゃないか?
PHP
= PHP Hypertext Preprocessor
= PHP Hypertext Preprocessor Hypertext Processor
= PHP Hypertext Preprocessor Hypertext Processor Hypertext Processor
= ... (無限ループ)

>>603
日本で一般的に使われる単語を用いてで表記すると
PHPハイパーテキストプリプロセッサ
0615nobodyさん2005/06/29(水) 04:51:44ID:???
PHP超文章前処理装置(・∀・)
0616nobodyさん2005/06/29(水) 06:24:19ID:???
>>613
引数に出力結果を格納する場合もあるけどな
0617nobodyさん2005/06/29(水) 07:40:26ID:???
>>616
それを引数の参照渡しという
06186162005/06/29(水) 07:45:14ID:???
> 言わば関数への入力

↑ここへのつっこみなんで。
0619nobodyさん2005/06/29(水) 11:13:11ID:???
phpを始めて、現在掲示板を作ってみているのですが
書き込み処理時のidの振り方がイマイチ分かりません。

現在は下記の様に日時でidを作っていますが、
$id = date("ymdHis");
if(! fwrite($handle,
$id. "\t" .$_POST['date']. "\t" .$_POST['title']. "\t" .$_POST['article']. "\t". "\n" ))
これを古い順番から 0001 0002 0003 .... 1256 1257 .... というようにidを振るにはどうすれば良いでしょうか?
0620nobodyさん2005/06/29(水) 11:38:26ID:???
>>619
行単位で格納しているみたいなので行数をカウントして、得た行数+1をIDとする。
または別のファイルに最新のIDを保管しておいて、掲示板書き込み毎に+1していく。
どちらにしても同時書き込みが発生することを考えてロックしておかないと重複する恐れあり。

どういう用途でIDを使用するのかは判らないけど、ファイルにはIDを格納せずに
表示時(読み出し時)に画面上で連番を振っても良いような気もする。
0621nobodyさん2005/06/29(水) 11:38:36ID:???
$logfile = 'log.dat';
$records = file($logfile);
$id = count($records);
$fp = fopen($logfile, 'a');
fwrite($fp, "$id\t$_POST['date']\t$_POST['title']\t$_POST['article']\t\n");
fclose($fp);

こんなんでいいのか?
っていうか何をどうしたいのかよくわかんないんですが。
ファイルを全部読み込むのが嫌ならレコード数は別のデータファイルに保存しといたら?
あれ、日時で$id作ったのにはなにか別の目的があった?
0622nobodyさん2005/06/29(水) 11:39:08ID:???
>>619
俺ならめんどくさいのでデータベース使う
0623nobodyさん2005/06/29(水) 11:40:21ID:???
0でpaddingする方法を知りたいのかな?
$new_str = sprintf("%04d",$number); で、0で隙間を埋めた4文字の数値になる。
新しいidを決定する方法は幾つかあるけど、他ファイルに数字を保持しておいたり、
ファイルを全部読み直して一番大きな数値を探したり、ファイルポインタを最後に移(略)。
0624nobodyさん2005/06/29(水) 11:43:03ID:???
>>622
IDの用途次第ぢゃないの?
DBを使っても抜けのない連番を作ろうとすると面倒だし。。。
0625nobodyさん2005/06/29(水) 11:45:26ID:???
>>624
SQLでAutoincrementを使ってやればそれほど面倒じゃないと思うが。
0626nobodyさん2005/06/29(水) 11:51:24ID:???
>>624
トランザクション→ロールバックするとAutoincrementでは
飛んで空き番が発生するよ。
掲示板ぐらいなら、トランザクションを使用することもないかもしれんが。。。
0627nobodyさん2005/06/29(水) 11:53:16ID:???
アンカー間違えた。。。
>>624>>625
0628nobodyさん2005/06/29(水) 12:24:59ID:???
関数の前にアンパサンドがつくとどうなるんでしょうか。
function & ???? ($a, $b, $c)
^^^^
0629nobodyさん2005/06/29(水) 12:38:53ID:???
>>628
ん?あなたは>>609ですか?
>>612>>613>>616>>617>>618に色々レス来てるが。
06306192005/06/29(水) 13:50:38ID:???
レスありがとうございます。
phpに手を出したばかりで、何か作ってみたくて掲示板を作ってみてます。
idの用途ですが、ページの何処かにタイトルのみ書き出しして記事ごとにリンクをすれば楽かなと思いまして。
日時指定は暫定処置でしています。
データベースも使えたら楽そうですが、まだそんな段階ではなく…。

>>620 621
行数カウントですが、ポインタの位置でカウントのようなので、fopenでaを指定しないと動かないですよね
自分は表示の都合上、wを指定していたのでうまく動作しませんでした。
wのままで動作する方法等ありますでしょうか

>>623
その方法も知りたかったので助かりました。
0631nobodyさん2005/06/29(水) 14:08:56ID:???
>>630
fopenでモードwを指定すると既存ファイルの中身は
捨てられてしまうんだけど。。
ひょっとして1記事=1ファイルって形態にしてるの?
だったら行数は意味ないよね。
別ファイルにidを持たせるか、ファイル数をカウントするしか
ないんぢゃないかな。
0632nobodyさん2005/06/29(水) 14:19:46ID:???
PHPで作ったページで、リンクをクリックすることでPOSTになんらかの情報を入れて
リンク先のページで扱うのってどうやればいいですか?

GETならば?の後に書けばいいのはわかるんですが、POSTの場合は
どのようにすればいいのかわかりませんでした。
0633nobodyさん2005/06/29(水) 14:28:52ID:???
>>632
フォームを通すしかないんじゃん?
JavaScriptでonclickか<a href="javascript:〜">でformのsubmit()。
0634nobodyさん2005/06/29(水) 14:47:02ID:???
>>633
なるほど、フォームですか。
そっち方面で調べてみます。
06356192005/06/29(水) 15:26:55ID:???
>>631
1記事=1ファイルではなく、すべての記事を1つのlogに格納しています。
そのlogを先頭から順番に読み込み、表示としているので、
カウントしてidを振り分けて書き込み・・・という流れはfopenのmodeだけじゃ無理ですよね。。。

別ファイルにid保持させるというのは全く見当がつかないのですが、どういった感じでしょうか・・・
0636nobodyさん2005/06/29(水) 16:45:27ID:???
>>635
う〜ん。話が見えない。。。長くなるけど少し整理してみる。

元発言(>>619)からすると、全記事=1ファイルの追記方式と
思われるので、こんな方法はどうか?と >>621 のレス

>>630 で fopenのモードwを使っているため、その方法は使用できない

fopenのモードwを使うと、記事ファイルのサイズは0にされて、
常に最新の記事「しか」ファイルに書かれていないことになる。
それは変だから、1記事=1ファイル?という趣旨が >>631 のレス

・id云々以前にモードwを使用して全記事=1ファイルに正しくできてるの?
・どういう理由でモードwに拘るの?

記事の書き込み部分と読み出し部分をすべて出してもらった方が
話は早いかもしれない。
0637nobodyさん2005/06/29(水) 17:20:36ID:???
php-MySQLでちょっとしたWebアプリを構築中なのですが
mysql_queryなどでSQLのWHERE句に変数を使う場合は
直接SQL文を編集しなければダメでしょうか?
それともバインドする方法があるのでしょうか?
0638nobodyさん2005/06/29(水) 17:29:01ID:???
>>637
ちょっと意味が分からんのだが、SQL文に変数使っても問題ない。

$sql = "select * from TABLE where status = $hensu";

見たいな形で俺は使ってる。意味が違ってたらスマンコ
0639nobodyさん2005/06/29(水) 17:41:55ID:???
>>637
PHP5ならmysqliクラスのmysqli_prepare,mysqli_stmt_bind_paramが
使用できると思うけど・・・
あまりメリットは感じないな。>>638の方法でいいんぢゃないの。
0640nobodyさん2005/06/29(水) 21:54:49ID:???
mail関数でリターンパスを設定しようとしたら
下記のようなエラーが帰ってきたのですが
Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. in /home/*****/mail.php on line 9

コレはサーバの仕様上設定できないと思ってよろしいでしょうか?
ちなみに$returnpathを外したり、
関数をmb_send_mail()に切り替えれば問題なく送信できます。

以下ソースです
$to = "**@**com";
$subject = "test";
$msg = "yes";
$from = "**@**com";
$returnpath = "-f**@**com";

mail($to,$subject,$msg,$from,$returnpath); //←line 9
0641nobodyさん2005/06/29(水) 22:01:45ID:???
エラーメッセージにおもいっきり答えが書いてある訳だが
0642nobodyさん2005/06/29(水) 22:07:15ID:???
The fifth parameter is disabled in SAFE MODE.
0643nobodyさん2005/06/29(水) 22:10:35ID:???
このエイブルの5個の並列メーターはサフェの中でモードです。
0644nobodyさん2005/06/29(水) 22:30:08ID:???
セッション管理について分からないので教えてください。
入門書に「処理内容によってはセッション変数を強制的に破棄したい場合もある」ので
session_unset()やsession_destroy()を使え、とありますが、
どういう状況で必要になってくるのでしょうか?
いろいろぐぐってhttp://www.stackasterisk.jp/tech/php/php03_06.jspとかを見てみたのですが、
ここのログイン処理用のloginExe.phpのスクリプトを見ると
アカウントあるいはパスワードを間違えた場合にsession_destroy()を実行しています。
これがなぜ必要なのかがわかりません。

セッションIDって、同一ユーザーが継続して接続していることをサーバーが判断するためのものですよね?
わざわざパスワードを間違えたからって破棄する必要があるのでしょうか?
どなたかおしえてください。
0645nobodyさん2005/06/30(木) 00:12:24ID:???
グダグダ考えてないで実際に試してみればいいのに・・・

入力されたデータが正しいかどうかを判断するのはセッション変数ではないので、
間違ったデータがセッション変数に格納された場合、それを破棄するようにしておかないと
以後正しいデータをセッション変数に書き込むことが出来なくなるから。
多くのセッション変数を扱う場合、session_unset()だと不都合な場合もあるのでunset()もよく使う。
0646nobodyさん2005/06/30(木) 00:45:09ID:YDSMxdfr
ifで複数の条件をまとめて指定するにはどうすれば良いのでしょうか。
Pascalを扱った事があるのですが、Pascalでは

if (hoge1='あsdf') and (hoge2='おちんちん') then
begin
end;

というように指定できました。PHPで同じように書きたいのですがどのように書くのが
最適なのでしょうか?
0647nobodyさん2005/06/30(木) 00:47:04ID:???
>>646
論理演算子
06486442005/06/30(木) 01:16:58ID:???
>>645
レスありがとうございます。
自分でも間違ったパスワードを入力してみたりはしたのですが、
ログイン時にユーザー名とパスワードが一致した場合のみセッション変数に格納するように記述したので
間違ったデータがセッション変数に格納されるという状況が想定できません。
たとえばどのような状況で間違ったデータが格納されてしまうということが起こるのでしょうか?
0649nobodyさん2005/06/30(木) 02:13:10ID:???
>>646
if(条件 && 条件)
{
}
0650nobodyさん2005/06/30(木) 02:20:17ID:???
>>648
自分で条件を付け足して
質問の意味を実質的に変えるような真似は
やめたほうが良いと思う。

おまえさんがどういうときに
セッション変数に格納するようにしたかなんて
回答する人間が説明されずに分かるわけがないのだから。
いらないと思うなら、つかわなきゃ良いのだ。

人間は失敗して成長する。
0651nobodyさん2005/06/30(木) 03:28:18ID:Xb073jdm
ある文字列の中に配列の値が存在するか否かを返したいんです。
以下のようにしてるんですが他にもっとうまいやり方ないでしょうか?


$ser = 123abc;
$arr = array(abc, def, ghi);

$chk = false;

foreach ($arr as $arrs) {
if(stristr($ser, $arrs) !== "false") {
$chk = true;
break;
}
}

if ($chk) echo "exist";
0652nobodyさん2005/06/30(木) 04:09:13ID:???
>>651
array_key_exists
まにゅあるみれば
0653nobodyさん2005/06/30(木) 05:00:48ID:???
>>652
おまえこそちゃんとマニュアル読め
0654nobodyさん2005/06/30(木) 06:42:04ID:???
>>651
難しい問題だな

$ser = 'abcdef';
$arr = array('abc', 'def', 'ghi');
// かってに'abc'って書いたけどabcとかって文字列リテラルのつもりだよね?

↑の場合もただ単にtrueって考えればいいわけ?
とりあえず今の通りにforeach使うしか方法ないね。
コールバック関数を指定する系のarray_*()関数使うって手もありそうだけど、それだったらforeachごと含んだ部分を関数化するのがベストだと思う。
0655nobodyさん2005/06/30(木) 07:00:03ID:???
>>651
ちょっとトリッキーだけど。

$ser = '123abc';
$arr = array('abc', 'def', 'ghi');

if (str_replace($arr, '', $ser) != $ser)
 echo "exist";
0656nobodyさん2005/06/30(木) 08:38:01ID:???
>>655
調べるだけなのに、書き換えるとか…
>>654 の言うように関数化が良いだろう
06576512005/06/30(木) 13:55:30ID:???
みなさんご意見ありがとうございます。関数化することにしました。
(;´Д`)
0658nobodyさん2005/06/30(木) 16:45:33ID:???
くだらないけど、PHPコーディングするときってバージョン管理してる?
0659nobodyさん2005/06/30(木) 18:18:52ID:???
ttp://php.s3.to/data/dl.php?dl=short
でIPもしくはhostをログに取得するにはどうすればいいでしょうか?
教えてください
0660nobodyさん2005/06/30(木) 18:26:19ID:???
くだらないんじゃなくて物臭なだけじゃねえか
0661nobodyさん2005/06/30(木) 18:28:50ID:???
>>659
DLするのマンドクセ
phpinfo()すれば IPアドレスを取得できる環境変数名が分かるから、
それ或いはgethostbyaddr()を使って取得したホスト名をログ書き込み部分に追加する。
0662nobodyさん2005/06/30(木) 20:13:41ID:???
>>661
ありがとうございます!表示されました!
しかし本体(掲示板)の方にもIPが表示されてしまいます。
ログにだけ保存したいのですが簡単にできますか?
06636512005/06/30(木) 20:49:56ID:Xb073jdm
すいません。651で書いた者ですがうまくいきません。
以下の文字列"123xyz"でも"exist"になってしまいます。
何がまずいんでしょうか。。。


$ser = '123xyz';
$arr = array('abc', 'def', 'ghi');

$chk = 'false';

foreach ($arr as $arrs) {
if(stristr($ser, $arrs) !== "false") {
$chk = 'true';
break;
}
}

if ($chk){
echo "exist";
}else{
echo "no exist";
}
0664nobodyさん2005/06/30(木) 21:57:06ID:???
true や false を文字列にすんなって。
06656512005/06/30(木) 22:41:04ID:Xb073jdm
>>664
true や false を文字列にしなければうまく動くんでしょうか?
どうやってもうまくいきません。
ヒントでもいただけませんでしょうか?
0666nobodyさん2005/06/30(木) 22:43:50ID:???
falseが文字列なせいで

if ($chk)

が真になってるんだよ。

"で括るなよ。
0667nobodyさん2005/06/30(木) 22:59:56ID:???
>>665
君は型の概念が理解できてないようだ
マニュアル読もう
06686512005/06/30(木) 23:09:30ID:Xb073jdm
>>666
ありがとうございました。できました。
勉強不測なようで恥ずかしいです。
0669nobodyさん2005/06/30(木) 23:15:28ID:???
phpでStrutsみたいなMVCフレームワークがいくつか出てますがphpで
そんな大きなシステム作るの?
だったらJavaで作ればいいのにって思うんだけど。
Apache+phpに比べてアプリケーションサーバーは重いから
それようのサーバーも無いし、購入する余裕も無くてphpって選択肢になってるの?
0670nobodyさん2005/07/01(金) 00:10:34ID:???
>>669
PHPで大きなシステム作っちゃだめなの?
0671nobodyさん2005/07/01(金) 00:15:32ID:???
>>670
関係無い話を振るなヴォケ
0672nobodyさん2005/07/01(金) 00:22:15ID:???
>>671
aho
0673nobodyさん2005/07/01(金) 00:27:29ID:???
>>669
AP再起動の手間がないから客先で作業しやすかったりした。
0674nobodyさん2005/07/01(金) 00:27:41ID:???
ごめんごめん、攻撃してるように見えちゃったかな?
phpは最近触り始めたばかりなんだけど、すごい手軽に作れちゃう
のがphpの良いところだと思っていて、MVCなんか持ち出すなと。。。

phpで大規模は作れないなんて思わないけど、セッションの異なる
ユーザー間でのデータ共有がファイルかDBしかないって、ちょっと
パフォーマンス的にきつく感じる。
JavaならServletのオブジェクト変数にスレッド間で共有したいデータを
入れておけばよいだけだから。
06756692005/07/01(金) 00:36:29ID:???
674も漏れです。

>>673
TomcatでもVer5からかな、オートロードしてくれたキガス。
商用は言うまでも無く。
0676nobodyさん2005/07/01(金) 00:55:32ID:???
>>675
673じゃないけど。

漏れの客の中には業務時間中は許可なくシステムやプロセスの再起動を
禁じるとのおふれを出してくれるDQNな顧客がいるので
再起動がないPHPはありがたい。
0677nobodyさん2005/07/01(金) 01:13:32ID:???
>>674
ヒント:共有メモリ
0678nobodyさん2005/07/01(金) 02:25:21ID:???
おいらは高々「セッションの異なるユーザー間でのデータ共有」に
AppServerが必要な点で、条件が厳しいと感じる。

MVCはJavaだろうがPHPだろうが、Webアプリ作るなら
それに沿った方がトータルでは簡単(楽)だと思うけどね。
素のStruts&支援ツール未使用では少々使いづらいと思ったけど。
06796462005/07/01(金) 02:58:07ID:UlstNgah
>>647,649
どうもありがとうございますた!
0680nobodyさん2005/07/01(金) 08:30:53ID:???
PHPは混ぜ混ぜでも適当でも結構何とかなっちゃうから潔癖性には辛いかもな。
個人的にはそこが利点だと思うんだけど。
0681nobodyさん2005/07/01(金) 08:47:29ID:???
くだらねぇ質問でスイマセン

1つのファイルで複数のページを作りたいのですが
どのように行ったらいいでしょうか?
0682nobodyさん2005/07/01(金) 08:51:16ID:???
どこへでも行けばいい
0683nobodyさん2005/07/01(金) 10:01:11ID:???
つ[ttp://www.php.net/manual/ja/control-structures.else.php]
0684軟式PHP2005/07/01(金) 11:54:52ID:???
>>680
同意。俺もそういう点が気に入ってる。
0685nobodyさん2005/07/01(金) 13:29:04ID:???
time() でえた数字を分かりやすく2005 07/01 00:00:00に
直すのってどうやるのですか?
0686nobodyさん2005/07/01(金) 13:30:17ID:???
date()
06876852005/07/01(金) 13:39:56ID:???
ありがとう
0688nobodyさん2005/07/01(金) 14:27:34ID:???
ちょっと長いですが、よろしくお願いします。とある本からの抜粋です。2レスにまたがります。
<?php
extract($_POST);
echo "<form action=\"menu.php\" method=\"post\">\n";
echo "<p>タイトル <br><input type=\"text\" name=\"t\" value='$t' size=45></p>\n";
echo "<p>本  文 <br><input type=\"text\" name=\"h\" value='$h' size=45></p>\n";
echo "<input type=\"hidden\" name=\"sig\" value=\"kb\">\n";
echo "<input type=\"submit\" value=\"検索\">\n";
echo "<input type=\"reset\" value=\"クリア\">\n";
echo "</form><hr>\n";
//データ検索結果の実行部分
if($sig == "kb") {
mysql_connect("localhost","root","xxxxxx");
mysql_select_db('database1');
$wt =="";
$wh =="";
$wk =="";
//検査区分の分解(タイトル)
if($t <>"") {
$xt = str_replace(" " , " " ,$t);
$gt = explode(" ",$xt);
$wt = "title like '%$gt[0]%'";
$i = 1;
$n = count($gt) - 1;
while ($i <= $n) {
$wt = $wt . " and title like '%$gt[$i]%'";
$i++;
}}
//検査区分の分解(本文)
(上の”タイトル”と似たようなコード。$t が $hに、$xt が $xhに、等)
0689nobodyさん2005/07/01(金) 14:30:27ID:???
//クエリの作成
$sql = "select * from table1 where ";
if($wt<>"") {$sql = $sql . $wt;}

if($wh<>"") {
if($wt<>"") {$sql = $sql . " and ";}
$sql = $sql . $wh;
}
//ここからが本検索
$result = mysql_query($sql);
$rows = mysql_num_rows($result);

if($rows == 0) {
print "検索データが見つかりませんでした。";
exit;
}
else {
echo "<font color=\"red\">" , $rows, "件のデータがヒット<br></font>\n";
echo "<a href=\"zemken.php?s=", $sql ,"\" target=\"main\">全検索</a><br>\n";

while($row=mysql_fetch_array($result)) {
echo $row["title"];
}}}
?>
以上です。フォーム(「タイトル」と「本文」)に入力された文字列を自身へポストし、
検索をかけ表示するというものです。
「//データ検索結果の実行部分」の「if($sig == "kb") {」と、その数行前の「echo "<input
type=\"hidden\" name=\"sig\" value=\"kb\">\n";」の意図が分かりません。
「if($t <> "") {」だとecho文の一行もいりませんよね?  またその後の
$wt ==""; $wh ==""; $wk =="";
が何のためにあるのかも良くわかりません。試しに削ってみましたが、ちゃんと機能するようです。
0690nobodyさん2005/07/01(金) 15:00:48ID:???
>>689
$wt ==""; $wh ==""; $wk =="";

$wt =""; $wh =""; $wk ="";
としたかったんだと思う
formからpostされたときだけ
if($sig == "kb") { 以下の処理を行うということでしょう
(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)
0691nobodyさん2005/07/01(金) 15:04:03ID:???
そんな脆弱性満載なコードは参考にするな。
で、質問書いてからコード引用しろよ。
06926902005/07/01(金) 15:06:18ID:???
if ($t != "" or $h != "")
にしたら$sigはいらないかな
入力値が無いときの動作についての仕様しだいだけど
06936892005/07/01(金) 15:36:24ID:???
>>690
>(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)

あぁ、そういうことか。フォームは2つ有るんですもんね(´・ω・`)
でも
$wt =""; $wh =""; $wk ="";
はいまだに?です。なんか要らないような・・。
06946892005/07/01(金) 15:41:15ID:???
>>691
>で、質問書いてからコード引用しろよ。

すみません。以後気をつけます。
0695nobodyさん2005/07/01(金) 15:43:36ID:???
>>693
error_reportimg(E_ALL);
ってつけると意味わかるかも
06966952005/07/01(金) 15:44:57ID:???
error_reporting(E_ALL);
です
06976892005/07/01(金) 15:55:20ID:???
>>695
ハイ、やってみます (`・ω・´)
0698nobodyさん2005/07/01(金) 16:20:28ID:???
phpで外部テキストの内容をそのまま表示させたいんですが、どうすればいいのでしょうか。
感じとしては

print hogehote.txt

でhogehoge.txtの内容をそのまま表示してくれるような・・。
分かりにくかったらごめんなさい
0699nobodyさん2005/07/01(金) 16:26:33ID:???
>>698
つ[ttp://jp2.php.net/manual/ja/ref.filesystem.php]
0700nobodyさん2005/07/01(金) 16:28:01ID:???
readfile( 'hogehoge.txt' );
0701nobodyさん2005/07/01(金) 16:29:53ID:???
>>699
どうもです、fopenで出来そうな気がしますので試してみます。
0702nobodyさん2005/07/01(金) 16:45:45ID:uNU+fZm1
レッツPHPさんのソースでは

ファイルオープン
flock($fp,LOCK_EX);
fputs
ファイルクルーズ

としてるのが多いんですが
flock($fp,LOCK_UN);は書かなくても勝手に解除されるんでしょうか?
0703nobodyさん2005/07/01(金) 16:55:57ID:???
include('hogehoge.txt');
0704nobodyさん2005/07/01(金) 16:58:42ID:???
>>702
fcloseで自動的に解除されるが、レッツは"w"で開いてるから意味無い
0705nobodyさん2005/07/01(金) 17:07:49ID:???
>>699-701
ありがとうございます
readfile("./test.txt")
で表示するだけは出来ました。

ちょっと
$fp = readfile("./test.txt"):
print "$fp";

としてみたんですが結果が

----------------
hoghoge.com
hogyohogyo.com
87
----------------
となりキャラクター数が最後に付いてしまっているようです。
えーと変数をテキストだよって宣言する作業をすればいいのかな・・
0706nobodyさん2005/07/01(金) 17:16:07ID:???
>>705
readfileはファイルから読み込んだバイト数を返します。
0707nobodyさん2005/07/01(金) 17:17:12ID:uNU+fZm1
>>704さん
ありがとうございます。
レッツのカウンタを使ってたら壊れたのでロック関係の処理を検索してました。
wでなくでr+で開いてftrancate($fp,0);でファイルサイズ0にして書き込み

に変更すれば大丈夫でしょうか?
0708nobodyさん2005/07/01(金) 17:17:29ID:???
バイト数いらない場合は・・ orz
また違う方法を探さないと駄目なんですね・・
0709nobodyさん2005/07/01(金) 17:18:36ID:???
>>708
$fpに何が入っていて、print "$fp"; で何をしてるのか分かってる?
0710nobodyさん2005/07/01(金) 17:26:37ID:???
>>709
$fpにはテキストの中身とバイト数?
07117072005/07/01(金) 17:34:29ID:???
ftruncateの間違いです。

$fp = fopen($file,"w");
flock($fp,LOCK_EX);
fputs($fp,$data);
fclose($fp);


$fp = fopen($file,"r+");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$data);
flock($fp,LOCK_UN);
fclose($fp);
にしたら大丈夫でしょうか?
ディレクトリとかを使いたくありません。
0712nobodyさん2005/07/01(金) 17:52:40ID:???
readfileはファイルから読み込んだバイト数 のみ を返します。
0713nobodyさん2005/07/01(金) 18:13:36ID:???
>>712
なるほどでも
readfile("./test.txt");
だけだとファイルの中身だけが表示されるのは何故?
もと分かって無いと怒られそうかな・・ ;-;



<a href=http://hogehoge.com>;hogehoge</a>
ってurlが羅列されているテキストをHPの色んなページにチョコっとリンクとして表示させたかったので。


$lines = file("./test.txt");
foreach ( $lines as $val){
print $val . "<br>";
}

って感じにしてみました。
今後は元テキストが
http://hogehoge.com<;>hogehoge
urlとリンク先HPのみを自動でリンクにとして表示するようにしようかなぁと
0714nobodyさん2005/07/01(金) 19:11:14ID:???
指定したフォルダ内にあるファイルのファイル名を全て返す関数とか無いのか?
0715nobodyさん2005/07/01(金) 19:13:57ID:???
>>714
ディレクトリ関数を使え
0716nobodyさん2005/07/01(金) 19:24:23ID:???
>>713
つ[http://jp2.php.net/manual/ja/function.readfile.php]
0717nobodyさん2005/07/01(金) 19:52:51ID:???
>>716
何回も読みました・・w
動作は分かったのでひとまずいいです
動けばいい趣味スクリプトなんで

プログラムの基礎が無いので読んでも大まかにしか分かって無いようです。
0718nobodyさん2005/07/01(金) 19:57:19ID:???
じゃ、あんたはいつまでたってもそのレベルなわけだ
07197172005/07/01(金) 20:03:10ID:???
まあ、マッタリ自分のペースでやれるだけ頑張ります。
ありがとうございました <(_ _)>

分かりたいんですが、何が分かって無いのか分からないので。
phpいじくりながら勉強します
0720nobodyさん2005/07/01(金) 20:58:06ID:???
ま、いいんじゃねぇの
0721nobodyさん2005/07/01(金) 22:33:46ID:???
php歴2週間で、セキュリティのことなんてチンプンな者です。
閲覧者が検索ワードを入力し結果を表示させるだけのものををphpとmysqlで
作りたいんですけど、やはりセキュリティと言うものに気を配らなければ
ならないのでしょうか。全く気を配らなかったとして、どのような被害が
考えられますか?
0722nobodyさん2005/07/01(金) 22:45:17ID:???
MySQLのデータを改ざんされる。
0723nobodyさん2005/07/01(金) 23:02:28ID:???
dbの脆弱性を疲れて、root剥奪
07247212005/07/01(金) 23:16:38ID:???
えっ、そんあ事まで出来ちゃうんですか!?怖い。でもどうやって・・?
急に自身が無くなって来ました。最低限これだけはやっとけって事にどんなもの
がありますか?答えづらい質問で申し訳ない。
0725nobodyさん2005/07/01(金) 23:21:57ID:???
>>724
SQLデータベースを使わない
0726nobodyさん2005/07/01(金) 23:40:55ID:???
>>724
XSSに気を配る
0727nobodyさん2005/07/01(金) 23:58:56ID:???
chmod( hogehoge.log )や
fopen( "hogehoge.log" , "w" )
などで作成されたファイルの文字コードは何になるのでしょうか。
07287212005/07/02(土) 00:10:50ID:???
>>725 >>726
回答ありがとうございます。
XSSでググって見たらジャンジャンひっかかりますね。これだけでも進歩です。
これを足がかりに勉強します。
0729nobodyさん2005/07/02(土) 00:14:54ID:???
>>727
hogehoge.logが画像だったとして、それがchmodやfopenで左右されると思う?
書き込もうとする内容が文字コード(さらに言えばテキストに限らず画像のようなものまで)を決定します。
そしてその内容は、phpへの入力・php.iniの設定・スクリプト内のコード変換等 いろいろな場所で文字コードを変換される可能性があります。
07307272005/07/02(土) 00:20:10ID:???
>>729
なるほど。詳しくありがとうございます。
0731nobodyさん2005/07/02(土) 07:40:56ID:???
>>728
XSSよりSQLインジェクション
0732nobodyさん2005/07/02(土) 18:04:14ID:???
くだらな過ぎなのですが勇気を出して質問します。
下記でエラー(T_ECHO)になります。何処がいけないのでしょうか。

<?php
extract($_GET);
mysql_connect('localhost','root','xxxxxx');
mysql_select_db('lesson');
if($i<>"") {
$sql = "select * from tbl where id=$i";
$result = mysql_query($sql);
$row = mysql_fetch_array($result)
echo $row["id"];
}
?>

『$rows = ・・・』以下を下記のように直せば大丈夫なんですが。

while($row = mysql_fetch_array($result)){
echo $row["id"];
0733nobodyさん2005/07/02(土) 18:17:30ID:???
>>732
まずは蝉コロンを忘れるな。話はそれからだ。
0734nobodyさん2005/07/02(土) 18:28:01ID:???
>>733

やっちまった。気をつけていたはずなのに・・・。鬱
まりがとう。
0735nobodyさん2005/07/03(日) 00:40:30ID:???
$file=fopen("sample.dat","a");
flock($file,LOCK_EX);
$line =date("Y年 m月 d日 H:i:s")."\t";
fputs($file,$line."\n");
flock($file,LOCK_UN);
fclose($file);

複数のファイル名で保存するにはどうしたらいいですか?
(aaa.dat , bbb.dat , ccc.datで保存)
0736nobodyさん2005/07/03(日) 00:58:37ID:???
>>735
同じ事を後3回やっちゃ駄目なの?
それとも、ファイルそのものをコピーして別名で保存する?
0737nobodyさん2005/07/03(日) 01:34:54ID:???
ttp://script.s16.xrea.com/index2.php

このPHP版JoyfulNoteで新規投稿が着たら
メールで知らせてくれる機能使ってるんですが、
なぜか???だらけのメールが着ます。
このメールを普通の文体のメールに変えるためにはどうしたら良いですか?

ちなみにサーバーはXREAのs151鯖です。
よろしくお願いします。
0738nobodyさん2005/07/03(日) 02:11:30ID:???
>>737
症状から察するに、ただ単に文字コードがおかしいだけかと。
0739nobodyさん2005/07/03(日) 10:19:30ID:???
s151は仕様が他と違う
0740nobodyさん2005/07/03(日) 13:07:47ID:???
>>738
文字コードをいじるためにはどこを弄ればいいんですかね?
Joyful.phpのメール発射するらへんを見てみたんですが、
イマイチわかりませんでしたorz
0741nobodyさん2005/07/03(日) 18:10:19ID:???
>>740
mb_language ("ja");
mb_internal_encoding("sjis"); //この行を追加
mb_send_mail($mailto,$MailSub,$MailBody,"From: $email");
0742nobodyさん2005/07/03(日) 18:24:21ID:???
>>741
おお!できました!
ありがとうございますm(_ _)mペコリ
0743nobodyさん2005/07/03(日) 19:23:17ID:sGU6ge/d
関数側の参照返し指定
function & hoge()
と、
受け取り側の参照受け取り指定
$moge =& hoge()
の関係がいまいち分かりません。

・両方とも記述しなければいけない
・関数側だけでも同じ結果
・受け取り側だけでも同じ結果

どうなっているのでしょうか?
0744nobodyさん2005/07/03(日) 19:45:27ID:6wIeYByt
PHPからPDFを出力をしたいのですが、
たとえばベースとなるフォームをPDFや画像を用意しておき、
そのフォームの特定位置に対応する情報を出力する
差込印刷のようなことは可能なのでしょうか?
それともすべてをPHPで出力するか、
あるいはこういう差込印刷をしようと思ったらOpenOfficeなりを利用するほかはないのでしょうか?
0745nobodyさん2005/07/03(日) 20:11:28ID:???
>>744
たとえば、fpdf+fpdiのような外部ライブラリを使えば、差込印刷っぽいことはできる。
んでも、細かな調整等は自分で実装しなきゃいけないよ。
07467442005/07/03(日) 20:47:37ID:???
>>745
おおお、FPDIなんてものがあったとは知りませんでした。
さっそく調べてみます。
情報ありがとうございました。
0747nobodyさん2005/07/03(日) 21:56:45ID:6wIeYByt
フォームについて質問です。
ひとつのFORMにsubmitボタンを複数設置することは可能なのでしょうか?
具体的には、掲示板を表示するphpにおいて各書き込みに「編集」「削除」のボタンを設置し、
共通のphpで処理したいのです。
例えば
<TR><TD>774:nanashitaso</TD>
<TD>本文:ちょっと1聞いて(ry</TD>
<TD><FORM method='POST' action='sakujonin.php'>
<INPUT type='submit' value='編集' name='editflg'>
<INPUT type='submit' value='削除' name='editflg'>
<INPUT type='hidden' value='774' name='kakikoid'>
</FORM>
</TD></TR>

このような記述をしておき、sakujonin.phpではeditflgの内容によって処理を切りかえることが可能か?という疑問です。
あるいはsubmitボタンそれぞれのnameを変えておき、セットされている変数(name)によって処理を変えるのでもよいのですが。

よろしくおねがいします。
0748nobodyさん2005/07/03(日) 22:08:47ID:???
>>747
dekiru
0749nobodyさん2005/07/03(日) 22:09:58ID:???
>>747
sakujonin.php を以下のようにして実験してみたらすぐ判ることを
なぜワザワザ聞くんだ?
友達が居なくてかまって欲しいのか?

<?php
echo $_POST['editflg'];
?>
0750nobodyさん2005/07/03(日) 23:38:09ID:???
>>747
編集と削除、それぞれを違うnameに汁。
それから、それぞれのボタンを押した際の$_POSTの中身を見比べて見る
07517472005/07/04(月) 00:50:43ID:???
おおお。あっさりできました。
どうもありがとうございました。
0752nobodyさん2005/07/04(月) 04:27:21ID:???
PHP4.3.10で、公式サイトのドキュメントのfsockopen()の例を参考にHTTP Clientを作ったのですが、
たまに4000とか14feといった、4桁の数字だけで構成された行を受け取ってしまいます。
場所も不特定で、このせいでタグが分断されてページが乱れたりしてしまいます。
fgetsのバッファを大きくしたり、socket_set_blocking()を使って非ブロックモードにしたり、
漢字コードまわりをいじったりしましたが、一向に改善されません。
fsockopenのかわりにpopenでwget -O -を実行するようにしたら、この現象がぴたりと止まったので、
fsockopen()の例では、なんらかのエラー処理がかけているのではないかと思われるのですが、
原因のわかる方はいらっしゃいますか?

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
0753nobodyさん2005/07/04(月) 08:57:15ID:???
>>752
chunkっぽいので、
HTTP/1.1に拘る必要がなければHTTP/1.0にするとか。
マニュアルのuser notesの所にあるスクリプトの方を参考にするとか。
0754nobodyさん2005/07/04(月) 11:58:45ID:???
長いのでコードは別に書きます。
よそからGETメソッドで飛んできた「$i」により、レコードがセレクトされ内容を表示。
その後フォームによりそのレコードを削除します。
はじめはそのまま$iで削除しようとしましたが、サブミット後は$iの値が何故か消えて
しまうので削除できず。
上記のように<input type=\"hidden\"〜で新たに「$id」を定義したら無事できました。
何故サブミット後に$iの値が消えてしまうのでしょうか。
0755nobodyさん2005/07/04(月) 11:59:04ID:???
<?php
extract($_POST);
extract($_GET);
mysql_connect('localhost','root','pass');
mysql_select_db('db1');

if($ok == "おk") {
$sql = "delete from hoge where id=$id";
mysql_query($sql);
echo "レコードを削除しますた。";
echo $i; //サブミットした後は何故か値が消えてしまう
exit;
}

if($i<>"") {
$sql = "select * from nandemo where id=$i";
$result = mysql_query($sql);

$row = mysql_fetch_array($result);
echo "<p>" , "以下のレコードをマジで削除しますか?" , "</p>\n";
echo "<p>" , "●ID" , "<br>\n";
echo $row["id"] , "</p>\n";
echo "<p>" , "●タイトル" , "<br>\n";
echo $row["title"] , "</p>\n";
echo $i; //ちゃんと表示されるのでここまでは$iに値は入っているようだ
}
echo "<form action=\"delete.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"id\" value=\"{$row["id"]}\">";
echo "<input type=\"submit\" name=\"ok\" value=\"おk\">";
echo "</form>";
?>
07567542005/07/04(月) 12:12:50ID:???
上記のように×
下記のように○
0757nobodyさん2005/07/04(月) 12:22:02ID:???
>>754-756
セッション張ってないんだから持ち回せなくて当たり前。

で、そのコードはSQLインジェクションやXSSといった脆弱性を持っている危険なコードだ。
0758nobodyさん2005/07/04(月) 12:24:40ID:???
余所から引っ張ってきた値だからでしょ。
セッション利用すればいいんじゃないかな。
0759nobodyさん2005/07/04(月) 12:38:00ID:???
>>754
webprogの特徴として、ページを表示するごとに接続が切れる、
そのため前のページで何をやったか覚えてない、っていう事があります。
この辺りの話は、webprogの本やサイトでは基礎の基礎として取り上げられている筈なのでそれらを参照。
要するに、次のページで必要なデータがあるならきちんと渡してやらなきゃいけない。

確認ページ
 入力 : $i
 出力(formの部分、次の画面での入力) : id=$raw['id'] ok=おk
実行ページ
 入力 : id=$raw['id'] ok=おk
0760nobodyさん2005/07/04(月) 13:07:57ID:???
今すぐ$idを料理しる
0761nobodyさん2005/07/04(月) 13:10:57ID:???
消毒♪消毒♪
07627542005/07/04(月) 13:41:05ID:???
皆さん回答ありがとうございました。
セッションですか。勉強不足でした。

>>760
$idを料理ってなんですか?クッキング?
>>761
消毒って何ですか?毒を消すこととは違いますゆね・・。
0763nobodyさん2005/07/04(月) 15:14:23ID:70zY79R6
PHP5にてあるクラス(仮にC)が特定のinterface(仮にI)を継承しているかを
newする前に調べたいと考えているのですが
その為には、文字列でCを指定しなくてはならないのですが

instanceof & is_a  ← 文字列を指定できない (objectのみ)
  ('C' instanceof I)  is_a('C', 'I')  // 必ずfalse
is_subclass_of    ← PHP5.3以上なら文字列を指定できるもののinterfaceには使えない
  is_subclass_of('C', 'I')  // interfaceでは必ずfalse
get_parent_class   ← 文字列を指定できるもののinterfaceには使えない
  get_parent_class('C')  // interfaceでは必ずfalse

と思いついた方法を試してみたのですが、どれも上手くいかずに行き詰ってしまいました。
どなたか上手い方法をご存知の方がいらっしゃいましたらよろしくお願い致します
0764nobodyさん2005/07/04(月) 15:49:25ID:LXfnoi1Z
質問です。
HTMLファイルを読み込んで、そのHTMLファイルのコメント部1(<!-- コメント1 -->)〜コメント部2(<!-- /コメント -->)までを
変数$hensu に代入する方法を教えて下さい。

0765nobodyさん2005/07/04(月) 15:52:54ID:???
>>764
正規表現
0766nobodyさん2005/07/04(月) 15:55:51ID:???
>>764
preg_match
0767nobodyさん2005/07/04(月) 16:19:40ID:???
764です。わがままなのは分かっていますが、もう少し詳しく教えてくれませんか。

文字列の切り取り関数とかあるのかと思ったのですけど…。
0768軟式PHP2005/07/04(月) 16:35:17ID:???
>>767
切り取り関数(substr等)はあるちゃーあるけど、
君の要望を満たすには765や766が書いてるように正規表現が必要かと思われ。
正規表現スレのほうでも何回か出てきた質問だから見てみては。

≫正規表現スレ
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0769nobodyさん2005/07/04(月) 16:40:05ID:???
>>767
本当にわがままだな。

$pattern = "/<!-- コメント1 -->.*?<!-- コメント2 -->/s";
preg_match( $pattern, $html, $matches );
$hensu = $matches[0];
0770nobodyさん2005/07/04(月) 16:41:21ID:???
>>767
substr
strstr
strpos
で出来ないこともない
0771nobodyさん2005/07/04(月) 16:42:28ID:???
>>768
ありがとうございます。ではそちらのスレで聞いてみます。
そしてこれを機に正規表現を勉強してみたいと思います。
0772nobodyさん2005/07/04(月) 16:56:59ID:???
>>769
ありがとうございます。ちょっとやってみようと思います。
0773nobodyさん2005/07/04(月) 18:43:09ID:???
ttp://sid.just-size.net/cgi-bin/cook/

PHPでこんなデータベース作ろうと思ったらどれくらいの技量が必要なんだろう。
0774nobodyさん2005/07/04(月) 18:48:34ID:???
一通り勉強すれば。
0775nobodyさん2005/07/04(月) 19:07:23ID:???
>>773
一応動けばよいのであれば、3日学習すればできるかな。
0776nobodyさん2005/07/04(月) 19:16:23ID:???
そっか・・・じゃあちょっとサイト見て回るよ
0777nobodyさん2005/07/04(月) 20:33:20ID:???
if ( ($hoge != 'foo') or ($hoge != 'bar') ) { ... }
$hogeがfooかbarでなければ、の処理をもうちょっとスマートに書けませんか
0778nobodyさん2005/07/04(月) 20:38:14ID:???
正規表現を使う
0779nobodyさん2005/07/04(月) 20:46:48ID:???
要らない括弧を外す
0780nobodyさん2005/07/04(月) 20:53:11ID:???
fooかbarでなければ、、、という条件であれば
if ( ($hoge != 'foo') and ($hoge != 'bar') ) { ... }
ではないかと。。。

オラに思いつくのはこんな感じか。あまりスマートではないか。
if (!in_array($hoge, array('foo', 'bar'))) {
0781nobodyさん2005/07/04(月) 20:55:18ID:???
>>780
恐らくfooでもbarでもなければ、と書きたかったんだろう、と。
曖昧な表現は怖いな
0782nobodyさん2005/07/04(月) 20:55:24ID:???
二つ程度なら余計なことしないが吉
0783nobodyさん2005/07/04(月) 20:56:34ID:???
PHPでブログのトラックバックの仕組みを作ろうと思っています。

ですが、いまいち「トラックバック」の意味がよくわかりません。
相手のURLを自分のブログの記事に登録して+相手のブログに
PNG送信すると言う事でしょうか?

何か開発する上でわかりやすいサイトはありませんでしょうか?
0784nobodyさん2005/07/04(月) 20:57:30ID:???
>fooでもbarでもなければ

はandだべさ。

つかあれをorで結んだら100%真になるべ。
07857772005/07/04(月) 21:00:56ID:???
どうもうまくいかないと思ってたらorじゃなくてandでしたね。
レスありがとうございます。>>780参考になりました。
0786nobodyさん2005/07/04(月) 21:02:45ID:???
>>783
俺的にはトラックバックでググって出てくる頭5、6個ぐらいで事足りたけど。
0787nobodyさん2005/07/04(月) 21:09:56ID:???
む・・・pingって「ピング」と発音するのか・・・「ピン」だと思ってた
0788nobodyさん2005/07/04(月) 21:10:41ID:???
日本でならどっちでも良いだろ。
0789nobodyさん2005/07/04(月) 21:32:38ID:???
>>753
ありがとうございました。
fsockopenのuser notesにあるrichardaburton at hotmail dot comの方のサンプルコードが
ずばりそれらしいものでした。
0790nobodyさん2005/07/04(月) 22:01:08ID:v9+48Ieq
レンタルカウンターを探しております。
今日○人 合計で○人と表示できる物はあるでしょうか?
携帯対応で始める数字を最初から設定できる物があれば嬉しいです。

誰か知っていれば教えて下さい。
0791nobodyさん2005/07/04(月) 22:07:17ID:a2/wuPFv
くだらない質問かどうかわかりませんが質問します。

ずばり、HTMLはダウンロードできるが全くレンダリングされない症状が出ました。
たまにレンダリングされたりされなかったりするページもあれば、絶対にレンダリングされないページもあります。
ソース表示を行うとしっかりとhtmlがダウンロードできているようでソースは普通に見れますが
ブラウザに全くなにも壱文字も表示されません。
何故かは不明ですが、Windows上のInternetExplorer6でのみ発生します。
Mozilla Firefoxではこの問題が発生するページでも全く問題なく、普通に表示されます。
サーバーの問題かと思い、いくつかのレンタルサーバーで試しましたが同じでした。
htmlを出力しているのはphpファイルです。
知ってる方いらしましたらお願いします。
0792nobodyさん2005/07/04(月) 22:10:52ID:???
>>791
文字コードとか
07937912005/07/04(月) 22:19:08ID:a2/wuPFv
文字コード関係は完璧です。
文字コードで苦労していた頃もありますが、
今回はもっとわけのわからないエラーが発生しています。

この問題で不思議なのはソースが見れるのに画面は完全に白紙になることです。(IEのみ)
原因不明です。このページではmod_rewriteなどは一切行っていませんので引数のエラーなどではないようです。
http headerもしっかりとtext/htmlでアクセスしているようで文字コードも問題ありません

また たまに表示されることがある という意味不明の現象を繰り返しています。


0794nobodyさん2005/07/04(月) 22:29:34ID:???
>>793
念のため聞くけど、そのソースをローカルに保存して開いてみたらちゃんとレンタリングされるんだね?
0795nobodyさん2005/07/04(月) 22:30:53ID:???
html-lintでも使ってチェックしてみれ
0796nobodyさん2005/07/04(月) 22:32:16ID:???
文字コード認識の失敗じゃなきゃ、間違ったhtmlを吐いているとかじゃないかなぁ。
0797nobodyさん2005/07/04(月) 22:46:20ID:???
phpで作ったサイトを公開したとして、サーバー側で処理する前のphp
(<?php〜?>が含まれるソース)がダウンロードされてしまう可能性ってあるんでしょうか?
0798nobodyさん2005/07/04(月) 22:51:57ID:???
setcookie()の "他のあらゆる出力" って、何?例えば?
0799nobodyさん2005/07/04(月) 22:54:17ID:???
CGIとmod_phpを両方許可する共有鯖の場合は工夫しないと覗かれる。

あとはサーバの設定トチったり、セキュリティホールがなきゃ可能性は無い。
08007912005/07/04(月) 23:22:25ID:a2/wuPFv
>>794-796

神、ゴッド

HTMLであるのにXHTML用のタグが一行だけ入っていました
ただ単に タグの後方に / が入っている単純な間違いでした(それもひとつだけ)
いつもならこの程度はお得意の無理矢理レンダリングで表示してくれるieなんですが
今回は何故かレンダリングしてくれませんでした・・・
InternetExplorerの完成度の低さを痛感する今日この頃です
私も完成度低いですね
出直してきます
0801nobodyさん2005/07/04(月) 23:28:18ID:???
>>798
リスポンスのmessage-body部分。

Status-Line
*(( general-header response-header entity-header ) CRLF)
CRLF
[ message-body ]
0802nobodyさん2005/07/04(月) 23:28:36ID:???
いくらなんでもそれをIEのせいにするなよwww
0803nobodyさん2005/07/05(火) 00:33:57ID:???
>>777
switch($hoge){
case 'foo':
case 'bar':
    break;

default:
    /* ここに処理 */
}
0804nobodyさん2005/07/05(火) 02:39:15ID:???
>>763
http://www.php.net/manual/en/function.class-implements.php
08058042005/07/05(火) 02:45:52ID:???
change logね。
0806nobodyさん2005/07/05(火) 04:10:51ID:???
ヒアドキュメントについて質問ですが、
>>> 任意のIDとあります。
同じPHP内に、2つ以上のヒアドキュメントを用いる場合、
この任意のIDも別々じゃなきゃいけないのでしょうか?
それとも同じIDでもいいのでしょうか?
0807nobodyさん2005/07/05(火) 07:32:51ID:???
試せばわかることをなぜしない
0808nobodyさん2005/07/05(火) 08:02:52ID:???
"html"もしくは"php"に表示される画像の数を、いくつ表示しているか
数で取得したいんですが、どのようにやればいいでしょうか・・・?
<img src="?">
08097632005/07/05(火) 08:58:01ID:???
>>804
5.1から実装でしたか。
ありがとうございました。
0810nobodyさん2005/07/05(火) 08:58:24ID:???
>>808
preg_match_allとか?
0811nobodyさん2005/07/05(火) 10:16:19ID:???
>>807
表示させている時点で判っているはずだが…
08126372005/07/05(火) 14:22:01ID:???
>>638
>>639
おそれすスンマソン
別の案件やってたら質問入れたこと忘れてた。
さっき再開したときに同じことで疑問に思って思い出した。
どうもありがとう。
08138062005/07/05(火) 15:11:33ID:???
すみません。質問の仕方を変えます。
同じPHP内に、2つ以上ヒアドキュメントを使う場合、
一般的には別々のIDにするものなのでしょうか?
同じIDでも大丈夫のようですが、皆さんはどうなされてますか?
0814nobodyさん2005/07/05(火) 15:18:37ID:???
>>813
ヒアドキュメント自体使わないからなー
使うとしたらそのときの気分しだいかな
でも文字列考えるのがめんどいから多分全部同じにするかな
0815nobodyさん2005/07/05(火) 15:24:42ID:???
HTMLなら__HTML__、SQLなら__SQL__と対象によって統一

つか赤の他人の事気にしてどうする
0816nobodyさん2005/07/05(火) 16:03:15ID:KqOBtHLW
すいません

<?php
$title = "表";
?>

これがエラーになるんですが、何でですか?
"表1"とかだとOKなんですが。
0817nobodyさん2005/07/05(火) 16:11:12ID:???
>>816
「shift-jis 表 0x5c」 でググって何が問題となっているのかを認識する。
0818nobodyさん2005/07/05(火) 16:27:08ID:KqOBtHLW
>817さん
ありがとう。
どっさり出てきました。

とりあえず
"表\"
でいいかな。

プロはみんなeucで書いてるんでしょうか?
0819nobodyさん2005/07/05(火) 17:03:19ID:sbJyhs1R
質問です。
いろいろなサイトを見ながらセットアップ作業を行っていて、
phpファイルを試しに動かせるのではないか、という段階まできたのですが、
サンプル用のphpファイルをどこに置けばいいのでしょうか。
どのサイトもホームディレクトリに置いて、とかルートディレクトリに置いてとか
書いてあるんですが、じゃホームってどこ?という疑問のまま先に進めていません。

あまりにもくだらない質問で恐縮ですが、どなたか教えてください・・・。
せっかく目前まで来てるのに・・・(´・ω・`)
0820nobodyさん2005/07/05(火) 17:11:04ID:???
実行するだけならどこでもいいよ。

Web鯖立ててブラウザなどで実行したいのなら鯖の設定だ。
0821nobodyさん2005/07/05(火) 17:12:28ID:sbJyhs1R
>>820
レスどうもありがとうございます。
鯖の設定いうことはApacheの設定ファイルであるhttpd.confで
記述してやればいいということですか?
0822nobodyさん2005/07/05(火) 17:13:25ID:???
そゆこと
0823nobodyさん2005/07/05(火) 17:26:45ID:???
八つのランダムの数字を生成するのってどうやるのですか?
56481001←見たいに出力したいのですが
エロイ人教えてください
0824nobodyさん2005/07/05(火) 18:11:04ID:???
つ [ rand(0,99999999) ]
使い時の注意事項はマニュアルを参考に。
0825nobodyさん2005/07/05(火) 18:13:32ID:sbJyhs1R
先ほど質問した者です。

httpd.confのServerRootを "/etc/httpd/" に指定して、
test.phpファイルをこのディレクトリに配置しました。
ブラウザで http://192.168.1.185:80/test.php と入力しても
ページが見つかりません、と表示されました。
ちなみにtest.phpの中身は<?phpinfo();?>だけです。

なにかまだ設定が足りないんでしょうか・・・?
原因が分からなくて困っています。
どなたかヒントだけでもいただけないでしょうか?
08268242005/07/05(火) 18:14:48ID:???
ありがとう
0827nobodyさん2005/07/05(火) 18:17:02ID:???
自作自演?w
0828nobodyさん2005/07/05(火) 18:19:18ID:???
つ [ DocumentRoot ]
httpd.confにも(英語だけど)書いてあるように、
ServerRootは鯖の設定やログ等を保持するディレクトリの指定っす。
(個々の設定(例えばErrorLog設定)とかは、ServerRootからの相対ディレクトリを指定する)
0829nobodyさん2005/07/05(火) 18:23:51ID:???
>>828
レスありがとうございました。
見事にちゃんと動きましたですよ!
親切なレス本当にありがとうございました 。・゚・(ノ∀`)・゚・。
0830nobodyさん2005/07/05(火) 21:23:39ID:???
if(isset($_SERVER['HTTP_VIA']) || isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
HandleCheat('Hit_Proxy');
}

if(!isset($_SERVER{'HTTP_ACCEPT'}) || !isset($_SERVER{'HTTP_USER_AGENT'})){
HandleCheat('Hit_Browser');
}

これってどういう意味ですか?
$_SERVERうんたらってやつが詳しく分かりやすくかいてあるサイトも教えてください
0831nobodyさん2005/07/05(火) 21:30:17ID:???
$_SERVERでググった一番上。
0832nobodyさん2005/07/05(火) 23:08:14ID:???
マニュアルくらい読め
0833nobodyさん2005/07/06(水) 01:52:15ID:???
class sup {
var $hoge;
function sup () {
$this->hoge = 'hoge';
}
}

class sub extends sup {
function sub () {
echo $this->hoge;
}
}

$sub = new sub();

親のコンストラクタは働かないの?
08348332005/07/06(水) 02:48:28ID:???
マニュアルに書いてあった(;´Д`)
自分でうまくやりくりせんといかんのか
0835nobodyさん2005/07/06(水) 04:46:48ID:???
めっちゃ既出っぽいけれど。
例えば全角の "ABCDE" を半角の "ABCDE" に変換したい時ってどうすればいいですか?
mb_convert_case() だと "abcde" 、全角のままだし、
mb_strtolower() も同じっぽい。
0836nobodyさん2005/07/06(水) 06:40:42ID:???
本スレ埋まったな。
このスレと比べて質問内容も大差なくなってきてるから、こっちが本スレ化しても大して問題なさげ?
0837nobodyさん2005/07/06(水) 07:13:47ID:???
>>835
mb_convert_kana
08388352005/07/06(水) 07:24:05ID:???
>>837
なるほど。さんくす。
0839nobodyさん2005/07/06(水) 09:15:21ID:???
勉強中の初心者です。文字列を単語単位で配列に格納しようと
思いまして、str_word_count というのを見つけました。
http://jp2.php.net/manual/ja/function.str-word-count.php

アルファベットに関しては期待した動作をしてくれますが数字は
無視され、数字を含む単語は分割されます。

そこで上記のマニュアルにある通り[string charlist]を使って、「fri3nd」
のような文字列もそのまま単語として扱いたいのですが、ご覧の通り
肝心の[string charlist]部分が文字化けしています。str_word_countは
日本語の情報がほとんど出てこないし途方に暮れています。

ご存知の方いらっしゃいましたら、ご教示お願いいたします。
あるいはまったく別の方法がよろしいんでしょうか。
効率的で負荷が低ければ他の関数でも採用したいと思います。
0840nobodyさん2005/07/06(水) 10:08:19ID:???
>>839
PHP 5.1.0
0841nobodyさん2005/07/06(水) 11:13:23ID:???
文字化けしてるのかな?
a`a'a~c,3を文字として扱いますよってことだと思うけど(未確認)
0842nobodyさん2005/07/06(水) 11:31:06ID:???
>>841
同意
ドイツ語、フランス語対応って感じでしょう

$list = str_word_count( $str, 1, '3');
を実行したら
PHP5.0.4
Warning: Wrong parameter count for str_word_count() in C:\home\php\test.php on line 3
PHP5.1.0b2
3を含む文字列使えた
08438392005/07/06(水) 11:34:32ID:???
>>840
見落としてました(汗
サーバが5.0.4なのでこの便利そうな機能は使えないんですね。

>>841,842
なるほど、文字化けじゃなくてラテン文字と数字の3なんですね。
だから「fri3nd」もひとつの単語ですよ、と。ありがとうございます。

>>839のような場合はどんな関数が使えるんでしょうか?
需要はありそうなんですが。引き続きお願いいたします。
0844nobodyさん2005/07/06(水) 11:45:20ID:???
>>843
単語ってスペースで区切られてるんですよね
preg_splitで空白文字、記号で分割するのはどう
preg_split("/[\s,.?!]+/", $str);
08458392005/07/06(水) 11:59:24ID:???
>>844
いまちょうど見つけました。これを使うのが常識なようで、
よく調べもせずに失礼しました。ありがとうございました。
0846nobodyさん2005/07/06(水) 14:49:26ID:+dzX+yc7
質問1
hetmlで色々書いたり変数を差し込んだりしてる(略)の部分の中で
functionを実行したりって出来ないもんなんでしょうか?
functionで行っている一連の手続きの結果を変数におさめることが出来ればそれでもいいんですが。

$cont =<<<hoge
(略)
hoge;

質問2
相対パスでファイルパス($imgpath = "imge/hoge.jpg";とか$datadir = "himitsu/data";)などが
書かれたconfig.phpとか、これに類する(パスがからんだもの)ファイルを、
違うレベルの階層のファイルからちゃんとインクルードって不可能でしょうか?
めんどくさくて、インクルードする側とされる側のファイルを同じディレクトリに置いちゃってるんですが
結構細かくファイルを分けてるもんで、どこかのディレクトリにまとめておいて、どんな階層からでも参照したいんですが。
0847nobodyさん2005/07/06(水) 15:09:43ID:???
>>846
1.
ヒアドキュメントの中で関数を使うのは無理。
関数の結果(return)を変数に代入して、その変数をヒアドキュメントの中で使うのはあり。
というかそれが正しい使い方。

2.
呼び出しの大元のスクリプトの場所がワーキングディレクトリとなり、
相対パスを使った場合はここからのパス指定になる。
ワーキングディレクトリの変更はchdir()で行えるが、更なる混乱を招くので止めた方がいいと思う。
オイラは defineで基準となるディレクトリ名(s)を設定して、それを使うようにしている。
0848nobodyさん2005/07/06(水) 15:25:09ID:???
win2000 IISでPHPをISAPIで入れました。
include("hoge.inc")が使いのでphp.iniをみてwin用の例(include_path = ".;c:\php\includes")を
そのままコピペしてアンコメントしたのですがインクルード出来ずに
failed to open stream: No such file or directory in XXXXXXXXとエラーを吐きます。
また、include("c:\php\includes\hoge.inc")とすると正常に読めます。
winでもinclude_pathの指定は可能なんでしょうか?
0849nobodyさん2005/07/06(水) 15:32:30ID:???
アンコメントって何?

とりあえずphpinfoでも見てphp.iniが読み込まれてるかとか、include_pathがどうなっているかとか見れ
0850nobodyさん2005/07/06(水) 15:46:33ID:???
>>849
コメントアウトされてたので行頭の;をはずしました > アンコメント
phpinfo確認した所
include_path.;c:\php\includes.;c:\php\includes
期待通りです。
ちなみに再起動しなくてもphp.iniは再読み込みされるんですね、
Redhatでphp使ったことがあったんですが再起動しないとダメだった気が…。
0851nobodyさん2005/07/06(水) 15:52:16ID:???
>>850
\じゃなくて\だよ
0852nobodyさん2005/07/06(水) 15:56:41ID:???
>>851
バックスラッシュですよね?
今macから書いてるから化けるかも
0853nobodyさん2005/07/06(水) 16:15:05ID:???
まさかとは思うけど。。。
そのスクリプトと同じディレクトリにhoge.incが存在していて
そのhoge.incの中でエラーが出てるってことはないよね。
0854nobodyさん2005/07/06(水) 17:25:35ID:???
>>853
このディレクトリにはファイル一つしかおいてないっす
hoge.incを同フォルダにおくとincludeに成功します。
0855nobodyさん2005/07/06(水) 18:20:10ID:VUICn4NH
http://blog.livedoor.jp/ura_gossip/

芸能裏モノニュースさんみたいな更新情報が流れてくるやつをブログ内に設置したいんですが

サクラかXREAにサーバーを借りたあとどうしたたらいいんでしょうか?

やり方を書いてるサイトとかあったら教えてください
0856nobodyさん2005/07/06(水) 18:44:47ID:???
>>855
おまいのそれは丸投げとかクレクレという。まずはPHPの知識をつけろ

それからだ
0857nobodyさん2005/07/06(水) 18:46:15ID:???
PHPでも何でもないじゃん
0858nobodyさん2005/07/06(水) 18:49:16ID:???
>>857
phpでもできるし、
もっともくだらねぇ質問の類だからスレの趣旨にはあっている。
激しくむかつくがな。
0859nobodyさん2005/07/06(水) 19:09:21ID:???
>>857
>芸能裏モノニュースさんみたいな更新情報が流れてくるやつ
を受信したいの?発信したいの?
0860nobodyさん2005/07/06(水) 19:09:51ID:???
>>858
まあ、スレ住人的には
「こんなくだらない質問するのはなあ…でも分かんないしなあ…ちょっとなあ…」
と悩める子羊に対して
「いいからウダウダ言わずに持ってこいやあ( ゚Д゚)カムーン」
と後押しする意味の「くだらない」であって、
何でもかんでも聞いていいっつー仏さんのような人間を求める香具師には
ハナからこうしてなじられちまうわけだがな

自分で頭痛くなるまで考えない香具師はいつまで経っても前進は無理
08618592005/07/06(水) 19:10:11ID:???
ぐはっミスった、
×>857
○>855
0862nobodyさん2005/07/06(水) 19:13:03ID:???
初心者が自作しようとすると
バッチ処理と差分の取り方がネックになるのかな。
08638462005/07/06(水) 19:14:53ID:???
>>847さん、レスありがとうございます。
function testtest($aaa){
global $kekka;
$kekka = $aaaを使ったいろんな処理;
return $kekka;
}
ってやっておいて

$cont =<<<hoge
(htmlとかいろいろ)
{$kekka}
(htmlとかいろいろ)
hoge;
って感じでしょうか?

defineか、なるほど。研究してみます。
defineを記述するphp内でルート相対パスを取得、
それを基準パスとしてdefineで宣言してしまうわけですね。参考になりますた。
08648552005/07/06(水) 20:30:37ID:VUICn4NH
どこで聞いたらいいのかがまず分からないので聞いてみたんですが・・

板違いですか?

どこで質問すればいいのか教えてください
0865nobodyさん2005/07/06(水) 20:32:58ID:VUICn4NH
>>859
受信です
0866nobodyさん2005/07/06(水) 21:09:39ID:???
>>864
板違いではない。話題的にはこの場所で合ってる(はず)。
ただ、俺もこのスレの住人も他のサイトの人間も、
ぐぐって調べてひっくりがえして、それこそバファリンの世話になるまで
考えまくったわけで、それでようやく理解できた「概念」は、
他人に聞いてもポンと理解できるような簡単なものではない。
そうでもしないと理解なんぞ出来ない。丸投げして人に聞いてる時点で無理ってこと。

具体的に言えば「どうすればいいですか」じゃなくて
まずプログラムという努力の成果を持ってきた上で「どこがおかしいですか」。

「まずやってみよう」「意地でも理解してみせる」
って気概の感じられない人間はプログラムの世界じゃ誰にも相手にされない。
厳しいが這い上がって来い。
0867nobodyさん2005/07/06(水) 21:12:03ID:???
…と、半端者の俺が格好つけて申しております(つД`)
0868nobodyさん2005/07/06(水) 21:34:04ID:VUICn4NH
>>866
それは十分承知してるつもりなのですけども、他のブロガーさんも何個か全く同じヤツ作ってて簡単に作れるものなのかと思いまして聞いたんです

そもそも更新情報的なんなんかはPHPであってるんでしょうか?

もう何から勉強したらいいのかわからなくて
0869nobodyさん2005/07/06(水) 22:05:03ID:???
つか、アフィだろ?
板違い
0870nobodyさん2005/07/06(水) 22:17:13ID:???
完全に板違いというわけではないが
質問に答えたところであなたがそれを実行できるのに最低限知識があるとは思えない
0871nobodyさん2005/07/06(水) 23:04:12ID:IFWSTCJy
fedoracore2で「system("crontab filename");」を実行したら
/var/spool/cronにapacheユーザーが実行したcronfile(?)がで
きるのにfedoracore3ではできない。
なぜ?
ちなみに「system("echo $PATH");」でcrontabのパスが
とおっているのは確認したし、ログインしてcrontab -u apache filename
ではできました。


0872nobodyさん2005/07/06(水) 23:49:02ID:???
SELinuxとかセキュリティ保護機能働いてんじゃない?
0873nobodyさん2005/07/06(水) 23:57:25ID:???
http//---------.cgi?○○

で○○の文字を保存されていくように↓つくったんだが
ある鯖ではうまく動いて、インフォシークではうまく動かないんだがなんで で?

#!/usr/local/bin/perl

$mes=$ENV{'QUERY_STRING'};
chomp($mes);
open(FILE,">>s.dat")||die("Error!");

flock(FILE,2);
print FILE $mes."";
flock(FILE,8);

close(FILE);

0874nobodyさん2005/07/07(木) 00:01:34ID:???
>>873
スレ違いだから
0875nobodyさん2005/07/07(木) 01:36:27ID:OHtTbw4o
1ホスト1アクセスって言う設定は.htaccessで出来ますか?
0876nobodyさん2005/07/07(木) 02:15:35ID:???
>>875

>>874
0877nobodyさん2005/07/07(木) 02:17:33ID:???
>>875
mod_limitipconnあたりでできるけど、スレ違い。
調べてみて分からない所があればapache関係のスレへ。
0878nobodyさん2005/07/07(木) 03:45:43ID:???
すんません。
ポストしたボタンに以下の様な感じでvalueを付けて
 get_0
 get_1
 get_2
 get_3
 get_4
と下一桁だけが違うデータを拾う場合に
 preg_match('{^get_}', $_POST)
のような感じで纏めて一つで拾うって事は可能ですか?

宜しくお願いします。
0879nobodyさん2005/07/07(木) 03:59:03ID:???
>>878

$before = ("get_*" を含んだ配列);
$after = str_replace("get_","",$before);

print_r($after); # 内容を確認
08808682005/07/07(木) 03:59:53ID:sHuTjmyq
>>870
つか教えてくれたら知識がなくてもいろいろ調べて実行するのに!!!

もうこねえよウワーン!!!
0881nobodyさん2005/07/07(木) 04:35:01ID:???
>>879
どうも。
それは処理を取得した後の話ですよね。

私の書き方がアホ過ぎた。

if ( isset($_POST["get_1"]) )
sele if( isset($_POST["get_2"]) )
sele if( isset($_POST["get_3"]) )
・・・
と沢山書かなくては面倒なので
if ( preg_match('{^get_}', $_POST) )
のような感じ引っ掛けたいのですか可能ですか?
0882nobodyさん2005/07/07(木) 05:54:07ID:???
878です。

ダサいけど配列を分解して検証しました。
0883nobodyさん2005/07/07(木) 07:32:06ID:???
>>878
<input type="submit" name="button[0]" value="ボタン0" />
<input type="submit" name="button[1]" value="ボタン1" />
<input type="submit" name="button[2]" value="ボタン2" />

<?php
if (array_key_exists('button', $_POST))
{
 $button = $_REQUEST['button'];
 print_r($button);
}
?>
0884nobodyさん2005/07/07(木) 08:08:03ID:55WSE5MU
レンサバに関する質問です。
PHPを使って、FTPのアカウントを管理する(追加したり削除したり)ことはできますか?
FTPサーバはWebと同じホスト上で動いてて、cPanel(レンサバさんにインストールされた、Webベースの管理画面ツール)から手入力でFTPアカウントをいじることはできるのです。
これをPHPを用いたWeb上のログインと関連付けて自動的に管理したいと思っています。

まだ申し込みをする前なので具体的な環境は提示できないのですが、「環境による」という場合は、Pure-FTPdの場合を想定してもらえると助かります。
一応、OSはUnix系、WebサーバはApacheというのは間違いないと思います。
0885nobodyさん2005/07/07(木) 08:11:37ID:/h0r6Ir6
<?php

require_once 'db.php';

//-------------------------------------------------------------------------------
// データベースに接続する
$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die("接続エラー");
//-------------------------------------------------------------------------------
id_get();
echo $id;
//-------------------------------------------------------------------------------
// 接続を解除する
mysql_close($conn);
?>

db.php内には

function id_get(){
$sql = "SELECT id FROM data ORDER BY id DESC LIMIT 1;";
$res = mysql_query($sql, $conn) or die("抽出エラー");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
$id = $row["id"];
}
があります。

これでなぜかdb.phpの抽出エラーが出ます。接続のUser,Passなどは合ってます。
includeやrequireで別ファイルにSQLの部分だけ記述し呼び出すとエラーになるようなのですが対処法が分かりません…。
よく使う部分なので別ファイルにして呼び出したいのですがいかがすればよろしいでしょうか?
0886nobodyさん2005/07/07(木) 08:16:14ID:55WSE5MU
>>885
function id_get() 内の $conn が空っぽですね。
引数で渡してやりましょう。
0887nobodyさん2005/07/07(木) 08:41:31ID:???
>>885
変数のスコープ(有効範囲)を理解しましょう
id_get()内の$connと$idは外の$conn,$idとは別物です
あなたがやっているのは
function id_get(){
$sql = "SELECT id FROM data ORDER BY id DESC LIMIT 1;";
$res = mysql_query($sql, $未定義の変数) or die("抽出エラー");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
$使えない変数 = $row["id"];
}
と同じことです
0888nobodyさん2005/07/07(木) 11:35:31ID:???
>>883
$_POST の button が有るかを見ておいて、$_REQUEST で拾うのって気持ち悪くない?
少なくとも、俺にとっては耐えられない。

>>878

<input type="checkbox" name="hoge[]" value="get_1">
<input type="checkbox" name="hoge[]" value="get_2">
<input type="checkbox" name="hoge[]" value="get_3">

<?php

if(array_key_exists("hoge",$_POST)){

if($foo = preg_grep("/^get_(\d)+$/",$_POST['hoge'])){
print_r($foo); # 又は、処理続行
}
else{
die("送信されたデータの形式が正しくありません");
}

}

?>
0889nobodyさん2005/07/07(木) 13:30:00ID:???
>>884
貴方がレンタルサーバ屋なら直接弄るのは可能だけど、
cPanel使ってるってことは、そのサーバ屋さんですらリセラーに過ぎず
貴方は更にその顧客に過ぎない予感。元々あるWebの管理ツールI/Fを
cURLか何かで叩くような自作のスクリプトで対応するしかないでしょう。
0890nobodyさん2005/07/07(木) 14:29:00ID:55WSE5MU
>>889
情報ありがとうございます。
もしかしてcPanelとソケット通信してなんとかするってことでしょうか?
それは今まで考えつかなかったのでやってみようと思います。
(FTPコマンドとかでできてしまえばなぁ・・・と思ったりしてたのですが)

cURLっていうツールは初めて知りました。
manで調べたらずいぶん豊富な機能満載ですねw

基本的にcPanelはHTTPでアクセスできるので(ポート違いで)、HTMLを正規表現で地道に弄るしかなさそうですかね。
もしかしてcURLでもっと簡単にできたりとかするのでしょうか?
あ、Cookie絡みとかうまく処理してくれそうですね。
どうもありがとうございました。
0891nobodyさん2005/07/07(木) 16:24:59ID:???
条件がいくつもあるIF文を実現させる時、書く順番、というかコツはありますか?
例えば
・二十歳で親の同意なく結婚できる
・男は18歳以上、女は16歳以上でも結婚できるが、親の同意がなければ結婚できない。
これを「$tosi」「$seibetu」「$doui」を使って実現させるには皆さんどう書きますか?

0892nobodyさん2005/07/07(木) 16:54:13ID:???
状況次第なので書く順番もコツも100点の答えはないと思う。
個人的には工夫して短く書くよりも条件が理解しやすいように書く(書きたい)けど。
例題だと漏れならこんな感じで書くかな。実際には関数化するだろうけど。

$ok = false;

if ($tosi >= 20) {
 $ok = true;

} else {
 if ($seibetu == '男' && $tosi >= 18 && $doui == true)
  $ok = true;

 if ($seibetu == '女' && $tosi >= 16 && $doui == true)
  $ok = true;
}

echo $ok ? '結婚OK' : '結婚NG';
0893nobodyさん2005/07/07(木) 16:56:27ID:???
if ($tosi > 20 || ($tosi >= ($seibetu == OTOKO ? 18 : 16) && $doui))
{
  ケコーン
}
0894nobodyさん2005/07/07(木) 16:58:46ID:???
2005-07-06 22:43:41をUNIXタイムスタンプになおすのってどーやんの?
0895nobodyさん2005/07/07(木) 17:02:51ID:???
>>894
マニュアルぐらい嫁
strtotime('2005-07-06 22:43:41');

0896nobodyさん2005/07/07(木) 17:03:31ID:???
アリガトン
08978912005/07/07(木) 19:12:36ID:???
お返事ありがとうございます。遅レススッマセン
>>892
短っ、と思ったら
>>893
!!
マジデスカ・・・もっと勉強します。
0898nobodyさん2005/07/07(木) 20:27:14ID:???
case文で比較演算子って使えないの?
case "hoge" || "fuga" :
とか
0899nobodyさん2005/07/07(木) 21:10:42ID:???
やってみればいいじゃん
0900nobodyさん2005/07/07(木) 21:20:36ID:???
>>898の書き方では使えなかったので、使えるの?じゃなく使えないの?って
聞いてみたんだけどね。
0901nobodyさん2005/07/07(木) 21:45:51ID:???
自己解決、これでいけた

case "hoge":
case "fuga":
  なんか処理
break;

つーか普通に式が使えるみたい
http://www.php.net/manual/ja/control-structures.switch.php
お恥ずかしい、吊ってきま
0902nobodyさん2005/07/08(金) 01:16:27ID:???
>つーか普通に式が使えるみたい
???
0903nobodyさん2005/07/08(金) 02:39:12ID:???
間違っていないと思うぞ
0904nobodyさん2005/07/08(金) 05:51:56ID:???
>>883
>>888(切り番オメ)
その手があったか!

ありがとうございます。
賢くなりました。
0905nobodyさん2005/07/08(金) 10:11:17ID:???
三項演算子って個人的に見にくいから嫌いなんだよね
0906nobodyさん2005/07/08(金) 11:17:14ID:Kz6PELZi
mb_convert_caseで全角記号<=>半角記号のみ変換できませんか?
0907nobodyさん2005/07/08(金) 11:39:33ID:???
>>906
全角-半角の変換は
mb_convert_kana
だが記号のみの変換は出来ない
mb_ereg_replaceで変換したらどう
0908nobodyさん2005/07/08(金) 12:09:46ID:???
コピペしたらcaseとkana間違いました・・・
mb_ereg_replaceで頑張ってみます
0909nobodyさん2005/07/08(金) 12:34:27ID:52zXDpei
特定の文字を入力したら、特定の文字に変換するスクリプトを作りたいんですが全然わかりません・・・orz
とりあえず、なにもわからない状態で適当に書いたもの

<form method="POST" enctype="multipart/form-data" action="henkan.php"><br>
変換したい文をいれてください<INPUT type="text" name="henkan" size="5"><br>
<INPUT type="submit" name="submit" value="変換"><br>
</form>
<FORM METHOD="post">
ここに変換結果が出ますj<INPUT NAME="time" SIZE="12" value="
<?php
if [$henkan=('こんにちは');
print ('Hello');
]
else [
]
?>
">
</FORM>

どうすればいいのでしょうか・・・orz
0910nobodyさん2005/07/08(金) 12:38:34ID:???
 ゚д゚
0911nobodyさん2005/07/08(金) 12:39:21ID:???
こんな酷いソースは初めて見た
0912nobodyさん2005/07/08(金) 12:54:41ID:???
>>909
何もわからない状態で、動く文字変換のスクリプトが書けるほどPHPは甘くは無い。
マニュアルの基本構文から読みはじめなさい。
0913nobodyさん2005/07/08(金) 12:58:25ID:???
>>909
なんかむちゃくちゃすぎてどこから答えて良いのやら。。
とりあえず入力部と変換・出力部の2つに分けて、こんな感じかな。
なるべく元のソースを変更しないようにしたのでツッコミ所満載だけどね。
でも、たのむからもう少し基礎勉強をやってくださいな。

入力部(input.html)
<html><body>
<form method="POST" enctype="multipart/form-data" action="henkan.php"><br>
変換したい文をいれてください<INPUT type="text" name="henkan" size="5"><br>
<INPUT type="submit" name="submit" value="変換"><br>
</form>
</body></html>

変換・出力部(henkan.php)
<html><body><FORM METHOD="post">
<?php
if ($_POST['henkan'] == 'こんにちは') {
 $value = 'Hello';
} else {
 $value = '';
}

print <<<END
ここに変換結果が出ますj<INPUT NAME="time" SIZE="12" value="{$value}">
END;
?>

</FORM></body></html>
0914nobodyさん2005/07/08(金) 13:36:32ID:52zXDpei
>>912
マニュアルとかで勉強するの苦手なので、とにかくいろいろ見たり書いたりしてみようと・・orz
>>913
なるほど
Parse error: parse error, unexpected '@' in henkan.php on line 4
これなんですか?
0915nobodyさん2005/07/08(金) 13:44:56ID:???
>>914
@は全角スペースの一部
行の先頭のスペースを削除しろ
09169132005/07/08(金) 14:10:19ID:???
>>914
世の中には色んなヤツがいるもんだ。。
答えてやるんぢゃなかったよ。
以降、スルーしたいんで、コテハンでカキコしてちょーだい。
0917nobodyさん2005/07/08(金) 14:26:40ID:???
>>914

ttp://www.excite.co.jp/world/english/
0918nobodyさん2005/07/08(金) 14:45:36ID:???
>>916
ィ`
世の中色んなアホがいるもんだ

何でも聞けばいいと思ってる香具師とか何でも聞けばいいと思ってる香具師とか
>>914とか何でも聞けばいいと思ってる阿呆な香具師とかな

これからもPHPを 真 面 目 に勉強する香具師のために回答してやってくれ
0919nobodyさん2005/07/08(金) 14:47:48ID:???
つってもここはくだらねぇ質問スレなので適当に処理してください
0920nobodyさん2005/07/08(金) 15:07:23ID:???
くだらない質問に答えてくれる(かもしれない)スレであって
くだらない奴の質問に答えなければいけないスレではないんだよ
0921nobodyさん2005/07/08(金) 15:41:50ID:???
>>914
電化製品と違うんだぞ。
自分で言語つくれや。
0922nobodyさん2005/07/08(金) 18:38:58ID:???
マニュアル読むの俺も苦手だし、実際に書いて覚えてきたクチだが、
そうやって勉強すると決めたからには人に聞いてはいけない。
0923nobodyさん2005/07/08(金) 18:41:50ID:???
これから勉強を始めようと思っている者です。
htmlでいえば「とほほ」みたいな感じの
phpのサイトはありますか。
0924nobodyさん2005/07/08(金) 19:13:57ID:???
とほほみたいな感じってのがリファレンスとかを指してるなら
マニュアルで良いと思うけど。


日本語版もあるし、機能でまとまってるし。
0925nobodyさん2005/07/08(金) 19:32:37ID:???
>>923
個人運営のやさしい解説ページみたいなのを探してるんだと思うけど、>>924も言うとおり本家のマニュアルが一番。
http://www.php.net/manual/ja/

その中でも以下のページは「勉強」に適してる。

・言語リファレンス http://www.php.net/manual/ja/langref.php
・セキュリティ http://www.php.net/manual/ja/security.php
・機能 http://www.php.net/manual/ja/features.php

あとは

・関数リファレンス http://www.php.net/manual/ja/funcref.php

を小まめに参照するべし。
ページ上部についてる検索も使うべし。

「勉強」ページを探してるなら「とほほみたいな感じ」とか言わないほうがいいかもよ。
「リファレンス」ページ探してるならOK。
0926nobodyさん2005/07/08(金) 19:50:48ID:???
>>923

こことか
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3php.htm
09279232005/07/08(金) 20:27:33ID:???
皆さんありがとうございます。
たくさん勉強して、今度は教える側として
ここに戻ってきます!
0928nobodyさん2005/07/08(金) 22:33:04ID:???
あぁがんばれよ
0929nobodyさん2005/07/08(金) 22:36:13ID:???
無理だと思うけど
0930nobodyさん2005/07/08(金) 22:53:02ID:???
914 == 927?
0931nobodyさん2005/07/09(土) 04:14:09ID:???
>>929
中途半端な知識でうそ教えられても困る品。
0932nobodyさん2005/07/09(土) 11:50:33ID:???
文字コードについて質問させて下さい。

よく、Shift-JISは特別な理由が無い限り、使うべきでは無いという事が
色々なPHPなどのサイトで書かれています。

しかし、php.iniやMySQLを使う場合のmy.iniなどをShift-JISとしてちゃんと設定した場合、
文字化けされると言われている漢字など、一切文字化けが起こりません。

一体、何故Shift-JISを使うべきではないのでしょうか?
0933nobodyさん2005/07/09(土) 12:04:30ID:???
>>932
サーバ(Linux系)の文字コードがEUC-JPだからかな。
まぁ別に文字化け起こさないならそれでいいだろうし。
そこまで気にしなくてもいいと思う。
ちゃんとそれ用の関数もあるしね。

とかいう漏れはUTF-8が好きだけど。
0934nobodyさん2005/07/09(土) 12:12:47ID:???
表示で検索すると表オ\がマッチしてしまう。
mb使わないとね。
0935nobodyさん2005/07/09(土) 12:14:52ID:???
>>932
<?php
echo "表";
?>
0936nobodyさん2005/07/09(土) 12:16:47ID:???
>>935
いや、<?="示"?>だろw
0937nobodyさん2005/07/09(土) 12:39:28ID:qBG5b/jy
MySQLとPHPを勉強しつつ試しにデータベースを作ってるんですが、
ループ処理でSQL文を多数連続して発行するというのはサーバーにとって問題ないのでしょうか?
数十件とか数百件の処理を行うphpをネットワーク上で複数人が同時に行ったらどれほど負荷がかかるものなのでしょうか?
また、どの処理がどの程度負荷がかかるという知識はどこで学べるものなのでしょうか?
0938nobodyさん2005/07/09(土) 12:42:32ID:???
>>932
こんなことやっても化けません?

$value = mysql_escape_string('表示表示');
$sql = "INSERT INTO xxx(xxx) VALUES('{$value}')";
mysql_query($sql);
0939nobodyさん2005/07/09(土) 12:55:10ID:???
>>938
PHPでMySQL繋いで、そのSQLをInsertした後に、
レコードを表示させてみましたが、全く問題無いですよ?
09409322005/07/09(土) 12:56:22ID:???
書き忘れ。

ちなみに、PHPは4.3.10、MySQLは4.0.24です。
Windowsのローカル環境でテストしてます。
09419382005/07/09(土) 13:05:31ID:???
>>939
あれぇ。そうなんですか。
PHP 4.3.10、MySQL 4.1.12だと化けますです(表示表\示となっちゃう)。
MySQL4.0系と4.1系の違い or ウチのphp.ini周りが変なのかな。。。
元質問の方に逆質問しちゃいましたね。スマソ。
0942nobodyさん2005/07/09(土) 13:12:07ID:???
'と"の違いが分からん香具師がいるようだ。
0943nobodyさん2005/07/09(土) 13:26:14ID:???
MySQLの4.1がおかしいって気づいてない奴がまだいたのか・・・
0944nobodyさん2005/07/09(土) 13:41:19ID:???
APC-3.0.3のMMAPが有効にならないのはわしだけですか?
0945nobodyさん2005/07/09(土) 13:58:09ID:???
944 ですけど、なんかここの所頻繁にリリースしてるようなのでもう
少し待ってみます
0946nobodyさん2005/07/09(土) 18:01:54ID:???
>>937
>ループ処理でSQL文を多数連続して発行するというのはサーバーにとって問題ないのでしょうか?
それは、アルゴリズムがおかしいんだと思う。ループの中でやるのはfetchくらいが普通。
SELECTだのUPDATEだのをループ中で連発するってのは、多分SQLの書き方か、
データベースの構成そのものが変。

>数十件とか数百件の処理を行うphpをネットワーク上で複数人が同時に行ったらどれほど負荷がかかるものなのでしょうか?
気にする事はまるで無いレベル。
もしローカルでやって遅いとか思うなら、やっぱりSQLがおかしいんだと思う。JOINが変とか…

>また、どの処理がどの程度負荷がかかるという知識はどこで学べるものなのでしょうか?
MySQLのマニュアルに最適化の項があるけど、もうちょっと勉強してからでも良いんじゃないかね。
というか、データベース板で聞いたほうが良い話題かもね。
0947nobodyさん2005/07/09(土) 18:19:20ID:???
Windows BinariesにあるPHP 5.0.4 zip packageの中に
php_w32api.dllが見つからないんだが・・・
09489372005/07/09(土) 18:29:29ID:???
>>946
レスありがとうございます。
最適化についてはもう少し勉強してからマニュアルを見てみることにします。
ループ処理でupdateとかinsertするのは何か他に問題があるのでしょうか?
ブラウザに入力した複数のレコードのデータを全部insert,updateしたかったりするのですが。
このような場合に、PHPでSQL文を連続して発行するのにSQL処理が追いつかなかったりすることはありえるのでしょうか?
0949nobodyさん2005/07/09(土) 19:02:15ID:XiYWtJZE

$str = system("/usr/bin/nslookup google.com");
print "$str";

nslookupの結果を表示したいのですが、
上のようにすると、$str が、表示されません。

しかしながら、IPは表示されるので、
system関数だけで、表示までしてしまっているようです。

コマンドの結果が、$strに代入するには、
どのようにすれば良いでしょうか。<(_ _)>
0950nobodyさん2005/07/09(土) 19:13:41ID:???
>>949

> コマンドの結果が、$strに代入するには、

日本語勉強し直してから来いや。
09519492005/07/09(土) 19:16:02ID:???
すみません。
nslookupコマンドの結果を、$strに代入したいです。
よろしくお願いします。<(_ _)>
09529502005/07/09(土) 19:31:30ID:???
>>951
back-tick演算子を使いなされ。

http://jp2.php.net/manual/ja/language.operators.execution.php
09539492005/07/09(土) 19:38:15ID:???
>>942
ありがとうございました!多謝!
0954nobodyさん2005/07/09(土) 21:42:57ID:5B+sqzqa
XAMPPでmysql+php環境を作ったんですが、
dreamweaverからlocalhostのMYSQLにつなげられません。

MYSQLの設定がよろしくないからということまではわかったんですが
どこを変えればいいんでしょうか・・・phpmyadmin
からはそれらしい項目が見つからず、困ってます
お助けを・・・
09559542005/07/10(日) 00:01:59ID:???
ちなみに動的テーブルを挿入しようとすると、次のようなエラーがでます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HTTPエラーコード 404ファイルが見つかりません。考えられる原因はつぎのとおりです:

1)サーバーマシン上でテストサーバーが動作していません。
2)このサイトに対して指定されたテストサーバーが
http//localhost/_mmServerScripts/MMHTTPDB.php URLに対してマップしていません。
URL 接頭辞がサイトのルートにマップしていることを確認してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
0956nobodyさん2005/07/10(日) 00:07:14ID:???
dreamweaverの設定が悪いんだろ。
0957nobodyさん2005/07/10(日) 11:18:54ID:???
http//
  ↑ん
0958nobodyさん2005/07/10(日) 13:47:44ID:???
っうぇ
0959nobodyさん2005/07/10(日) 18:34:56ID:???
exec関数を使ってシステムの操作をしたいのですが
どうもexec関数が実行されないようなので質問させてください。

例えば
$message=exec ( 'ls ', $directory , $ret );
このようなことをやってファイルの一覧を取得しようとしても、$ret,$messageともに空です。

$directory はフルパスで指定したり、変数ではなく'ls /path' というような指定をしてもだめでした
lsの方をフルパス指定しても同じです。

しかしこれらの問題はブラウザの方から実行した時の問題で、
コンソールからは問題なく実行できます。
フォルダに対してapacheのアクセス権はもちろんあります。
セーフモードの解除もしてあります

PHP 4.3.9
0960nobodyさん2005/07/10(日) 18:37:32ID:???
>>959

それ、ドット (連結演算子) じゃなくてセミコロンになってるのだわ。
09619602005/07/10(日) 18:48:04ID:???
同じようにやるのなら、こうでも良いんじゃないのかしら。

$message = shell_exec("ls ".$directory);
09629592005/07/10(日) 21:51:09ID:???
すみません
プログラムのほうではドットになっています。

それからまた、プログラムの中で直接ディレクトリを書いても  exec('ls /path' );
だめです

また、shell_execも使ってみましたがやはりだめでした。


09639602005/07/10(日) 22:49:40ID:???
>>962
そのスクリプトの動作確認に使っているのは Internet Explorer ?
もしかして、一番始めに表示確認して失敗した状態 (何の出力も無し) のままを
ブラウザがキャッシュし続けている、という可能性は無いのかしら?

一度、明示的にキャッシュを破棄するヘッダ (Cache-Control:no-cache) を追加
するか、ファイル名そのものを変更してみるというのは如何かしら。

<?php

exec("ls",&$exe);
die(print_r($exe));

?>

私の環境では、これだけのものでも正常に動作するのに。おかしなものね。
09649592005/07/11(月) 00:08:57ID:???
lsで開きたいディレクトリはネットワーク上の別ホストからマウントしたディレクトリだったのですが、
色々試してみたところ、ブラウザで結果を取れないディレクトリは、このマウントしたディレクトリだけでした。
他のディレクトリではブラウザからでもちゃんと一覧が取れます。

もちろんコンソールからの実行結果は依然として期待通りのものです。
マウントしたディレクトリに対しても、ちゃんとlsでファイルを取ってこれます。


どうしてもこのディレクトリに対してコマンドで操作を行いたいのですが、
なにかアドバイスなどいただけませんか

09659602005/07/11(月) 01:06:13ID:???
>>960
情報は小出しだった上に、原因は大方「環境依存でした」だけでも片付きそうね。
力になれそうになくて悪いけれど、私も自分自身で試してみた事以外は答えられ
ないのだわ。そもそも、PHP の範囲内で収まる内容なのかしら。
0966nobodyさん2005/07/11(月) 11:04:48ID:L4oNazwt
http https ttp ttps ftp news www
上の奴から始まるものを文中から抜き出してURLを自動リンクするようにしたいのだけれど、
<?php
function autolink($url) {
$url = preg_replace("/(https?||ftp|news)(\:[\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/","<a href=\"\\1\\2\" title=\"\\1\\2\">\\1\\2</a>",$url);
return $url;
}
?>
ここまでは良いとして2chブラウザみたいにttpもしくはttpsで始まるものを自動リンクにする方法が思いつきません。
それとwwwのも同じ方法でやったんですが何故か出来ませんでした。
条件分岐など使って上手くURLを全部自動リンクするよう出来ませんかね?
0967nobodyさん2005/07/11(月) 11:37:59ID:???
>>966
出来ませんかね?と言われれば出来るとしかいいようがないわな。
09689662005/07/11(月) 11:59:55ID:???
出来るのは分かりますがその方法が思いつかなくて困っています。
この場合どのようにするべきでしょうか?
0969nobodyさん2005/07/11(月) 12:23:13ID:???
(ttps?|https?|ftp|news...ではダメなの?

>それとwwwのも同じ方法でやったんですが何故か出来ませんでした。
意味がよく判らない
0970nobodyさん2005/07/11(月) 12:27:21ID:???
正規表現身に付けとけば何かと便利だから少しくらいは勉強しといたほうがよいべ
0971nobodyさん2005/07/11(月) 12:44:59ID:???
>>969
ttps?入れたらhttps?はいらない
0972nobodyさん2005/07/11(月) 12:58:10ID:???
ttpsだけにしたらaタグがttpsから始まることになるぜ
09739542005/07/11(月) 13:00:32ID:???
>>957
すいません、手書きだったんで抜けてました。
実際はF12をおしてIEでプレビューが動きますから(PHP文も動作)
url関係の問題ではない気がします。

あれから、xamppを入れた状態で
mysqlを別途インストーラから普通にインストール
してDWから動的テーブル作成してみると、うまく動きました。
ただ、データフォルダが変わった(c:\mysql\data)ので
xampp上(c:\xammp\htdocs\xoops)で構築してたxoopsのデータと生き別れに・・・
たぶん、mysqlの設定(my.iniかmy.confの記述)の問題だと思うんですが、どの行か
がわかりません・・・
09749692005/07/11(月) 13:20:42ID:???
ごめん。抜き出したいんぢゃなくてaタグに置き換えたかったんだね。
preg_replace_callbackを使えばいいのかな。
テストしてないけど。。。

<?php
function maketag($matches) {
 $proto = $matches[1];

 if ($proto == 'ttp' || $proto == 'ttps')
  $proto = 'h' . $proto;

 $url = "<a href=\"{$proto}{$matches[2]}\" title=\"{$matches[1]}{$matches[2]}\">{$matches[1]}{$matches[2]}</a>";
 return $url;
}

function autolink($url) {
 $url = preg_replace_callback("/(ttps?|https?|ftp|news)(\:[\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/","makelink", $url);
 return $url;
}
09759692005/07/11(月) 13:22:02ID:???
連投スマソ。
関数名間違えた。
function maketag → function makelink
09769662005/07/11(月) 13:51:13ID:???
preg_replace_callbackと言うのがあるんですか。PHPを始めてまだ日も浅いので知っている関数少なくて。

しかし>>974のだとttpの場合<a href="ttp://〜〜〜〜〜"></a>みたいになると思うので実際にはリンク貼れないのではないでしょうか。
だからと言って
$url = "<a href=\"h{$proto}{$matches[2]}\" title=\"h{$matches[1]}{$matches[2]}\">{$matches[1]}{$matches[2]}</a>";
こうしてもttp以外の場合には余計なhが先頭についてハイパーリンクにはなりませんし……。

>>969
wwwのは以下のようにしてみたんですが上手くいきませんでした。
<?php
function autolink($url) {
$url = preg_replace("/(www)(\.[\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/","<a href=\"\\1\\2\" title=\"\\1\\2\">\\1\\2</a>",$url);
return $url;
}
?>

これら全部をやるには条件分岐しかないと思うんですが、httpとttpのところでどうしても引っかかってしまいます。
09779662005/07/11(月) 13:57:00ID:???
っとすいません、ちゃんとよく見てませんでした。
ちゃんとttpでもhが最初についてhttpになりますね。

一応試して見ましたがParse error: syntax error, unexpected T_VARIABLE on line 3と出ました。
0978nobodyさん2005/07/11(月) 14:46:56ID:???
h?ttps? じゃ駄目なのかしら。
0979nobodyさん2005/07/11(月) 15:32:27ID:???
一生懸命車輪再発明してるな。
んなもんググレばいくらでも出るだろ。
0980nobodyさん2005/07/11(月) 16:00:14ID:???
ソース
0981nobodyさん2005/07/11(月) 16:01:48ID:???
ソースてなに?馬鹿?
ttp://www.din.or.jp/~ohzaki/perl.htm
0982nobodyさん2005/07/11(月) 16:05:58ID:???
探す手間が省けたお^^
0983nobodyさん2005/07/11(月) 17:08:21ID:???
>>981
perlだし何の問題解決にもなってない
http, https, ttp, ttps, ftp, news, www, ついでメアドのURL自動リンクを作るのが目的だろ
まあ漏れは>>974にwwwとメアドのを足せば良いと思うがエラーが出る
0984nobodyさん2005/07/11(月) 18:08:43ID:???
>>983
は?perlの正規表現からPHPの正規表現にもなおせんの?
ヴァカですか?
0985nobodyさん2005/07/11(月) 18:51:41ID:???
>>983
マニ;ュアル読んでこい^_^;
>>981が正解。
0986nobodyさん2005/07/11(月) 18:58:12ID:???
>>984
「php pcre」でググりなさい。
09879542005/07/11(月) 19:01:28ID:???
・・・自己解決しました。
1.xampp解凍
2.mysqlを別途ダウンロード、インストール
3.winmysqladmin(c:\mysql\bin\)で、my.iniを以下のように編集
[mysqld]
basedir=C:/xampp/mysql
datadir=C:/xampp/mysql/data
です。
これでDWからスクリプトうたずにサクサク入力フォームとか作れてしあわせ〜っす
XOOPSのデータもよびだせるようになりました。
レスくれた人ありがとうございました
0988nobodyさん2005/07/11(月) 19:05:43ID:???
>>986
いやさすがに知ってるよ…。いまどきeregなんて使わん。
09899662005/07/11(月) 20:03:17ID:???
まずはPHPからと思って後でperlを始めようとか考えていたんですが
>>981が正解らしいのでとりあえず頑張ってみます。
0990nobodyさん2005/07/11(月) 20:53:15ID:???
フォルダの中にあるフォルダ名を配列に代入して返す関数を作っています。
下のような感じになりました。

function get_dir_list( $Dir ){
 
 $dh = opendir ( $Dir ) ;
 
 while ( false !== ( $filename = readdir( $dh ) ) ) {
  if( $filename !== "." && $filename !== ".." ){
   $files[] = $filename;
  }
 }
}

get_dir_list( "./test/" );
print_r( $files );

しかし、何も表示されません。なぜなのでしょうか?
0991nobodyさん2005/07/11(月) 20:57:20ID:???
>>990
関数内での変数のスコープ。
09929662005/07/11(月) 21:45:56ID:???
ちなみになんで
<?php
function autolink($url) {
$url = preg_replace("/(www)(\.[\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/","<a href=\"http\:\/\/\\1\\2\" title=\"\\1\\2\">\\1\\2</a>",$url);
return $url;
}
?>
でwwwから始まるURLがリンクされないのでしょうか?
これだけよく分からなくて……どなたかご教授お願いします。
0993nobodyさん2005/07/11(月) 22:01:31ID:???
どのように出力されているか($urlの内容)を示してくれると
ありがたいんだけど、パッと見た感じでは
<a href=\"http\:\/\/\\1\\2\"。。。
 ↓
<a href=\"http://\\1\\2\"。。。
のような希ガス
09949902005/07/11(月) 22:04:46ID:???
ググッてみましたが、対処法が考え付きませんでした。
どのように修正すれば良いのでしょうか?
0995nobodyさん2005/07/11(月) 22:12:51ID:???
>>994
2箇所、追加。
PHP 変数 スコープあたりをキーワードにしてググッてみるとよいよ。

$files = array();       //*** 追加
function get_dir_list( $Dir ){
 global $files;        //*** 追加
 $dh = opendir ( $Dir ) ;
 
 while ( false !== ( $filename = readdir( $dh ) ) ) {
  if( $filename !== "." && $filename !== ".." ){
   $files[] = $filename;
  }
 }
}

get_dir_list( "./test/" );
print_r( $files );
09969902005/07/11(月) 22:21:38ID:???
>>995
なるほど・・・。functionの外で$filesを設定しないといけないのですね。
詳しく教えてくださり、ありがとうございました。
09979952005/07/11(月) 22:21:55ID:???
就寝前にもう一つ(明日早いので)。
get_dir_listの仕様を変更して、ファイルリスト配列を返すようにしたほうが
スッキリすると思う。がんがれ。

function get_dir_list( $Dir ){
 $files = array();              //*** 追加

 $dh = opendir ( $Dir ) ;
 
 while ( false !== ( $filename = readdir( $dh ) ) ) {
  if( $filename !== "." && $filename !== ".." ){
   $files[] = $filename;
  }
 }

 return $files;               //*** 追加
}

$files = get_dir_list( "./test/" );     //*** 変更
print_r( $files );
0998nobodyさん2005/07/11(月) 23:34:57ID:???
|  |ハヽ
|  | e・)じー
|_と )
|豆| ノ
| ̄|
0999nobodyさん2005/07/11(月) 23:35:43ID:???
|
|
| =  n n   さゆがもらうの
| = ( ノハヽ
| =  ヽっ・ 。.・)っ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
1000nobodyさん2005/07/11(月) 23:36:09ID:???

 ∋oノハヽo∈
♪ ( ´D`) やったー、1000なのれす
 = ⊂   )
 = ミ三三彡 タッタッタ・・
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。