【PHP】質問スレッドpart33【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/16(木) 03:19:52ID:xwXojaq/【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0413皮先くん ◆N3i.Qu1SoY
2006/02/28(火) 03:09:36ID:0kpMwz/eそれともおまいらの"静観"という「最も強力なアドバイス」のためか、
とにかくとうとう成功しますた!!
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php
成功したのは、まず、form.phpからform.phpへPOSTして
(1)POST内容を表示させる
そして
(2)POST内容をtext.datに書き込ませる
というPHPで言うと中級レベルのことができるようになりますた!
一番引っかかったのはやはりPHP4になってから
従来のPOSTの値を受け取る $hogehoge が使えなくなったことに
気がつくところでしょうか。PHP4からは
$_POST['hogehoge']
に変更になっていたなんて・・・。
どうりでどれだけGoogleで検索かけてその通りにやってるのに
うまくいかないわけだよ・・・orz
またそのうちスキルが更新されたときに報告しますね。
0414皮先くん ◆N3i.Qu1SoY
2006/02/28(火) 04:01:57ID:0kpMwz/e・text.datへ書き込むときに、以前にデータを置き換えずに追記するようにしたい
さらに、
・text.datへ書きためたデータを元にデータベースとして扱いたい
といった感じかな。
これについてはLet's PHPから会得した
ttp://oresama.hopto.org/~sheel/phptest/poll/poll.php
という技を俺様自身が解析をすることより実現できそうな悪寒が(((( ;゚Д゚)))ガクガクブルブルする。
請うご期待!
0415nobodyさん
2006/02/28(火) 05:36:22ID:???スレ住人一同
0416nobodyさん
2006/02/28(火) 08:37:29ID:???PHPでMySQLのストアドプロシージャを使うにはどうすればよいのでしょうか?
mysq_query()コマンドで行うのでしょうか・・
0417nobodyさん
2006/02/28(火) 09:03:28ID:???>くだスレで華麗にスルーされたのできますた。
その質問自体が目に入らなかった。
ストアドとかMySQL4.1や5以降でサポートされた機能は
従来のMySQL拡張サポート(mysql_*関数群)ではなく
改良版MySQL拡張サポート(mysqli_*)を利用する必要がある。
http://jp2.php.net/mysqli
0418皮先くん ◆N3i.Qu1SoY
2006/02/28(火) 09:15:26ID:A8IEBtjw以前のデータに「書き加える」ことはできるようになりました。
また、CSVの方があとで扱いやすいのかな?と思って
下記のようにCSV形式になるようにfwriteしてみますた。
これで一応どんどん書き込まれていくのですが、
さてはてそれを今度はどうやって統計処理などのデータベース化したらいいのでしょうか・・・。
ま、俺様のスキルはすごいのでおまいらが静観するだけで
どんどんレベルアップするので静観しておいてくださいね。ぷげらw
<?php
$filename = "text.dat";
$file = fopen($filename,"a");
flock($file, 2);
fwrite($file, "name," . $_POST['name'] . "¥n");
fwrite($file, "sex," . $_POST['sex'] . "¥n");
fwrite($file, "hobby," . $_POST['hobby'] . "¥n");
fwrite($file, "OS," . $_POST['OS'] . "¥n");
fwrite($file, "kansou," . $_POST['kansou'] . "¥n");
flock($file, 3);
fclose($file);
?>
0419nobodyさん
2006/02/28(火) 11:12:46ID:???substrでやるのしか考えられませんですた
0421nobodyさん
2006/02/28(火) 11:44:42ID:???$s = "12345678";
$s1 = $s{0}.$s{1};
$s2 = $s{2}.$s{3};
$s3 = $s{4}.$s{5};
$s4 = $s{6}.$s{7};
クールかどうかはともかくこれが1番シンプルで速いんじゃ。
0424nobodyさん
2006/02/28(火) 12:40:53ID:???エレガントじゃないけど、適当にやってみた
$r1 = explode("\r\n",rtrim(chunk_split($s,2)));
preg_match('/(\d{2})(\d{2})(\d{2})/',$s, $r2);
PHP5なら、>>422のstr_split()だね。
0425nobodyさん
2006/02/28(火) 13:02:39ID:???0426424
2006/02/28(火) 13:23:53ID:???やってみて、それで出来ないと思った俺がいる(bool cutを指定してなかっただけ)
# あと数字6文字だと思ってた。
使える関数が色あるな>PHP
0427nobodyさん
2006/02/28(火) 13:47:39ID:???正規表現が次に想定してた方法ですた。
PHP5ならばstr_split()がベストのようです。
wordwrapはそのまま出力する時につかえますね。
既出スマソ
>>421-426皆様ありが�d
0428nobodyさん
2006/02/28(火) 23:00:13ID:C5SJRerwsafemodeじゃないのにphpからフォルダが作成できないです。
ちなみにperlからも出来ない・・・orz
これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・
0431nobodyさん
2006/02/28(火) 23:23:37ID:???出来ました!
でもパーミッションが設定どおりには出来ませんでした。
Perlだとちゃんと設定どおりに出来ました。
mkdir ("./test/test/", 0707);
とやっても705になってしまいます。
chmodかけても変わらず。
ただ所有者がapacheなフォルダになってしまっています。
adminでファイル・フォルダ操作を自由にこなす為には
アパッチをadmin:adminで動かせば良いのでしょうか?
0432nobodyさん
2006/02/28(火) 23:25:22ID:???0433nobodyさん
2006/02/28(火) 23:26:27ID:???0434nobodyさん
2006/03/01(水) 00:16:35ID:???phpをモジュールはApacheのユーザで動くのでphpで作ったディレクトリはapacheとかnobodyとかになってOK
phpやperlで処理するなら07xxや06xxで問題無いと思うけど?
adminの権限は?root権限があるならApacheをadminで動かすのはいかがかと。
ってか連鯖でしょ?変更できるのかね・・・
0435nobodyさん
2006/03/01(水) 10:59:06ID:???ありがとうございます。
所有者が違うとFTPソフトでダウンロードが出来ない事があるんですね。
では現在の>>431は動作的にはごく普通と解釈してもよろしいのですね。
ユーザ:adminにroot権限があるのかはどのようにしたらわかりますでしょうか・・。
0436nobodyさん
2006/03/01(水) 17:07:26ID:???0439nobodyさん
2006/03/01(水) 18:39:11ID:???手始めにPC-UNIXを勉強すると分かる。
0440nobodyさん
2006/03/01(水) 19:02:10ID:???0441nobodyさん
2006/03/01(水) 20:02:44ID:???〇 きんもーっ☆
慣れないことをするから……
0442nobodyさん
2006/03/02(木) 11:01:03ID:gp0qU8DL$test = "『これはテストです』";
func2();
print "$test";
}
function func2(){
$test = "『func2内で新たに定義されました』";
}
//-------メイン----------
func1();
=======================================
func2 の内容が反映されないのですが
どうしたらよいでしょうか。上記がコードです。
0444nobodyさん
2006/03/02(木) 11:04:44ID:???0445nobodyさん
2006/03/02(木) 11:12:00ID:???値渡しのときはreturnで戻す
0447nobodyさん
2006/03/02(木) 15:19:17ID:d8+PxLHhそのほうがよさげだね。
むしろ
利用環境(OS、ソフト、PHPバージョンなど)
みたいなのがいいぽい?
次回テンプレに入るといいね
0448nobodyさん
2006/03/02(木) 18:35:04ID:???何かおすすめの書籍ってありますか?
よろしくお願いします。
0449nobodyさん
2006/03/02(木) 18:49:27ID:???0450nobodyさん
2006/03/02(木) 20:31:51ID:???0451nobodyさん
2006/03/02(木) 20:36:21ID:???むしろ
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条』
は補足するくらいなら
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰わないための八ヶ条』
に変えるべき
0459nobodyさん
2006/03/02(木) 21:39:44ID:???目的を履き違えてる。
エスパーきぼんぬなやつは、言ったところで改善は不可能なんだから、
それは自覚を促して丁重にお帰り願うための文面だ。
「エスパーきぼんぬのレスをもらわないための方法」など無い。
0461nobodyさん
2006/03/02(木) 21:41:55ID:???0462nobodyさん
2006/03/02(木) 21:42:31ID:???0463nobodyさん
2006/03/02(木) 21:44:19ID:???0465nobodyさん
2006/03/02(木) 22:28:50ID:???>>451の案で平和になるのが理想なんだし。
・・・けど、最近皮肉とかブラックユーモアって通じにくくなってるよな・・・
ちょっとさびしい。
0467nobodyさん
2006/03/02(木) 23:45:40ID:???0469nobodyさん
2006/03/03(金) 00:09:59ID:???0470nobodyさん
2006/03/03(金) 00:14:14ID:???普通に 「質問者のルール」 って題名で箇条書きにすればいいのに
わざわざわかりにくくしてるし。
0472nobodyさん
2006/03/03(金) 00:36:24ID:QWJoZw1q完璧は求めていないので。。
phpに移植が大変><;
誰か作ってくれないかなぁ・・・・
0473nobodyさん
2006/03/03(金) 00:38:27ID:???逆はともかく、Perl→PHPはPerl→sedとかPerl→awkが無いのと一緒で、
できないことがあまりに多すぎて作るの無謀だと思う。
0474nobodyさん
2006/03/03(金) 00:39:35ID:???「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
0475nobodyさん
2006/03/03(金) 00:44:00ID:???回答がもらえやすいと思ってずっと情報小出しにしてた
0476nobodyさん
2006/03/03(金) 00:50:56ID:???0477nobodyさん
2006/03/03(金) 05:26:03ID:???ひっぱってきてるんですが、
これをするとヘッダーファイルに画像の相対リンクとか貼ってある
ときに困ることになります。
(require()されるファイルの場所次第で画像のリンク先が変わってしまう)
絶対リンク使えばいいんですが、SSLを使ったりするときもあるので
これは避けたいと考えています。
画像のリンク先を変数かなにか使ってやるのがいいかと思うんですが、
上手く思いつきません、グッドアイデアお願いします
0478nobodyさん
2006/03/03(金) 07:26:08ID:???elsif -> elseifの置換ぐらいなら問題ないけど =~ であきらめた
sub -> functionも引数の取り扱いや変数のスコープが違って自動では無理
0479nobodyさん
2006/03/03(金) 07:35:07ID:???<?php
$imageDir = "../img/";
include "header.php";
?>
header.php
<style>
body { background-image: url("<?php echo $imageDir?>bg.gif") }
</style>
0483nobodyさん
2006/03/03(金) 14:38:07ID:WgfWnQX6php_pgsql.dll
とかがないんですが、どこから入れたらいいんでしょうか?
0484nobodyさん
2006/03/03(金) 14:54:20ID:???環境によって違うがFedoraCoreのrpmなら
/usr/lib/php/modules
に
mbstring.soやgd.soが入る
0485nobodyさん
2006/03/03(金) 15:10:50ID:WgfWnQX6あ、環境書かなくて申し訳ないです。
redhat9で、自分でPHP5をコンパイルして入れてます
-------
./configure
--with-apxs2=/usr/local/apache2/bin/apxs
--with-gd
--with-zlib
with-pgsql=/usr/local/pgsql
--enable-mbregex
--enable-mbstring
--enable-trans-sid
--enable-mcrypt
-------
で、入れてるんですけど、modulesもextもないです…。
あとから入れることってできないんでしょうか?
0486nobodyさん
2006/03/03(金) 16:42:21ID:???ソースのextディレクトリに各モジュールのディレクトリがある
好みのディレクトリに移動して
phpize
./configure --help
./configure --enable-hoge
make
make install
で
/usr/local/lib/php/extensions/*****/
あたりにインストールされる
0487nobodyさん
2006/03/03(金) 16:54:06ID:???ちなみにコンパイル時に指定したモジュールはphp.soに内蔵されるので拡張モジュールのように別ファイルにはならないよ
0488nobodyさん
2006/03/03(金) 16:58:58ID:WgfWnQX6ありがとうございます!
やってみますー
0489nobodyさん
2006/03/03(金) 23:29:21ID:t7JloJn3phpinfo();は表示されます。
print date("Y/m/d");と記述し、foo.phpで保存したものを、直接127.0.0.1/foo.php
とアクセスすると動作するのですが、
var.htmlに<?php print date("Y/m/d"); ?>
を記述し127.0.0.1/var.htmlにアクセスしても表示されません。
httpd.confやphp.iniは確認したのですが、うまくいきません。
原因はどこにあるでしょうか。
0490nobodyさん
2006/03/03(金) 23:58:51ID:???0491nobodyさん
2006/03/04(土) 00:05:16ID:???それは普通の振る舞い。apache側で設定すれば実行されないわけ
じゃないけどな。ただそれをするとapacheの負担にもなると。
0492nobodyさん
2006/03/04(土) 00:20:09ID:???0493489
2006/03/04(土) 01:45:09ID:aZXPUvQzサンプルソースにタグが入っていたので、perl CGIのように呼び出していると
思っていました。ありがとうございました。
0496nobodyさん
2006/03/04(土) 03:07:45ID:???ftp_puts()でファイルアップロードしようとすると
あるサーバーAにはちゃんとアップロードされるのですが
別のサーバーBだと0バイトのファイルが作成され、falseが返ってきます
ftp_nb_put()やftp_pacv()なども試してみましたが状況は同じでした
他に何か試してみるべき事はありますか?
0497nobodyさん
2006/03/04(土) 09:27:11ID:???パーミッション、ファイルのパスが合っているか、
また念のためソースの一部を書いたほうがわかりやすいと思います。
0498nobodyさん
2006/03/04(土) 10:32:48ID:???B:WEBサーバ
A、Bはそれぞれ別のネットワークにあります。
Aのデータベースに接続し、データを取得してきたり
修正したりするPHPプログラムをBに設置し、
B上の Apache のCGI(PHP)から
データの表示やまたは修正を行えるようにしています。
Apache では SSL を使用しているのですが、
この場合、MySQL側でもSSLを使用すべきでしょうか?
Aから引っ張ってくるデータは盗み見されると困る内容ですが、
上の例の場合、どこからどこまで Apache の SSL が
機能するのかよくわからなくなってきました。
0502nobodyさん
2006/03/04(土) 14:39:20ID:???$t_string = eregi_replace("</title>(.*)","",$t_string);
htmlソースからタイトル部分だけ取り出したいのですが、
上記のように二段つかっているのを1つにまとめるにはどうすればいいでしょうか。
0503nobodyさん
2006/03/04(土) 14:40:31ID:???サーバAにはSSLなApacheは入ってないんだろ?
なら当然Webブラウザ-サーバB間のHTTPSに対してのみSSL。
0504nobodyさん
2006/03/04(土) 14:49:18ID:???0505498
2006/03/04(土) 14:53:39ID:???グローバルIPを介しますが、
PHPのmysql_connect() を使用する場合HTTPプロトコルでの
データのやりとりになるのでしょうか?
0506nobodyさん
2006/03/04(土) 14:57:35ID:???ただ、それは暗号化されていない平文。
だから、途中でsnoopされたりするのが心配だってことだな。
MySQLプロトコルを暗号化するのは聞いたことがない。
どちらにしても、鯖側にも何かモジュール入れないと無理そうだけどな。
0507498
2006/03/04(土) 15:09:05ID:???ブラウザとApacheの間はSSLで暗号化されるのでいいとして、
問題はApacheとMySQLの間ですよね。
>>506
この場合、
ttp://itpro.nikkeibp.co.jp/members/ITPro/oss/20050819/166553/
のようにMySQLでSSLを使用するのと、PHPからMySQLへ接続することは
別問題なのでしょうか?
0508nobodyさん
2006/03/04(土) 15:50:49ID:???なんか色んなところでマルチしてないか?
>別問題なのでしょうか?
いや同じ話だよ。ただPHPのmysql関数ではSSLを使う仕組みが
デフォでは無いので、拡張版のmysqli関数を使ってSSLの設定をする。
あとPHPのコンパイルでSSLも要るな。
0509496
2006/03/04(土) 17:58:12ID:???紛らわしいので以下のように表現を変えます
サーバーA → サーバー1
サーバーB → サーバー2
>>497>>500
こんな感じでやっています
//HTML部
<form method="post" action="script.php" enctype="multipart/form-data">
<input type="file" name="up"><br>
<input type="submit" value="upload">
</form>
//PHP部
$name = "./".$_FILES["up"]["name"];
if ( !($ftp = @ftp_connect($host)) ){echo "connect error";}
if ( !@ftp_login($ftp,$user_id,$user_pass) ){echo "connect error";}
ftp_pasv($ftp,false);
if( @ftp_put($ftp,$name,$_FILES["up"]["tmp_name"],FTP_BINARY) ){
echo "<br>success";
}
else {
echo "<br>error";
}
ftp_close($ftp)
サーバー1、2ともパーミッションは755で、パスはユーザーのルートディレクトリです
あと最初に書き忘れましたが、FFFTPなどを使った場合はどちらも普通に操作できます
0510nobodyさん
2006/03/04(土) 18:20:02ID:WPEf+PS6require
require_once
の使い分けはどういう時に有効ですか?
0511nobodyさん
2006/03/04(土) 18:30:25ID:???includeとrequireは、
どんな条件下でも必ず評価されるものにはrequire
ある条件下で評価されない可能性がある(if文など)場合はinclude
理由はマニュアル嫁。
■ このスレッドは過去ログ倉庫に格納されています