【PHP】下らねぇ質問はここに書き込みやがれ 23
レス数が1000を超えています。これ以上書き込みはできません。
0001909
2006/06/23(金) 01:59:03ID:lPdqGX0Zここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0002nobodyさん
2006/06/23(金) 02:15:16ID:???0003HTML_Template_Flexy
2006/06/23(金) 03:13:33ID:???http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0004nobodyさん
2006/06/23(金) 03:14:33ID:???http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
【PHP】下らねぇ質問はここに書き込みやがれpart21
http://pc8.2ch.net/test/read.cgi/php/1148389517/
【PHP】下らねぇ質問はここに書き込みやがれ 22
http://pc8.2ch.net/test/read.cgi/php/1149710968/
0005HTML_Template_IT
2006/06/23(金) 03:15:20ID:???extractは極力使わないほうがいいと思います。
例えば、
hoge.php?_SESSION[user_pw]=hogehoge
って形で送られてきたとします。これを
extract($_GET)
しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。
もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。
それを避けるために
extract($_GET, EXTR_SKIP)
ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。
extract($_GET, EXTR_PREFIX_ALL, "get")
と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0006nobodyさん
2006/06/23(金) 03:26:00ID:???「○○する関数はありますか?」の類いの質問はお断りします
0007nobodyさん
2006/06/23(金) 03:26:49ID:???1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
2. ハードウェア、OSのバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。
◆質問後の注意
・質問者は必ずIDを表示させてください。
書き込む場合はメール欄に何も記述しないでください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0008nobodyさん
2006/06/23(金) 03:28:11ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■ZFマニュアル http://framework.zend.com/manual/en/
■PECL本家(英語) http://pecl.php.net/
まだ英語しかないマニュアルも後々/manual/en/を/manual/ja/に変えてみたら日本語があるかもしれません。
0009nobodyさん
2006/06/23(金) 03:41:07ID:???PHP関連の書籍 第3版
http://pc8.2ch.net/test/read.cgi/php/1150558685/
PHP関連サイト
http://pc8.2ch.net/test/read.cgi/php/982694601/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
[PHP]フレームワークについて語るスレ3[総合]
http://pc8.2ch.net/test/read.cgi/php/1145971945/
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/
【PHP】セッションについて語ろう!【PHP】
http://pc8.2ch.net/test/read.cgi/php/1064399467/
PHP統合開発環境スレ
http://pc8.2ch.net/test/read.cgi/php/1123912762/
最強のPHPエディタはなに?
http://pc8.2ch.net/test/read.cgi/php/1133785416/
[PHP-users MLヲチ9]丸投げした覚えは全くありません
http://pc8.2ch.net/test/read.cgi/php/1143731062/
中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
【PHP】Lvうpしたいので宿題ください
http://pc8.2ch.net/test/read.cgi/php/1147830986/
親切な人が初心者にPHPの関数を使い方を教える
http://pc8.2ch.net/test/read.cgi/php/1068190843/
くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/
0010nobodyさん
2006/06/23(金) 03:42:46ID:???データベース(SQL、DBMSの話題はこちら)
http://pc8.2ch.net/db/
プログラム(CLI、アルゴリズム、インタプリタの話題はおそらくこちら)
http://pc8.2ch.net/tech/
Web制作(クライアントサイドの話題は問答無用でこちら)
http://pc8.2ch.net/hp/
0011nobodyさん
2006/06/23(金) 03:44:04ID:???1. ブラウザに何も表示されないんだけど・・・
→ error_reporting()や、php.iniのdisplay_errors、log_errorsを確認
2. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ できません
3. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
4. echo "$arr['hoge']['fuga']"; がうまくいかない
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
5. echo?print?
→ echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
6. 値渡しと参照渡し(「&」を使う)のパフォーマンス
→ この二つはパフォーマンス目的で使いわけたらダメ。よく知らずに参照渡しにすると遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
7. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()
8. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
9. 一定時間ごとに何かしたい
→ cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
0012nobodyさん
2006/06/23(金) 03:48:15ID:???→ 好きにしてください
12. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
13. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている
14. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
15. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
16. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
17. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
18. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
19. PHPからPOSTリクエストしたい
→8.を参照
0013909
2006/06/23(金) 05:15:15ID:lPdqGX0Zみなさん書き込みお疲れ様です!
0014nobodyさん
2006/06/23(金) 10:52:39ID:8iUOatGTなんでハードウェアを明記する必要があるんですか?機械語じゃあるまいし
0016nobodyさん
2006/06/23(金) 11:34:33ID:???$fp=fopen($data,"r");でファイルを開くのは何が違うのでしょうか?
0017nobodyさん
2006/06/23(金) 11:58:14ID:???巨大なファイルを読み込んだりしたら大変なことになる。
fopen()なら任意の部分だけをメモリに読み込ませたり
同じ場所を何度も読んだりなど自由な処理ができる。
0018nobodyさん
2006/06/23(金) 12:02:29ID:???率直に言うと、
flockを介して読み書きを行うスクリプトであれば、
単に file($data) で読み込むのはよくない。
例を挙げると、
表示する場合だけ file 、書き込みを行う場合は fopen(r+) から flock(2) とした場合でも、
fopen-flock 中のファイルでも、 file は問題なくファイルの内容を読み込んでくるからだ。
これは、flock中のプロセスが、ファイルを書き換えるために ftruncate(0) などを行って
ファイルの内容が0の時に 他プロセスがfileで読み込むと、
エラーもなく空のファイルを読み込んでくる。
以上から、もっともまずいスクリプトの書き方は、
$ar = file($data); で読み込んできた配列を処理して、その後
fopen(+r) flock(2) ftruncate(0) fputs するようなやり方だ。
ロックファイルを用いて処理全体のロックを行わないと、データが全部失われる可能性がある。
0021nobodyさん
2006/06/23(金) 17:04:24ID:???$iro1=round(rand(1,4));//マーク
$iro2=round(rand(1,4));
$iro3=round(rand(1,4));
$num1=round(rand(1,13));//数字
$num2=round(rand(1,13));
$num3=round(rand(1,13));
//途中 略//
$card1=$mark1.$num1;
$card2=$mark2.$num2;
$card3=$mark3.$num3;
トランプ3枚を表示させようとしています。
echo $card1."-".$card2."-".$card3;
表示し終わってから戻るボタンでページを一枚戻り
進むボタンを押すとまたトランプが変わってしまいます。
進むボタンや戻るボタンでトランプを変わらないように
簡単にやる方法はありませんでしょうか?
0022nobodyさん
2006/06/23(金) 17:08:53ID:???なにをやろうとしてるのかわからないけど、
クッキーに $mark1,$num1,$mark2 ・・・
を持たせておいて、
スクリプト実行時に、まずクッキーにデータがないかを読み込むようにすれば?
002321
2006/06/23(金) 17:20:44ID:???ページAのボタンによりページBに移動
その際に1Pを消費します。
ページBでトランプ3枚を表示するのですが
戻るボタン、進むボタンを押されると
何回でもポイント消費なしでゲームできてしまいます。
何か良い対策方法はないでしょうか?
0025nobodyさん
2006/06/23(金) 17:44:13ID:???0026nobodyさん
2006/06/23(金) 17:47:48ID:???ttp://coronado.s8.xrea.com/php/features.cookies.php
ttp://coronado.s8.xrea.com/php/features.sessions.php
002721
2006/06/23(金) 17:47:49ID:???0028nobodyさん
2006/06/23(金) 17:47:59ID:???ページAのボタンによりページBに移動
その際に1Pを消費します。
ページBでトランプ3枚を表示するのですが
戻るボタン、進むボタンを押されると
何回でもポイント消費なしでゲームできてしまいます。
何か良い対策方法はないでしょうか?
0031nobodyさん
2006/06/23(金) 19:50:23ID:???>>21の要望をまとめてくれたのかな?
まぁ、答えはもう>>22,>>24-26にあるけどね
0032前スレ996
2006/06/23(金) 20:04:48ID:???$NB1 = $_POST['NB1'];
$EA1 = $_POST['EA1'];
$EB1 = $_POST['EB1'];
$NA2 = $_POST['NA2'];
$NB2 = $_POST['NB2'];
$EA2 = $_POST['EA2'];
$EB2 = $_POST['EA2'];
$NA = $NA1 + (NA2 / 60);
$EA = $EA1 + (EA2 / 60);
$NB = $NB1 + (NB2 / 60);
$EB = $EB1 + (EB2 / 60);
$NA = 3.1415926535 * $NA / 180;
$EA = 3.1415926535 * $EA / 180;
$NB = 3.1415926535 * $NB / 180;
$EB = 3.1415926535 * $EB / 180;
$NA = $NA - ((11.55 / 60) * 3.1415926535 / 180) * sin (2 * $NA);
$NB = $NB - ((11.55 / 60) * 3.1415926535 / 180) * sin (2 * $NB);
$c = cos($NA)*cos($NB)*cos($EA-$EB)+sin($NA)*sin($NB);
$s = sqrt(1-c^2);
$t = $s/$c;
$z = atan($t);
$z = $z * 6369;
としたのですが、全てを0にすると「距離は 6669.60120357 です。」になります。
ソースの部分と何が違うのでしょうか。
0033前スレ996
2006/06/23(金) 20:10:07ID:???間違いだらけでした、解決です。
0034前スレ996
2006/06/23(金) 20:52:50ID:???echo $_POST['listA']."<BR>";
echo $_POST['listB']."<BR>";
list($NA1,$NA2,$NA3,$NA4,$EA1,$EA2,$EA3,$EA4) = split(".",$_POST['listA']);
list($NB1,$NB2,$NB3,$NB4,$EB1,$EB2,$EB3,$EB4) = split(".",$_POST['listB']);
echo $NA1;
と書いたのですが、リストにある$NA1〜$EB4までの間に変数が入りません。
出力では、
34.41.56.713.35.29.53.705
43.3.57.897.141.21.15.765
となっているのですが。
0035前スレ996
2006/06/23(金) 20:59:13ID:???0036nobodyさん
2006/06/23(金) 21:27:41ID:rAXE6ZzNクッキーでやってみたんだが、FOMAが対応していないorz
なにか案があったらおながいします。
0039nobodyさん
2006/06/23(金) 21:34:00ID:???0040nobodyさん
2006/06/23(金) 21:34:26ID:???0042nobodyさん
2006/06/23(金) 21:37:29ID:???これはPOST送信と同じくほぼ際限なく長くても問題ないと考えてもいいのでしょうか?
もし限界などがあれば教えてください。
0043nobodyさん
2006/06/23(金) 21:43:15ID:???前から気になってたけど、なんで17だけないの?
【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/
0044nobodyさん
2006/06/23(金) 21:48:43ID:???RFCで決まってたと思うが。
決まってればそれが保証限界ってところかと
(対応できてなければ改良を求める根拠)
0045nobodyさん
2006/06/23(金) 21:51:34ID:???RFC 調べろって話は当然出るとして、それ以前に、検索することも知らないのか?
http://www.google.co.jp/search?hl=ja&q=GET+URL+%E9%95%B7%E3%81%95+%E5%88%B6%E9%99%90
0046nobodyさん
2006/06/23(金) 22:05:20ID:???$_SESSION['cnt']++;
echo $_SESSION['cnt'];
同じページだと中身が表示されるのですが
次のページで
echo $_SESSION['cnt'];
を記述しても中身が表示されません。
お願いします。
004746
2006/06/23(金) 22:16:46ID:???0048nobodyさん
2006/06/23(金) 22:19:46ID:???この場合、
http://localhost/web/
この部分を取得したいのですがどうすれば良いのでしょうか?
0049nobodyさん
2006/06/23(金) 23:15:28ID:???という if 文を作りたいのですが、
教えて栗
0050nobodyさん
2006/06/23(金) 23:36:00ID:???意味がわかんない
もうちょっと具体的に説明ヨロ
>>49
テーブル一覧取得関数
mysql_list_tables
蛇足だが、そういう構造はあまりよろしくない
特殊な場合を除いて必要なテーブルは最初から全て揃っているのが望ましい
0051nobodyさん
2006/06/23(金) 23:38:51ID:???URLが固定の場合
dirname('http://localhost/web/index.php').'/'
固定じゃない場合
(!empty($_SERVER['HTTPS']) ? 'https' : 'http').'://'
.$_SERVER['HTTP_HOST'].($_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '')
.dirname($_SERVER['SCRIPT_NAME'])
0052nobodyさん
2006/06/23(金) 23:52:35ID:???echo "<form method=\"POST\" action=\"" . $_SERVER["PHP_SELF"] . "\"><TD width =\"14\">";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\">" . $hoge . "</a> ";
echo "<input type=\"hidden\" name=\"hoge\" value=\"$hoge\">";
echo "<input type=\"hidden\" name=\"hoge2\" value=\"$hoge2\">";
echo "<input type=\"hidden\" name=\"hoge3\" value=\"$hoge3\">";
echo "</TD></FORM>";
上記のようにして試してみましたが上手く行きませんでした。
どなたかよろしくお願いします。
0053nobodyさん
2006/06/24(土) 00:08:20ID:???普通に<input type="submit">使っとけ。
どうしてもリンクでやりたいなら、GETとPOSTの違いを勉強して、onclickハンドラとjavascriptでやればいい。
0055nobodyさん
2006/06/24(土) 01:16:00ID:???parse_url()
http://jp.php.net/manual/ja/function.parse-url.php
0056nobodyさん
2006/06/24(土) 01:16:29ID:???読み込んでいきたいのですが、やっぱりfile()を使わないと無理でしょうか
005956
2006/06/24(土) 01:22:14ID:???どのような手順ですればよいのでしょうか?
どうしても下からしたいのですが・・
0060nobodyさん
2006/06/24(土) 01:26:47ID:???006156
2006/06/24(土) 01:29:55ID:???0063nobodyさん
2006/06/24(土) 01:36:14ID:???<form name='hoge' action='fuga.php' method='POST'>
<a href='javascript:document.hoge.submit();'>Submit</a>
<input type='hidden' name='foo' value='bar' />
</form>
PHP以前にHTMLとJavascriptを勉強した方がいい。
006456
2006/06/24(土) 01:42:35ID:???file()を使わない方法で・・・
0068nobodyさん
2006/06/24(土) 02:02:16ID:???0070nobodyさん
2006/06/24(土) 02:12:25ID:???おとなしく、submitにしました。
検索サイトのような、ヒット数に応じて下部にリンク数字が出るやつをしようかと思ったのですが、
もう一度検索させるのは重たくなりそうなのであきらめました。
ありがとうございました。
0071nobodyさん
2006/06/24(土) 02:19:07ID:???それでもやめたほうがいい?
ちなみに行数は150000ちょっと
0072nobodyさん
2006/06/24(土) 02:29:53ID:???0073nobodyさん
2006/06/24(土) 02:32:38ID:???本 当 に す み ま せ ん
0074nobodyさん
2006/06/24(土) 02:56:00ID:???0076nobodyさん
2006/06/24(土) 03:26:03ID:aJs1PJvkどういう事例があるか教えて頂けませんか?勉強不足でございまして恐縮ですがなぜハードウェアが関係するのか理解できるレスをお願いいたします。
0077nobodyさん
2006/06/24(土) 03:48:24ID:???これでは普通に現在地を取得できるのですが
<a href="device:location?http://exsample.com/?var=1900&var2=1111">現在地を更新</a>
みたいに、変数を加えるとうまく動作してくれません。
どうすれば良いのでしょうか?
0078nobodyさん
2006/06/24(土) 04:18:08ID:???0079nobodyさん
2006/06/24(土) 05:12:55ID:???確かに聞いたこと無いな。
まぁ、もしあったとしてもスクリプト言語だからなぁ・・・俺らにはどうしようもないか?
0080nobodyさん
2006/06/24(土) 06:06:38ID:???で、34を最後にスレ自体が無くなっちまった、という代物なんだよな。
ハードウェアの話については本スレ34ですでに論議されてる。
7 名前:nobodyさん[sage] 投稿日:2006/03/21(火) 10:52:53 ID:???
>>1
乙です。
以前、
> 2. ハードウェア、OSのバージョン等を明記すること。
について議論なかったっけ?
バージョンに関しては、基本的に必要なのはPHPのバージョンだけで、内容によってはWebサーバとそのバージョン、もしくはOSやハードウェアって感じになると思うんだけど。
まあ「そんなテンプレ律儀に守る奴いねーよ」って言われればそれまでなんだけどさ。
8 名前:nobodyさん[sage] 投稿日:2006/03/21(火) 11:00:37 ID:???
> 2. ハードウェア、OSのバージョン等を明記すること。
確かにハードのバージョン書くよりは
phpやサーバのバージョンのほうが情報として意味があるよな
9 名前:nobodyさん[sage] 投稿日:2006/03/21(火) 11:10:13 ID:???
ハードウェア情報を書かれても困る
もっと大事な情報が欲しい
10 名前:nobodyさん[sage] 投稿日:2006/03/21(火) 11:21:23 ID:???
最低限PHPのバージョンだな。PHP4と5では違いが大きすぎる。
まさかPHP3使ってるやつはそういないだろうが…
0081nobodyさん
2006/06/24(土) 06:24:34ID:???<a href="device:location?url=http://exsample.com/index.html/1900/1111/">現在地を更新</a>
みたいにパラメータをURLパスに含めて、PATH_INFOで取得する、ってのはムリかな
0082nobodyさん
2006/06/24(土) 06:28:00ID:???バイナリ値を扱ったときにバイト並びがビッグエンディアンだったかリトルエンディアンだったか、
みたいなのくらいしか思いつかないなー
0083nobodyさん
2006/06/24(土) 08:08:16ID:29S7mcCw×exsample
○example
0084nobodyさん
2006/06/24(土) 08:45:30ID:???$_SERVER の PHP_SELF とか。
ttp://coronado.s8.xrea.com/php/reserved.variables.php#reserved.variables.server
あと parse_url() で加工とか。
ttp://coronado.s8.xrea.com/php/function.parse-url.php
0085nobodyさん
2006/06/24(土) 09:38:44ID:???今、ざっと書いてみただけだから動くかどうか分からないけど
考え方としてはこんな感じ。
$fp=fopen('hoge', 'r+);
$tmp=tmpfile();
flock($fp,LOCK_EX);
stream_cccopy_to_stream($fp,$tmp);
rewind($fp);
rewind($tmp);
fputs($fp,$data);
stream_cccopy_to_stream($tmp,$fp);
flock($fp,LOCK_UN);
fclose($tmp);
fclose($fp);
>>71
他に誰もそのサーバにアクセスしないんだったら別にいいんじゃない?
実用的とは言えなくなるだけ。
仕事でそんなの作ったらブン殴られるけどね
0086nobodyさん
2006/06/24(土) 12:42:35ID:???$error_flag = "on";
}
これだと$keywordに[]が含まれている場合に許可してくれない(error_flagがonになってしまう)
んですが、どこが問題でしょうか?
0087nobodyさん
2006/06/24(土) 12:51:27ID:???preg系関数使えよ。
$test = '[]';
preg_match('/^[a-zA-Z0-9\[\]\-]+$/', $test) && print 'Passed';
で通ったぞ。
008986
2006/06/24(土) 13:05:45ID:???A が真だったら B を実行という構文なんでしょうか?
初めて見ますた
あと 86 側でなぜ上手くいかないかわからないでしょうか?
0090nobodyさん
2006/06/24(土) 13:07:34ID:???違う
&&は左辺が真なら右辺も評価するが左辺が偽なら右辺を評価しない。
だから左辺が真のときだけ実行する文を右辺に書くのは良くあること。
ereg関数はPerl互換正規表現じゃない。
009186
2006/06/24(土) 13:12:45ID:???0092nobodyさん
2006/06/24(土) 13:54:39ID:WbsotHgVPHP4.2.2がインストールされているLinuxに、MySQL4.0をインストール
しようとしています。普通は、MySQLをインストールした後にPHPをイン
ストールするのですが、私の場合既にLinuxにPHPがインストールして
あったので、PHPのインストールの後にMySQLをインストールするつもり
なのです。
このように、PHPのインストールの後にMySQLをインストールする場合、
php.iniを書き換えなければならないのでしょうか?php.iniで関係あり
そうなところは、[MySQL]の
mysql.allow_persistent mysql.max_persistent mysql.max_links
mysql.default_port mysql.default_socket mysql.default_host
mysql.default_user mysql.default_password
なのですが、これらの内、どれかを書き換えなければならないので
しょうか?PHPファイルの作成の時は、mysql_connectやmysql_select_db
で、必ず引数を指定するつもりなのですが、それでも、これらのどれか
を書き換えなければならないのでしょうか?教えて下さい。宜しく
お願い致します。
0093nobodyさん
2006/06/24(土) 14:07:13ID:???俺はいつもPHP4アンインストール→PHP5インストール→MySQLインストールの順番だ。
あと、PHP4を使うなら特に設定は必要ないよ。
mysql_connectの時にソケットファイルを指定しないとならない場合もあるけど。
とりあえずまずは自分で試してみろよ
0095nobodyさん
2006/06/24(土) 14:24:09ID:???正規表現を使えばいいのは考えられるのですが、どう書いたらよいでしょうか?
マニュアルとかいろいろ見てきましたが分かりませんでした。おしえてください
0096nobodyさん
2006/06/24(土) 14:26:41ID:???0098nobodyさん
2006/06/24(土) 14:29:32ID:???0099nobodyさん
2006/06/24(土) 14:33:43ID:???それには流石にもっと高級な言語使った方がいいんじゃないかなあ。
0100nobodyさん
2006/06/24(土) 14:39:31ID:???んで色んなバージョン作って LAMP+Ajax とかで構築して販売しる
0101nobodyさん
2006/06/24(土) 14:43:08ID:???家帰っても一人で換気扇の音だけ聞こえるの。消し忘れちゃってたのか・・・
彼女が「お帰りダーリン☆」とか言ってくれるのに憧れる。
今は双葉ちゃんの猫板でヌコ画像見ることのみが俺の癒しだぜ・・・
0102nobodyさん
2006/06/24(土) 14:43:53ID:???0103nobodyさん
2006/06/24(土) 14:57:28ID:???レスありがとうございます。
でもそれって全部大文字化されてしまいます。
じゃなく、「これは,テスト」って書かれた文の中に小文字のカンマがある時に
「これは、テスト」とするためにはどういう構文を書けばよいのかが分からないのです。
0106nobodyさん
2006/06/24(土) 15:00:51ID:???str_replaceが良いんじゃないかなと思う。
0107103
2006/06/24(土) 15:03:40ID:???「これは,テスト」の部分にはアルファベットが入る可能性もあります。
「abcd,1234,efgh」と書かれる場合に
カンマの部分は大文字でも構わないのですが
文章中のアルファベットの部分は書き込みをしてくれる人の文をそのまま見る人に伝えたいので
出来れば「abcd、1234、efgh」とだけしておきたいのです。
どうかお知恵を貸してください。よろしくお願いします。
0108nobodyさん
2006/06/24(土) 15:04:37ID:???0109nobodyさん
2006/06/24(土) 15:07:52ID:???ttp://www.php.net/manual/ja/ にPHPのマニュアルがある。
「VI. 関数リファレンス」から始まる部分がこれからおまいさんがずっとお世話になる部分だ。
今したい事は文字列に対する操作なので、文字に関係しそうなものを探してみる。
「文字型 (ctype) 関数」ってのがあるので中を見てみると、どうやら今回の件にはつかえなさそうだ。
更に探していくと、「マルチバイト文字列関数(mbstring)」てのがある。
それぞれの関数の説明を見ていくと、使えそうなものもありそうだが、慌てずに残りも探してみよう。
そうすると「Strings(文字列関数)」ってのがある。
クリックしてどういう関数があるのかを見てみると、どうやら
(全てを読むにはワッフルワッフルと書き込んでください)
0110103
2006/06/24(土) 15:10:00ID:???0111nobodyさん
2006/06/24(土) 15:17:16ID:???function kanojo() {
if ($location['>>101'] == "home") {
echo "お帰りダーリン☆";
show("本日の特選ヌコ様");
} else {
stop("換気扇");
}
}
show()とstop()は自力でドゾー。
0113nobodyさん
2006/06/24(土) 15:43:39ID:???0114103
2006/06/24(土) 16:30:30ID:???$str = ereg_replace (',', '、', $str);で出来ました。
ありがとうございました。
0116103
2006/06/24(土) 17:10:51ID:???str_replace()ではならなくて、調べていたら
ereg_replace()を発見して、やってみたらできました!
それと、csvファイルに書き込みしたいのですが
改行されたものを<br>にする為にはどうしたらいいのでしょうか?
といいますか、改行コードがどんな値として渡ってくるのかが分かりません。
それさえ分かれば自分でも何とかなると思うのですが。。。
0118103
2006/06/24(土) 17:38:50ID:???それはどんな高尚なものなのでしょうか?
0120nobodyさん
2006/06/24(土) 17:42:11ID:???なあ、GETクエリの処理ってこの方法でやってる人いる?
どっかで↑を見たんだけど、上記方法で自前でやるのはメリットあったりしますかね?
parse_str() で第2引数なしだと、先に宣言されていた変数が上書きされるからとか?
0122nobodyさん
2006/06/24(土) 18:25:27ID:???んでも parse_str() で配列にしたほうが良くない?
a[]=100$a[]=101 にしないと駄目だろうけど
0123nobodyさん
2006/06/24(土) 18:58:58ID:???そうなのか!??
0124nobodyさん
2006/06/24(土) 19:09:07ID:???(略)
bin2hex()で16進数に変換してみればいいべ
0125nobodyさん
2006/06/24(土) 19:29:47ID:to5dTZDpどのようにすれば良いでしょうか。sprintfを使うのかな・・というのは
分かるのですが記述方法がいまいち分かりません。
0127nobodyさん
2006/06/24(土) 19:45:22ID:???}
これを使うときに
「あああああ
いいいいい
ううううう
」
となっていると、一番最後に空白が読み込まれるのですが
これをなくす方法はありませんか?
0128nobodyさん
2006/06/24(土) 19:50:53ID:???0129nobodyさん
2006/06/24(土) 20:41:46ID:???YBBだと見れないんだけどマジうんこ
0131nobodyさん
2006/06/24(土) 21:11:55ID:???HTMLだけ読めるということは、PHPで2chのバーボン規制みたいなことをやっているのか。
糞だな。
0132nobodyさん
2006/06/24(土) 21:47:01ID:???カスサイトだなw
0133nobodyさん
2006/06/24(土) 22:10:45ID:WbsotHgVPHP4.2.2がインストールされているLinuxに、MySQL4.0.13をインストール
しました。rpmでインストールして、何も改変していないのですが、
コマンドラインからはテーブル等を作ることが出来、MySQL自体のインスト
ールは完了しました。
しかし、PHPからMySQLには接続できないのです。
Fatal error: Call to undefined function: mysql_connect() in /var/www/html/index.php on line 4
と出てしまい、mysql_connectが使えないのです。
「ソケットファイルを指定すれば良い」と>>93様に言われましたので、「mysql.default_socket =」を指定
しようとしているのですが、これには何を入れれば宜しいのでしょうか?どなたか教えて下さい。宜しく
お願い致します。
0134nobodyさん
2006/06/24(土) 22:21:01ID:???ajaxの流行がきっかけになったかのかな
WinMEとかWin98SEも打ち切りでしょ?これでIEはVer6が前提になってしまったな
0135nobodyさん
2006/06/24(土) 22:22:45ID:???ちょっとindex.phpの4行目前後を晒してみ
嫌ならパスワードとかは***とかでもおk
ちょっとsoketファイル指定したファイル探してくるわ
0136133
2006/06/24(土) 22:23:25ID:???0137135
2006/06/24(土) 22:29:30ID:???そうすればこれからお前と同じ部分で躓いた奴がお前のレスで助かるじゃないか
0138nobodyさん
2006/06/24(土) 22:34:00ID:WbsotHgV>92です。自己解決しました。
>>92 >>133です。勝手に人になりすまさないで下さい!!
自己解決していませんよ!!それで、
/var/lib/mysql/mysql.sock
というファイルがあったのですが、0バイトでした。また、
PHPファイルは、
<?php
mysql_connect("127.0.0.1","root","******");
mysql_select_db("test1");
と書いたら、Call to undefined function: mysql_connect()
と出てしまったのです。まだ、解決していませんので、どな
たか教えて下さると嬉しいです。宜しくお願いします。
0139nobodyさん
2006/06/24(土) 22:44:41ID:???「Call to undefined function mysql_connect」でぐぐる。
このスレの過去ログの何個か前から探しても数個(Winだったかな)見つかると思う。
貴方はLinuxなので原因は一緒だが、具体的な解決方法を調べたいなら
Googleで探す方が良いだろう。あとRPMパッケージで管理してるならそれも検索ワード追加。
0140nobodyさん
2006/06/25(日) 00:00:12ID:WbsotHgVすみません。Googleや過去ログで検索した結果、
「mysql.default_socket=/var/lib/mysql/mysql.sock としたら良い」
という回答が殆どでした。それで、php.iniをこの通りにしてApacheを
再起動したのですが、やはりエラーメッセージは上記のままでした。
phpinfo();で調べてみると、Configure Commandに
--with-mysql=shared,/usr' 'という表記はありました。Environment
にPWD /var/lib/mysql という表記もあります。
環境はRHLinux9+PHP4.2.2+MySQL4.0.13 で、rpm -iv でMySQLをイン
ストールしただけです。どなたか、教えて下さると非常に助かります。
何卒、宜しくお願い申し上げます。
0141nobodyさん
2006/06/25(日) 00:07:34ID:???Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
って言うエラーが出るから、それはもしかしたらソケットファイルのエラーではないかも知れんな。
ただ単にmysql_connect関数が呼べてないだけか?
0142nobodyさん
2006/06/25(日) 00:10:24ID:???おいおい… 「undefined function」だっての。
Windows だったら .so (だっけか? 知らん)がない
Linux 系だったら -devel とかのパッケージをインストールしてない
自前で make したなら configure 時に指定してない
0143nobodyさん
2006/06/25(日) 00:21:46ID:???なりすましは気にすることないが、教えてもらう人がそんな態度してちゃ〜なんか教えたくない。自分でしらべなよ。検索のやり方から勉強したほうがいいよ。
0145nobodyさん
2006/06/25(日) 01:27:28ID:???http://www.google.co.jp/search?q=undefined-function+mysql+php+rpm&lr=lang_ja
つ[php-mysqlパッケージ]
0146nobodyさん
2006/06/25(日) 01:27:28ID:???PHP5でしかない、array_combine()をかなりの頻度で使用しているうえに、
array_combineを使用することを前提にプログラムを書いてしまったので、修正に大変苦慮しています。
PHP4.4.2の場合は、array_combineと同じような動作をさせる場合にはどうすればいいのか、助言をよろしくお願いします。
array = array_combine($header,$list)
という箇所を出来るだけ簡単で、かつまったく同じ挙動をするようにしたいと考えています。
0148nobodyさん
2006/06/25(日) 01:40:16ID:???http://jp.php.net/manual/ja/function.array-combine.php
のUser Contributed Notesみてみ
0149nobodyさん
2006/06/25(日) 01:41:57ID:??? : $num = 0;
 : $returnArray = array();
 : if(($tmp = count($arrayKey)) || $tmp != count($arrayValue)) or
 :  : return false;
 : foreach($arrayKey as $key){
 : $returnArray[$key] = $arrayValue[$num];
 : $num++;
}
 : return $returnArray;
}
0151nobodyさん
2006/06/25(日) 03:09:42ID:???後に記述したFORMの内容しか反映されません。
1.
<form> A...</form>
<form> B...</form>
Bの内容だけ反映される。Aの内容は反応しない。
2.
<form> B...</form>
<form> A...</form>
AとBの位置を入れ替えると、Aの内容だけが反映される。
どうやらスペルミスなどではないようです。
これはHTMLとはこういう仕様なのでしょうか?
これを回避するテクニックなどがあれば教えてください。
0154nobodyさん
2006/06/25(日) 03:16:32ID:???submitはそれぞれのフォームの間です。
<form>A... <submit></form>
<form>B... <submit></form>
こんな感じです。
0155nobodyさん
2006/06/25(日) 04:01:45ID:???それでA側のsubmitを押してもA側の内容が反映しないってこと?
実は古い携帯端末で操作してるとかの落ちじゃないだろうな…。
スペルミスしてるとしか思えんが。
0156nobodyさん
2006/06/25(日) 04:06:34ID:???_に変換したいのですが
if(ereg("/0\x20|0\x09|\x0A/|0\x0D|0\x00|0\x0B/",$name)){$name = preg_replace("/0\x20|0\x09|\x0A/|0\x0D|0\x00|0\x0B/", "_", $name);}
で、あってますか?
0158nobodyさん
2006/06/25(日) 04:18:01ID:???んー。Perlのマニュアル?w
こういうorやandの挙動って、Perlでは仕様で保障してた気がするけどPHPでも保障してるのかな。
実装依存でPHPのバージョンに依存する、とかいうオチはなし?
0159nobodyさん
2006/06/25(日) 04:35:39ID:???どうでしょうか?どう間違っているか教えて頂けませんでしょうか?
0161nobodyさん
2006/06/25(日) 10:05:28ID:???”>>149みたいなorの使い方”というのが理解できんが
ttp://www.php.net/manual/ja/language.operators.logical.php
論理演算の挙動を保障していないプログラミング言語なんてあるのか?
0162nobodyさん
2006/06/25(日) 10:45:59ID:???型に厳密な言語なら怒られてもおかしくないべ。
or の場合、左右のオペランドが論理型であることが要求される。
returnはよく分からんがexitやdieは返り値がvoidなのでNULL扱いとなり、
暗黙の型変換によってfalse扱いとなる。で、PHPでもたまたま動く、と。
0164nobodyさん
2006/06/25(日) 13:52:55ID:???0166nobodyさん
2006/06/25(日) 15:31:11ID:???外部からの直リンで見られてしまいます。
どうすれば見られないようになるのでしょうか?
0169nobodyさん
2006/06/25(日) 16:02:16ID:ZuxDqgv3出来ればドキュメントルート外に置くのがベスト。
それが出来ないレン鯖なら、.htaccessで見れなくする。
それすら出来ないなら>166かな。あまりオススメできないけど
0170nobodyさん
2006/06/25(日) 16:05:04ID:9OF/oNeCphpで作られたwebブラウザはありませんか?
会社のFWがきびしく、資料となるページも見られない事が多々あり
それを回避する為に探しています。現在は
readfile($url);
というスクリプトを自宅に置いたサーバから見ていますが
これだと画像やフレームが使われているサイトが見られません。
よろしくお願いいたします。
0171nobodyさん
2006/06/25(日) 16:07:07ID:???それってPHPで出来たブラウザを使うとかって問題か?
何にせよ仕事が出来ないほどならネットワーク管理者なりにちゃんと事情を説明して
普通に規制を緩くしてもらうほうが良い
0172nobodyさん
2006/06/25(日) 16:09:47ID:???スクリプト探しはスレ違い。板違い。
// 自宅サーバにプロキシ立てればいいんじゃないの? 独り言だから、レスしても答えないぞ。
0173前スレ597
2006/06/25(日) 16:16:18ID:???学校が忙しくて、phpに関われるようになったのが今日でした。
すみません。
結局、>>599さんの、sprintf() を使ってやりたいようにすることが出来ました。
>>598さんと>>610さんの方法も私は知らなかったので勉強になりました。
ご回答いただいてありがとうございました。
また、何かあったら宜しくお願い致します。
0174nobodyさん
2006/06/25(日) 16:31:26ID:???レスありがとうございます。
その通り、phpでできたブラウザの事です。
私もまだ入社したばかりで発言力も弱く
規制を緩くするには、時間がかかってしまいますので
それまでの繋ぎとして現在探しています。
>>172
レスありがとうございます。
板違いなのですね。
phpdからwebprogだと思ってました。
教えてくれてありがとうございます。
というわけなので>>170の質問は閉めさせていただきます。
0175nobodyさん
2006/06/25(日) 16:38:07ID:???0176nobodyさん
2006/06/25(日) 16:54:56ID:???0177nobodyさん
2006/06/25(日) 17:10:02ID:???_((()_
/∴ `ー'| しまっちゃう!!!
ゝ.∵ .ミ(゚)_∩∩__
(∵ <__入 | |__)
〉∴ ヽ――' )ω゚)ノ| |
(∵∴ く/⌒) / Д | |
//、__, /_ノ / ゝ |_|
⊂ノ L| [ ̄
0178nobodyさん
2006/06/25(日) 17:25:14ID:???0180nobodyさん
2006/06/25(日) 18:41:09ID:???0181nobodyさん
2006/06/25(日) 20:09:42ID:???0183nobodyさん
2006/06/25(日) 21:02:29ID:WzsSuz7Kここの、>>67のスクリプトの20行目(全体の23行目)の
$answer = (int)$answer;
の (int) の意味がわからないのですが
phpでも型を明確に宣言することが出来るのですか?
0184nobodyさん
2006/06/25(日) 21:04:02ID:???http://jp.php.net/manual/ja/language.types.type-juggling.php
0185183
2006/06/25(日) 21:18:59ID:???ありがとう。
こんなことするくらいなら、はじめから宣言したほうが楽な気がしてしまう
私は面倒くさがり屋
それよりも
<?php
$a = "abc"; // $a は文字列
$a{1} = "f"; // $a は"afc"
?>
これを知れたことが大きな収穫でした。
ありがとうございます。
0187nobodyさん
2006/06/25(日) 21:51:31ID:???(int)をつけないとおかしなことになっちゃうんだけどね。
0188nobodyさん
2006/06/25(日) 22:28:26ID:I0W6MOFz0189nobodyさん
2006/06/26(月) 10:54:28ID:eMFdAlONこのページを参考にして、
http://php.s3.to/man/ref.openssl.html
php.iniの「extension=php_openssl.dll」をコメントアウトし、
php_openssl.dll、libeay32.dll、ssleay32.dllをPHPフォルダからをWINNT\SYSTEM32にコピーしましたが
うまくいきません
どなたかお詳しい方ご教授いただけないでしょうか
【環境】
Windows2000
PHP4.3.7
OpenSSL 0.9.7e
0190189
2006/06/26(月) 10:55:17ID:eMFdAlONWarning: fsockopen(): no SSL support in this build in c:\apache\htdocs\ssl.php on line 4
Warning: fsockopen(): unable to connect to localhost:443 in c:\apache\htdocs\ssl.php on line 4
【スクリプト】
$header = "GET / HTTP/1.0\r\n";
$header .= "Host: localhost\r\n\r\n";
$fp = fsockopen("ssl://localhost", 443, $errno, $errstr, 30); // ここでワーニング
if (!$fp) {
echo "$errstr ($errno)<br/>\n";
echo $fp;
} else {
fputs($fp, $header);
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
}
0192189
2006/06/26(月) 11:44:58ID:???0193nobodyさん
2006/06/26(月) 11:49:39ID:???ってでているから、PHP が SSL 有効なオプションでビルドされていないんだろう
0194189
2006/06/26(月) 11:56:30ID:???dllロードすれば使えるもんだと思っていたんですが
自前コンパイルで作るしかないのか、、、Windowsでやるのは情報少なくて難しそうだな〜
0196189
2006/06/26(月) 12:21:04ID:???0197nobodyさん
2006/06/26(月) 13:29:16ID:???皆さんがよく使う関数やプログラム文はどんなのがありますか?
0198nobodyさん
2006/06/26(月) 13:34:46ID:???0201nobodyさん
2006/06/26(月) 14:03:51ID:???0202nobodyさん
2006/06/26(月) 14:05:36ID:???0203nobodyさん
2006/06/26(月) 14:19:34ID:???それでいける筈だけどな。
php_openssl.dllをsystem32にコピーしてるのは?だが
"コピー"だから影響ないしね。php.iniでロードしてる
他の拡張は上手くいってるんでしょ。
0205189
2006/06/26(月) 14:43:34ID:???ご返信ありがとうございます
やり方としてはあながち間違いじゃないんですね、ちょっと希望が持てました
php_openssl.dllをコピーしたのはどっか別のサイトでそんなことが書かれていたからです、、、
他の拡張はうまくいってます(例えばOracleとの接続など
>あとSSLのDLLはPHPにバンドルの方を使ってるよね。
すいません、ちょっと意味がわからないのですが、ssleay32.dll、libeay32.dllはともに
C:\php\dllsからsystem32にコピーしています
0206nobodyさん
2006/06/26(月) 14:46:01ID:???論外です
>>199
それはあたりまえのように使いますよね
printとechoはどちらのほうが良いのでしょうか
>>200
最近それを使うようになりました。
こんなに便利だとは思ってもいませんでした
>>201
はじめてみました
辞書にも載っていないのですが、どういった関数でしょうか?
>>202
まだ使ったここがありません
requireよりそちらのほうが使えるのでしょうか?
0207nobodyさん
2006/06/26(月) 14:48:19ID:???ト、____.ィ1 `ヽ、 ここはよく釣れる釣堀ですね
,:'´ l. ‐- -‐ ,j____,,.-‐;'フ、
i' 〈`ニ''ニ'フ_ノ ,r''´ 'i
| ン--t" 〈 |
. !、 `) ノ〉 _,,.ィ'''7 ,、 ヘ y'
ヽ、 ~'"く/\」 L/ \_〉,.ィ″
``''‐-:..,,_____,,::‐''"
0208nobodyさん
2006/06/26(月) 14:52:17ID:???>php_openssl.dllをコピー
コピー先をextension_dirに指定してるなら、それでも構わない。
>C:\php\dllsからsystem32にコピーしています
PHPバンドルのものを使ってるようなのでOK。
上手くいかないようならPHPのバージョンを替えてみるのも手。
別にPHPのバージョンで違いがあるわけではないんだが、
公式で提供されてるWindows用バイナリーは、提供されてるものによって
ビルド毎の差異が結構あったりするので。
0209189
2006/06/26(月) 14:57:27ID:???なるほど〜、そうですよね
PHP5ならsslもデフォルトで動くということがどっかに書いてありましたので、動くかどうか試してみます
どうもありがとうございました
0210nobodyさん
2006/06/26(月) 16:05:39ID:tUdeZDum<?php
$mysql_server = "mysql5.db.sakura.ne.jp";
$mysql_username = "example_user";
$mysql_passwd = "example_user_password";
$link = mysql_connect($mysql_server, $mysql_username, $mysql_passwd);
if (!$link) {
die(mysql_error());
}
$sql = mysql_query("CREATE DATABASE my_db");
if ($sql) {
echo "テーブルを作成したお";
} else {
die(mysql_error());
}
mysql_close($link);
?>
このようなスクリプトを作ってみたのですが
「Access denied for user: ?example_user@%? to database ?my_db?」というエラーが返ってきます。
コマンド・ライン端末から
mysql> CREATE DATABASE my_db;
でも同じエラーが返ります。
何が原因なのでしょうか? DBは「さくらインターネット」のを借りています。
0212nobodyさん
2006/06/26(月) 16:17:56ID:???動的にテーブル作成するWEBアプリは設計的にどうかと。
ssh分からないからってならphpMyAdminだしな
0213nobodyさん
2006/06/26(月) 16:20:51ID:???PHPを扱うにあたってどういうのを作成できれば良いのですか
0217210
2006/06/26(月) 16:25:59ID:tUdeZDumまあ普通に和訳すればそうんですが、こうなる理由がわかりません。
0219nobodyさん
2006/06/26(月) 16:27:49ID:???来年専門学校卒業(20歳)で、現在はWebデザインの専門学校に通っています。
作品は、簡単な掲示板やチャットなどです。特に大きいものは作れませんけど・・・。
PHPはとても好きなので勉強をする気はあります!
0220210
2006/06/26(月) 16:31:12ID:tUdeZDum./~ヽ /~~ヽ
.| ‖_∧ゝノ "CREATE TABLE"か…
./ ノ´Д`)/
( ノ ソ
.ヽ ヽ
\ \
\ \
_ / _ \_
(⌒Y / \ \
 ̄\,_/ \,_ノ ̄
0222nobodyさん
2006/06/26(月) 16:37:02ID:???ただ、「PHP関連の会社」
といっても、PHPだけをやっていればいいって訳じゃないだろうから、
そこんとこだけは注意。
0223nobodyさん
2006/06/26(月) 16:37:08ID:???デザインは特に自身はないですけどね^^;
就活って自分から行動しなきゃダメなのに、
どうしてもその一歩がなかなか踏み出せないのですよorz
0224nobodyさん
2006/06/26(月) 16:38:05ID:???PHPはサーバー側の技術だからそれだけじゃあまり使えないでしょ。
CSS,JavaScript望ましくはsql辺りができれば
会社の方も放ってはおかんでしょ。
ついでに言えば、客先に出向いて要件定義が出来て、
デザインも出来れば、鬼に金棒かな。
0225nobodyさん
2006/06/26(月) 16:40:27ID:???昔の漏れみたいだな。
漏れの頃はPerlを勉強して、一般的な掲示板を作れるようになって、
それでweb製作会社に入ったよ。
その後、PHP、VB、C++など覚えていった。
自作のスクリプトのURLを前もってメールで送るとか、がんばろう。
0226nobodyさん
2006/06/26(月) 16:51:20ID:???PHPを使いこなす力があれば、CSS, JSやSQLなどすぐだろう。
プログラマはデザイン力に劣る傾向があるので、
デザイン力があれば強い。webプログラミングは、HTMLに表示させる部分とは切り離せないからだ。
客先との折衝もできれば、将来はかなり有望といえるだろうな。
0227nobodyさん
2006/06/26(月) 16:53:01ID:???0229nobodyさん
2006/06/26(月) 17:06:41ID:???たぶんさくらの共有はDBを使うぜって設定すると自分の「データベース」は出来ている。
それ以外で「データベース」を作成することは出来ないと思う。telnet使えるんだから権限を確認してみる。
マニュアル見てみれ。
http://support.sakura.ad.jp/support/manual/rs/install_2.shtml
0230nobodyさん
2006/06/26(月) 19:14:16ID:yNRsQBsSユーザが所属するグループのIDとユーザのパスワードで承認を
行おうとしているのですが、パスワードが1件目のユーザでNGと
なった時点で認証失敗で終了してしまいます。
Authを使用して同じIDの全パスワードをチェックする方法は
ありませんでしょうか。
#今考えている方法は、「自力でチェックしてAuth_Anonymousを
#使用する。」か「Auth::loginをオーバーライドしてチェック」
#なのですが、可能であればAuthで提供されている機能のみで
#解決したいです。。。
0231nobodyさん
2006/06/26(月) 21:57:47ID:???面倒だよねー
phpは純粋に楽しみながらできる
0233nobodyさん
2006/06/26(月) 22:41:50ID:???PHPやっていてセッションを使ったことがなかったので・・・
0234233
2006/06/26(月) 22:57:59ID:???とりあえずセッションの勉強をしてみます。
そしてそれがショッピングカートに必要か検討してみます。
なんでもかんでも聞くのは失礼な質問して申し訳ありません。
0236233
2006/06/26(月) 23:09:32ID:???0237nobodyさん
2006/06/26(月) 23:51:53ID:???GoogleでPHP プロファイラで検索しても出てこないようです。
よろしくお願いします。
0238nobodyさん
2006/06/26(月) 23:56:38ID:???0239nobodyさん
2006/06/26(月) 23:58:26ID:AIwNfLy+ID出してもう一度質問させていただきます。
perlでのDprof, SmallProfみたいなプロファイラは、ありますか?
GoogleでPHP プロファイラで検索しても出てこないようです。
よろしくお願いします。
0240nobodyさん
2006/06/26(月) 23:59:55ID:???それに対して、初心者に来て欲しくないスレをsage進行にする。
0241nobodyさん
2006/06/27(火) 00:01:59ID:???さんくす。
何年も2chにいて知らなかった orz...
ageるとたたかれるものかと思っていた.
スパムなどの書き込みが多いからって聞いたけど、ウソだったのかー うわーん
0242nobodyさん
2006/06/27(火) 00:16:45ID:???引数として 「俺」
実行すると返り値として「彼女」
頼む!お前らなら出来るはずだ!!
0243nobodyさん
2006/06/27(火) 00:22:30ID:???function Morocco($man)
0244nobodyさん
2006/06/27(火) 00:24:57ID:???function func_242($man) {
return "彼女" or die("無理!");
}
0245nobodyさん
2006/06/27(火) 01:13:35ID:???$_SESSION['name'] = "田中";
別ページに移動して、
echo $_SESSION['name'];
としても何も表示されません。
どうやって別のページにセッションデータを移すのでしょうか?
0246nobodyさん
2006/06/27(火) 01:15:06ID:???別ページの方でもせっしょんすたーと
書かないとだめなんだってよ
0247nobodyさん
2006/06/27(火) 01:18:50ID:???0249nobodyさん
2006/06/27(火) 01:22:12ID:???0251nobodyさん
2006/06/27(火) 09:44:49ID:???function GetRateStedy($man){
if (rand(255) == 77){
return '彼女';
} else {
return '一生童貞';
}
}
0253nobodyさん
2006/06/27(火) 10:15:53ID:???function GetRateStedy($man){
if ($man != ">>242"){
return '彼女';
} else {
return '一生童貞';
}
}
0254nobodyさん
2006/06/27(火) 11:56:15ID:???フォームからあるメールアドレスと名前・住所などが送信されたときに、
そのメアド(主キーです)がDBに存在しなければINSERT、
既に存在しているならUPDATEというSQLを投げたいと思います。
これを実現するにはあらかじめフォームから来たメアドをWHERE句に入れてまずSELECTしてみて、
結果がエラーとなるかどうかを調べておき、
その結果をもとにINSERTにするかUPDATEにするかを条件分岐させる方法しかないでしょうか?
0255nobodyさん
2006/06/27(火) 12:41:47ID:???ない
adodb なんかは、それを自動的にやってくれるメソッドを用意しているが
内部的には同じようなことをやっている
0256nobodyさん
2006/06/27(火) 12:47:29ID:???REPLACE構文を調べてみれ。
http://dev.mysql.com/doc/refman/4.1/ja/replace.html
SELECTしてからINSERT OR UPDATEとは動きが違うので注意
0257nobodyさん
2006/06/27(火) 13:12:43ID:???0258nobodyさん
2006/06/27(火) 13:41:32ID:KxN4Ul2MLONG BINARY(OLE Object)のデータの出力方法が分かりません。
ASPのGetChunkみたいなので、少しずつ取ってくるようなイメージはあるんですが、
SQLServer+PHPだと、どんなメソッドを使えばいいんでしょうか?
0261nobodyさん
2006/06/27(火) 15:09:04ID:???DROP DATABASEも忘れずに
0262nobodyさん
2006/06/27(火) 15:10:42ID:???MySQLのアンインストールも忘れずに。
0263nobodyさん
2006/06/27(火) 15:19:44ID:???OSのアンインストールも忘れずに
0264nobodyさん
2006/06/27(火) 15:21:23ID:???レッツPHPの掲示板のログを、flockの処理のあやまりを突いて壊してきましたよ
0265nobodyさん
2006/06/27(火) 15:33:57ID:7osXzbuk厨
0266nobodyさん
2006/06/27(火) 16:45:39ID:???0267nobodyさん
2006/06/27(火) 16:50:10ID:???0268nobodyさん
2006/06/27(火) 16:54:30ID:EpsxO8/5色々なBLOGの本を読みますと、XML-RPC関数を使えとありますが、私の使用しているサーバーでは
PEARを使えない為、fsockopen関数で作ってみました
例えばping.myblog.jpに送信する場合は、
$fp = @fsockopen("ping.myblog.jp",80, $errno, $errstr, 30);
fputs ($fp, "POST / HTTP/1.1\r\n");
fputs ($fp, "Host: 送信元サーバーのドメイン\r\n");
fputs ($fp, "User-Agent: PHP/".phpversion()."\r\n");
fputs ($fp, "Content-Length: PING用XMLの文字バイト数\r\n");
fputs ($fp, "Content-Type: text/xml\r\n");
fputs ($fp, "\r\n");
fputs ($fp, PING用XML本文);
fputs ($fp, "\r\n");
これで送信した結果、HTTP/1.1 200 OKが帰ってきまして、特にエラーメッセージは出ないのですが、
反映されません。
ヘッダー自体がおかしいのでしょうか?
何かご指摘ありましたら、ご教授頂けると幸いです。
0271nobodyさん
2006/06/27(火) 17:15:20ID:EpsxO8/5反応有難うございます。
HTTP/1.1 200 OK Date: Tue, 27 Jun 2006 08:11:57 GMT Server: Apache Connection: close Content-Type: text/xml; charset=EUC-JP flerror 0 message Thanks for the ping.
こういったレスポンスが返って参りました。
しかし、何分経過しても更新記事リストに表示される気配はありませんでした。
0273nobodyさん
2006/06/27(火) 17:23:13ID:???fputs ($fp, "\r\n");
fputs ($fp, "\r\n");
じゃだめなのか?
0274nobodyさん
2006/06/27(火) 17:46:40ID:EpsxO8/5すみません、勘違いしてしまいました。
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>ブログタイトル</value>
</param>
<param>
<value>ブログのURL</value>
</param>
</params>
</methodCall>
このような形になります。
>>273
有難うございます。
そちらも今、試してみましたが、やはり反映されませんでした。
0275nobodyさん
2006/06/27(火) 17:59:55ID:t5dObYiZこれはエラー時にしか使ってはならないものですか?
エラーではない通常処理にこれを使いたく思うのですが...
error_log()関数
http://php.s3.to/man/function.error-log.html
0277nobodyさん
2006/06/27(火) 19:39:35ID:???error_log をラッパする関数を用意して使ってるよ。
ttp://pear.php.net/package/Log
なんてのもあるし。
0278nobodyさん
2006/06/27(火) 20:32:57ID:???PHP5.0.14
MySQL5.0.22
http://allabout.co.jp/computer/database/closeup/CU20060414A/index.htm
上記のサイトを見て
$dbHandle = mysql_connect("localhost","root","root")
or die("can not connect db\n");
を実行したところ、タイトルのようなエラーが出ました。
php.iniでextension=php_mysql.dllも書かれていて、
php_mysql.dllもphp/extに入っています。
phpinfo()で見ると、MySQLらしき部分がありません。
どうすれば実行できるのでしょうか?
0279nobodyさん
2006/06/27(火) 20:35:21ID:???PEARコマンド使えなくても、手動で設置すれば
PEARのライブラリは動作するぞ。
利用するライブラリがPECLに依存してたら難しいが。
0281nobodyさん
2006/06/27(火) 20:53:17ID:???リンクを示すなら、こっちだろ
http://allabout.co.jp/internet/database/closeup/CU20050320A/index.htm
修正したphp.iniが本当にPHPの設定に反映されるものなのか確認
例えば手順にある「magic_quotes_gpc = Off」をOnにしてみて
phpinfoで変わっているか。あと手順「6. DLLのコピー」の抜けはない?
0282nobodyさん
2006/06/27(火) 21:17:03ID:???WindowsXP Proです
>>281
magic_quotes_gpc = Offに変えて、ApacheをRestartしても変化なしです。
一度Stopさせたほうがよいのでしょうか
0284nobodyさん
2006/06/27(火) 21:20:28ID:???手順6の作業が抜けていたので、system32にコピーして
Apacheを再起動させましたが、まったく変化がありません
0287278
2006/06/27(火) 21:28:33ID:???http://www.uploda.org/uporg428225.txt
0288nobodyさん
2006/06/27(火) 21:30:40ID:???それでちゃんと正しいところを指してるとは思うけど
(ロード出来なかったらエラー出てる筈だから)
念のためダブルクォートで括ったドライブ名から書いたフルパスにしてみ。
0290278
2006/06/27(火) 21:38:48ID:???作成したDBを直で見たいときは、どのソフトを使えばよいのでしょうか
MySQLはAccessでは無理なんでしたよね
0291nobodyさん
2006/06/27(火) 21:45:37ID:792aro1Jあるとすればそれはどんなことでしょうか。
0293nobodyさん
2006/06/27(火) 21:49:43ID:792aro1Jありがとんこつラーメン(・∀・)
0294nobodyさん
2006/06/27(火) 21:49:57ID:???orz
0295nobodyさん
2006/06/27(火) 21:51:33ID:???0296nobodyさん
2006/06/27(火) 21:53:20ID:???これはシェアなのでしょうか。
0297nobodyさん
2006/06/27(火) 21:57:44ID:???if (is_under12($man)) die('早すぎます><');
if (has_wife($man)) die('離婚すればいいよ^^');
if (has_H($man)) die('貴様は二次元で十分');
if (is_impo($man)) die('人生\(^o^)/オワタ');
return get_woman($man);
}
function get_woman($man) {
$woman; $rnd = mt_rand(0, 10);
switch ($rnd) {
case 2 :
$woman = "エルメスたん";
break;
case 3 :
$woman = "細木数子";
break;
case 5 :
$woman = "HG";
break;
case 6 :
$woman = "インリン";
break;
case 8 :
$woman = "泉ピン子";
break;
case 9 :
trigger_error('彼氏のモトカノのモトカレ');
break;
default :
$woman = null;
}
}
0298nobodyさん
2006/06/27(火) 22:07:53ID:???いや、昔は日本語対応なんてしてなかったよ。
294のは日本語対応されたので、私家版の配布を止めます宣言
つか古い話だよなw
0300nobodyさん
2006/06/27(火) 22:20:28ID:???俺に振るのかw
config.default.phpをベースに変更して、自分用のconfig.inc.phpを作る。
最近ので実験版とかじゃないやつは、installユーティリティが入ってて
それで自分用のconfig.inc.phpを作ることも出来る。
バージョンで差異があるので、自分の入手したもののドキュメントをあたれ。
0301nobodyさん
2006/06/27(火) 23:09:21ID:???いえいえ、詳しそうなので^^;
使ってみたのですが、まったく使い方がわかりませんね(笑
とりあえず$cfg['DefaultLang'] = 'ja';にしたのですが、日本語にならないですしorz
0302nobodyさん
2006/06/27(火) 23:09:50ID:???サブドメインの場合はsession.cookie_domainでできるみたいですが、
example.jpとexample.comとexample.netとauau.infoで共有する方法を探しています。
宜しくお願い致します。
0303nobodyさん
2006/06/27(火) 23:10:19ID:8VAiAYdr3で別ファイルに記録しています。
アクセスログを全部見るまではしませんが、
特定のアクション(ボタン押し下げ等)をした時のIPなどを
記録したいと思いまして。エラー処理ではないのですけど。
0304nobodyさん
2006/06/28(水) 00:00:34ID:5cOrr7Idもう少し正確に言うと、include したファイル内で定義された関数の取消というか。
同じファイルを複数回 include したいのですが、そのファイルの中で関数定義があるため、二度目の include でエラーになってしまいます。
さらに悪いことに、include されるファイルは数種類あり、それぞれのファイルの中で同名の関数が定義されていることもあります。
その include されるファイルというのは画面のテンプレートになっていて、メインのスクリプトでは決まった変数にパラメータをセットしておき、
画面テンプレートを include することにより、画面出力を行うという仕組みになっています。
画面出力と言っても、それは HTMLファイルに出力するようになっています。
メインのスクリプトは大量のHTMLファイルを作成するスクリプトで、数種類の画面テンプレートを何度も include して、その結果をファイルに落とし込む処理をしています。
で、画面テンプレート内に固有の関数定義をした場合に、include が失敗するという問題に突き当たってしまったというわけです。
今は実験的に、関数定義を if(function_exists(〜)) の trueパートに置くことにより二重定義を避けていますが、別ファイルに同じ関数名があるようなケースに問題があります。
全ファイルを通して関数名をユニークにするという案もあるかと思いますが、ひとまずそれ以外の方法があればそれを知りたいです。
0305304
2006/06/28(水) 00:05:07ID:???○ 関数定義を if(!function_exists(〜)) の trueパートに置くことにより
0306nobodyさん
2006/06/28(水) 00:13:30ID:???悩むべきポイントを大幅に間違ってるような気がする。
やろうとしてることはだいたいわかったが、説明するより直接手加えた方がはやそうなんで
実物の骨組みをここに貼り付けてくれ。或いはソースをまとめて、どっかにウプしてくれ。
0307304
2006/06/28(水) 00:29:21ID:???main.php
$resource=InitResource(); // 出力ファイル名、画面テンプレート名、パラメータなどを求めるための何らかのリソース
while(($params = GetParameters($resource)) !==false) {
StdoutToFileStart($params['outfile']); // 標準出力をファイル化する処理開始(独自関数)
include $params['template']; // $param内に設定された様々な値を利用するファイル
StdoutToFileEnd(); // ファイル化終了
unset($param);
}
0308304
2006/06/28(水) 00:32:47ID:???template1.php
<html>
<table border="1">
<tr><td>ID</td><td>名前</td></tr>
<? foreach($param['data'] as $rec) { ?>
<tr><td><?=$rec['id'];?></td><td><?=hoge($rec['name']);?></td></tr>
<? } ?>
</table>
</html>
<? // 固有関数定義
function hoge($str)
{
// 固有処理
return $result;
}
?>
0309304
2006/06/28(水) 00:35:16ID:???include される画面テンプレートは tenplate1.php のような感じで、ここでは固有関数 hoge を定義しています。
実際はもうちょっと複雑な処理で、しかも画面テンプレート毎に固有で、標準化しづらい内容のものになっています。
で、画面テンプレートはどんどん増えていきます。
どんどん増える都合、関数名をユニークにするなどの処置は管理上の問題が出てきまして、できれば避けたいのです。
0311nobodyさん
2006/06/28(水) 00:57:54ID:???抽象クラス一個作って継承すれば?
インクルードの取り消しとかぜってーごちゃごちゃする気がするんだけど
ちなみに取り消しができるかどうかは俺は知らね
0312304
2006/06/28(水) 01:02:15ID:???クラスにしても二重定義の問題は出るかと思いますが、そんなことないですか?
名前無しの即値クラスみたいなものが使えたりします?
0313nobodyさん
2006/06/28(水) 01:08:49ID:???できない
>>303
関数名にとらわれ過ぎ
parse_ini_file()でもiniファイル以外を開いていいんだよ
>>304
できない
というか、プログラムの基本構造の組み立て方が間違ってる
1.機能が違うのに同名の関数がある→関数名の名付け方がおかしい
2.機能が同じで同名の関数がある→関数の割り振り方がおかしい
1なら素直にリネーム
2ならそういう関数を別ファイルにしてinclude
一番いいのはクラス化すること(PHP4以上)
0315304
2006/06/28(水) 01:19:50ID:???同じファイルを二度 include することがあるからです。
>>313
最終的にはリネームすることになると思うのですが、まずは他の方法を模索したいところです。
名前ばダブらないように管理するということを、できればしたくないからです。
スコープがファイル内だけの関数定義ができるとか、Javaの無名クラスみたいのが作れるとかがあればいいんですけどね・・・
多少トリッキーでも、何かいい方法は無いものですかね。
ちなみに関数名って、MakeTree とか MakeTable みたいなありがちな名前で、でもその実装はテンプレートによって微妙に違うという、困った状況になってます。
0316nobodyさん
2006/06/28(水) 01:20:51ID:???0318nobodyさん
2006/06/28(水) 01:47:53ID:???0319311
2006/06/28(水) 01:49:58ID:???何で継承してんのに多重定義になるの?そこはクラス名変えろよ。
さっきも言ったけどトリッキーなのはやめといた方が無難な気がする。
>>317
別ファイルに同名関数があるんだってさ
ブラジル猛攻
0320nobodyさん
2006/06/28(水) 01:57:02ID:???include_once は、二度目以降テンプレートの中身が出力されなくなるのでダメです。
・同じファイルを二度以上 include する必要があり、
・その中身は include されるたびに評価される必要がある
という条件になります。
>>319
同じファイルを二度 include する必要があるという点を考慮していただけないでしょうか。
異なるファイルを一度ずつ include するなら、ファイル間でクラス名を変えればいいというのは正解ですが。
0321317
2006/06/28(水) 01:57:06ID:???基礎というか組み立て方が分かってないのね
把握した
>>304
ファイル毎に機能を振り分けて図に書いて整理してみるといいよ。
プログラムなんて積み木みたいなもんだから、ちゃんと組み立てればそれなりのものができるけど、
全体を把握せずにガンガン積み上げていったら一気に崩壊するよ。
0322317
2006/06/28(水) 02:02:30ID:???>>320
自分もinclude_once使ってるけど、
>二度目以降テンプレートの中身が出力されなくなるのでダメです。
こんなコトになったことはないよ。
include_onceでテンプレートファイルをそのまま出力してるクチかな?
0323304
2006/06/28(水) 02:03:41ID:???>>321
関数ライブラリを作って include しようって話ではなく、画面テンプレートを include により出力しよう、というのが今回のテーマです。
画面テンプレートは、プラグインのようなイメージで勝手に追加できる、という感じにしたいのです。
そのため、テンプレートの作者間で意思疎通をしない限りは、関数名がダブるという事態が発生してしまうのです。
命名規則として、テンプレートファイル名に等しいプレフィックスを関数名につける、等のルールを設定することもできますが、
できれば余計なルールを設けないような選択肢があるのならそちらを採りたいと思った次第です。
0324304
2006/06/28(水) 02:06:35ID:???あれ、>>308 のようなファイルを include_once したとき、二度目の include_once でこの HTML の内容って出ますか?
出ないと思ってたのですが、勘違いかも。
ちょっくら実験してきます。
ちなみに、include で標準出力に出力されるべき内容を、出力バッファハンドラを設定することによりファイルへ書き込む、という処理をやってます。
0325304
2006/06/28(水) 02:10:18ID:???test.inc というファイルに
TEST1
という内容を書込み、
<?
include_once 'test1.inc';
include_once 'test1.inc';
?>
とやっら、
TEST1
と一行だけ出力されました。
残念ながら、これじゃダメなんです。
0326nobodyさん
2006/06/28(水) 02:19:47ID:???前後の話は読んでない。
そりゃinclude_onceなら一行(一回)しか実行されないよ。
両方実行したいなら普通のincludeでやってみれみれ
0327nobodyさん
2006/06/28(水) 02:19:58ID:???>>322が
> include_onceでテンプレートファイルをそのまま出力してるクチかな?
って書いてるじゃない。つまり、322は>>308みたいなHTMLは使ってない。
多分、関数か変数に代入したデータが書かれてて、それを実行してる。
includeする内容に直にHTMLが書かれてて何度も出力が必要な場合はonceは使わない。
>>315
> スコープがファイル内だけの関数定義ができるとか
こういうのはどう?
template1.php
<? // 固有関数定義
$funcparam = '$str';
$funcbody = '
// 固有処理
return $result;
';
$funcname = create_function($funcparam, $funcbody);
?>
<html>
<table border="1">
<tr><td>ID</td><td>名前</td></tr>
<? foreach($param['data'] as $rec) { ?>
<tr><td><?=$rec['id'];?></td><td><?=$funcname($rec['name']);?></td></tr>
<? } ?>
</table>
</html>
0329nobodyさん
2006/06/28(水) 02:22:22ID:???一体何様なんだ、こいつはww
0330nobodyさん
2006/06/28(水) 02:25:39ID:???テンプレートファイルに名前ついてるだろ?それが固有の識別子になってるのに、
なんでclass化するなりして名前空間を指定しないでglobalに放り込んでるんだ????
template1.php → class template1 で全部解決するやん
0331317
2006/06/28(水) 02:27:20ID:???フォローありがと
>>325
それ、テンプレートとPHPが1つのファイルに混ざって書いてあるのね。
>>308の方は見て無かったよ。ゴメン
HTML部分とPHPの関数部分を切り離して、HTMLはincludeで何度も出力、
PHP関数部分はsubroutine.phpとかにでも移してinclude_onceで読み込むのがいいと思うよ。
0332nobodyさん
2006/06/28(水) 02:27:39ID:???0333nobodyさん
2006/06/28(水) 02:27:59ID:???よし、俺様がまともな解決法を教えてやるよ!
これでも使っとけ!
拡張組み込む必要はあるが、お前のやりたいことがそのまま叶うからな!
http://www.php.net/manual/ja/function.runkit-function-redefine.php
じゃ、もう二度と来るなよ!
0334nobodyさん
2006/06/28(水) 02:30:33ID:???もうちょい言うなら、それに加えてテンプレートと中で使う固有処理はファイルを分けて、
template1.php
<?php
require_once("template1func.php");
?>
<html>
:
</html>
template1func.php
<?php
function template1() {
固有処理
}
?>
として、template1.phpはrequire()で読み込む、って感じで
require()とrequire_once()をちゃんと使い分けるべきなんだよね。
0335nobodyさん
2006/06/28(水) 02:36:14ID:???0336nobodyさん
2006/06/28(水) 02:36:33ID:???0337304
2006/06/28(水) 02:36:54ID:???create_functin なんてものがあるんですね!
長い関数になると少々厳しそうですが、名前のダブリを心配しなくていい方法として大変有力ですね!
でもこれ、同じ引数で複数回呼び出したときって、同じ内容の別名の関数がどんどんできていくのでしょうか?
リファレンスをちょっと見た範囲では、特に寿命について書いてあるわけでもなく、また関数を削除するアクションについても
書いてないので、スクリプトの実行が終了するまでメモリに留まるんでしょうね。
戻り値が「関数オブジェクト」みたいなものなら良かったんですけどね・・・
さらに >>333
runkit_function_redefine なんてのがあるのですか。
というか、runkit_function_remove なんてのがあるんですね!
これが正解な気がしますね!
ただ、runkit の使い方について不勉強なもので、ターゲットの環境で使えるかどうか不明なのがナニです。
とりあえず実験してみます。
なんにしても、新しい材料が手に入ったので、何かいい実装方法があるか検討してみます。
ありがとうございました。
0339nobodyさん
2006/06/28(水) 02:39:17ID:???いや、いいけどね。
0340nobodyさん
2006/06/28(水) 02:39:48ID:???0341nobodyさん
2006/06/28(水) 02:43:09ID:???0342nobodyさん
2006/06/28(水) 02:44:09ID:???template.phpをtemplate.class.phpに書き換えるスクリプト一つ用意すれば何もしなくても解決できる・・・
そもそもtemplateに関数定義とか入ってる時点でtemplateじゃないと思うし、分離すりゃいい・・・
標準出力使う理由も不明・・・
なんか、ものすごく間違った覚え方したまま成長しちゃって取り返しが付かなくなってる感じ。
手軽さとか利便性とか分かりやすさを重視するため!って思いこんでるだろうけど、
あんたの考え方さえ変わればすぐに手軽で分かりやすいシステムになるよ。
自分がその作業の一番のボトルネックだって認識するところからはじめるべき。
0343304
2006/06/28(水) 02:44:19ID:27YOZKQj関数名(あるいはクラス名)がユニークになるようなルールを定めて実践しろというのも正解だとは思いますが、
今回の意図としては、どちらかといえば関数名のダブリを避けるというよりは、関数のプライベート化という方が近いので、
関数エントリの削除という手段が正解だと判断したものです。
0345nobodyさん
2006/06/28(水) 02:45:41ID:???クラスって聞いたことない?
>関数エントリの削除という手段が正解だと判断したものです。
みんなそれが間違ってるって指摘してんのに、一人固執してるから進まないんだよ
0346nobodyさん
2006/06/28(水) 02:47:59ID:???> でもこれ、同じ引数で複数回呼び出したときって、同じ内容の別名の関数がどんどんできていくのでしょうか?
まぁ、そうだね。多重生成を防止する方法はいくらでもあると思うけど。
0347nobodyさん
2006/06/28(水) 02:48:14ID:???0348nobodyさん
2006/06/28(水) 02:48:50ID:???0349nobodyさん
2006/06/28(水) 02:51:51ID:???自分で一から作ったやつじゃなくて他人が作ったのが回ってきたんだろ。
で設計思想はそのまま引き継ぐ必要があるんだよきっと。
0350nobodyさん
2006/06/28(水) 02:54:04ID:???好きなようにさせてやればいいんだよ。
正しい方法を自分で選べるやつは、あんな方法とらないし
聞く耳持たないバカには何言っても無駄。
0351nobodyさん
2006/06/28(水) 02:54:36ID:???ってことを奨励する混沌とした弱肉強食システム。
0352nobodyさん
2006/06/28(水) 02:54:36ID:???0354304
2006/06/28(水) 03:01:06ID:???その意図は >>323 にあるとおりです。
データの表現方法を自在にしたいという目的があります。
標準出力を使う理由は、PHP は標準出力にモノを出力するのに都合がよいからです。
include するだけで画面に出ますから。
で、画面と関数定義を分けなさいという意見、至極もっともなわけですが、
関数内のほとんどがコードが HTML 出力をしている(というか、一時 PHPコードを解除して HTMLそのものが書かれている)ような場合、関数だからといってファイルを分けるという選択がしづらいこともあります。
たとえばテーブル中にテーブルを作っていく、なんてコードがありまして、ぱっと見HTMLなのですが、その部分は再帰的に呼び出される関数として構成されているわけです。
その関数を別ファイルにしてしまうと、テーブルの中身のHTMLコードまでそっちのファイルに行ってしまい、画面デザインの変更があると二つのファイルをいじるハメになってしまいます。
なので、最も欲しかった方法は、無名関数や無名クラス、あるいはファイル内にスコープが限定されるなプライベートな関数やクラスだったのです。
>>345
何度も言っていますが、クラスにしても、クラスの二重定義の問題は回避できないです。
関数とかクラスとかそういう問題じゃなくて、「何かの定義」の有効範囲の問題です。
>344、351
テンプレート作る人はPHPを知ってる人が対象なので、そういう無茶は無いという前提です。
>>352
それも考えたのですが、パラメータの引継ぎ方法に難がありました。
単なる文字列とか数値やそれらの配列程度ならなんとかなるのですが、何かのオブジェクトだったりしたときにダメでした。
0355nobodyさん
2006/06/28(水) 03:03:01ID:???しつこいよ。
無茶な要求にみんなイライラしながらも、我慢して解決法や問題点の指摘をしてくれたんだ。
これ以上荒らさず、さっさと消えろ。
0356nobodyさん
2006/06/28(水) 03:03:42ID:???だから「名前空間」言うとるじゃないか。
名前空間が使えない言語は、何かしらのルールで名前の衝突問題を乗り切る。
これ基本。
0357nobodyさん
2006/06/28(水) 03:05:03ID:???救いようの無い馬鹿だな。テンプレートにファイル名はあるんだろ?
クラス名をテンプレートファイル名と同じルールでつければ終わるだろうに。
何?テンプレートにclass{}とか書きたくない?
じゃラッパー書けばいいじゃん。意味わかる?
”あれだとこれができない、あれじゃないとこれはできない”
人様に聞かないと、この程度も解決できないくせに、何考えてんだ。
0358nobodyさん
2006/06/28(水) 03:09:27ID:???>>357
たぶんね、そのクラスを定義したファイルを何回もインクルードしたいって事だと思うのよ。
最初まさかと思ってたけど、もうそうとしか思えん。
0359nobodyさん
2006/06/28(水) 03:12:39ID:???includeで出力させるんじゃなくて、テンプレート出力を変数に格納し都度echoするようにすればそんなアホなことしなくて良いのに。
って、それすら理由もなく嫌だ嫌だ言うんだからどうしようもないな。
つーわけで304はプログラマ辞めた方がいいとおもう。周りも口にしないだけで大なり小なりそう思ってるとおもうよ。
0360nobodyさん
2006/06/28(水) 03:15:15ID:???0361nobodyさん
2006/06/28(水) 03:21:19ID:???0362nobodyさん
2006/06/28(水) 03:25:55ID:???>>307-309も理解できないウンコ共は、余計なこと言わないで黙って見てなさいってw
マジメな話、PHPで304の言うようなこと(関数のローカルスコープ化)はできないよ
自分でも言ってるけど、命名規則設けてコンフリクトを避けるのが一番スマートだと思われ
関数定義のオーバーライドとか消去とかやるにしても、結局テンプレートに手を入れなくちゃいけないんだろ?
0363nobodyさん
2006/06/28(水) 03:31:30ID:???似たような案件は見たことあるからまー気持ちは分からんでもないかも。
>>357
> クラス名をテンプレートファイル名と同じルールでつければ終わるだろうに。
その話はすでに>>323で終わってるけどね。
スキンの類だとファイル名からして同じだったり不定だったりして回避策にならんとは思う。
(使う環境に応じてディレクトリ+ファイル名に命名ルールを変更、とかの話が出てくる)
ファイル名変更に合わせてファイルの中身を置換するスクリプトが必要になるな。
まー、その仕組みでincludeで生のままファイルを扱おうって時点でかなりムリのある話だと思う。
0364362
2006/06/28(水) 03:32:20ID:???関数名のコンフリクトは避けられても、二重インクルードがあるのか
それなら>>304の言うような if で function_exists 使う方法かな…
関数定義とテンプレートを分けたくないんでしょ?
0365nobodyさん
2006/06/28(水) 03:33:57ID:???いや、皆いちいちコードの内容なんて見てないって。
質問内容と、そのやり取り(応答)の内容で「こりゃ駄目だ」って思ってるだけ。
require とかそういう話題は、そもそもそういう事で悩まなくていい実装方法を
例示してに過ぎないだけだと思うけど。
ちにかく、設計の仕方がまずい。これに尽きる。
0366nobodyさん
2006/06/28(水) 03:36:49ID:???個人的にはcreate_functionが1番てっとり早いと思うけどね。
多重生成でのメモリの無駄を気にしてるみたいだけど、
同じファイルの多重includeって何回くらいまであるんだろう?
2〜3回くらいなら気にせず生成させちゃった方が話が早くね?
0367nobodyさん
2006/06/28(水) 03:41:03ID:???その後はスルーするから
>>354
>たとえばテーブル中にテーブルを作っていく、なんてコードがありまして、ぱっと見HTMLなのですが、その部分は再帰的に呼び出される関数として構成されているわけです。
>その関数を別ファイルにしてしまうと、テーブルの中身のHTMLコードまでそっちのファイルに行ってしまい、画面デザインの変更があると二つのファイルをいじるハメになってしまいます。
それも構造次第
オレは似たようなことやってるけど、ちゃんと考えてるからテンプレートは弄っても関数が書かれてるファイルは弄らなくて済むように作ってる
ちゃんとMVCも考えて作んなきゃ糞
オマエのやろうとしてるのは他人が読めないコードを量産してるだけに過ぎない
※ココで言う「読めない」とは「読みにくい」「読む気が失せる」という意味
0368362
2006/06/28(水) 03:45:24ID:???プラグ印やらスキンやらをお手軽にやろうと思ったとき、>>304のアプローチはそう悪くないと思うぞ?
PHPのテキスト中にコードを埋められるという利点をうまく生かしてると思うが
お前ならどんな設計するんだい?
応答内容の悪さは若干後付気味なくらいで、他に問題あるか?
おれも似たような案件でinclude使ったからよくわかるというか、まぁそんときは関数定義しないで回避できたけど
>>366
画面デザインとPHP(の関数)が溶け合ったコードみたいだから、create_function化するのは苦労しそうだ
ついでに、関数とHTMLが溶け合ってるコードも見たことあるけど、それはそれで読みやすいというか、むしろ分けないほうがいい感じ
HTMLのど真ん中に関数定義があって、関数が終わらないのに再びHTMLになってるようなコードなんだけど、すげー合理的だった
ちょうどそれも再帰処理で、入れ子構造の画面を展開するトコだったんだけどな
0369304
2006/06/28(水) 04:03:35ID:???結論から言って、runkit 使うとかはやめようと思いました。
>>352 でローカルスコープ関数定義はできないこともわかりましたので、その方面でも踏ん切りがつきました。
create_function も、やはりHTMLが混じった長いの関数もあったため、あまり得策では無さそうです。
というわけで、命名規則の設定と function_exists でいってみようかと思います。
>>363 の言うような、ファイル中の関数を置換するというアプローチ、いい案ですね。
しかしテンプレートをパースするのに苦労しそうなので、今回はお手軽な方法に逃げてしまいます。
>>367
おっしゃること、よく理解できます。
ただその部分は、それはそれでうまい構造になってまして、HTMLの可読性もPHPの可読性もよく両立しているかに見えます。
混じりあったコードを分離して、なおかつお互いの可読性を高めるような構成はなかなか難しそうです。
そして、そういうコーディングスタイルを奪うことも、できればしたくないです。
あと、なんだかんだでダメな理由ばかりを返信することになってしまったこと、申し訳なく思っています。
でもたくさんの書込みを頂いて、みなさんには感謝してます。
ありがとう。
0370nobodyさん
2006/06/28(水) 04:06:00ID:???0371304
2006/06/28(水) 04:06:20ID:???× >>352 でローカルスコープ関数定義はできないこともわかりましたので、
○ >>362 でローカルスコープ関数定義はできないこともわかりましたので、
スマソ
0372362
2006/06/28(水) 04:27:32ID:???こんな再帰構造BBS展開のコードがあったとして、これを>>367だったらどう分ける?
<? hoge($thread); ?>
<? function hoge($data) { ?>
<TABLE BORDER=1>
<? foreach($data['thread'] as $a) { ?>
<TR><TD>
<?=Date('Y/m/d', $a['date'])?> 名前:<?=$a['name']?><BR>
タイトル:<?=$a['title']?><BR>
<?=$a['text'];?>
<P>
<? if(!empty($a['subthread'])) hoge($a['subthread']); ?>
</TD></TR>
<? } ?>
</TABLE>
<? } ?>
コードは簡単なので、説明省略
0373nobodyさん
2006/06/28(水) 05:55:27ID:???include と require って、ファイルが見つからないときに warning になるか fatal error になるかの違い以外に差異ってあるの?
0375nobodyさん
2006/06/28(水) 06:05:55ID:???いや、include でだめって話をしてるのに require を使えって回答がみたいだから。
>>365 の言いぶりにしても、require なら悩まなくてもいいという意見にも見えるし。
0376367
2006/06/28(水) 06:16:15ID:???Smartyを使う
0377nobodyさん
2006/06/28(水) 07:01:27ID:???Smartyについてはよく知らんが、
うpされてるコード読んだけど、それなら >>372 の方がシンプルで読みやすいし修正も容易そうじゃないか?
subtable.template を関数定義ファイルとしないで main.php に関数を定義してそこから include してる意図は、関数定義とHTMLを完全分離したということなのかな?
だが画面のデザインを変えるときに main.php にまで影響が及ぶ可能性があるのが嫌な感じだな。
ファイルがやたら細分化されていきそうなのも気になる。
>テンプレートは弄っても関数が書かれてるファイルは弄らなくて済む
と言っても、テンプレートファイル自体が分散するようだと、複数のファイルを弄るハメになることに変わりは無くなっちまうわな。
>>372 を function_exists を使って解決するって、関数定義が
<? if( !file_exists( "hoge" ) ) { function hoge($data) { ?>
みたいになるのかな。
試してみたら、確かに二重定義は発生しないみたいだけど、これはこれで面倒だな。
おまじないだと思えなくもないけどな。
create_function の適用は、このケースでは論外かな?
つか、直で画面に出力する場合は二重定義の心配はしなくていいんだよな?
あと、>>376 がうpしたファイルの main.php の最初の行(ついでに subthread も)は
$tempData['thread'][] = array(
だよな。つまらんツッコミだけど。
あ、おまいさんのやり方を否定してるわけではないぞ。
おれは偉そうなこと言っておきながらうまい方法を提示できんし。
0379nobodyさん
2006/06/28(水) 07:12:57ID:???ココ
>require とかそういう話題は、そもそもそういう事で悩まなくていい実装方法を
>例示してに過ぎないだけだと思うけど。
「そもそもそういう事で悩まなくてもいい」方法として例示されたのが「require」と捉えれば、
include での悩みは require には無い
ととれない?
いや俺的には include と require が一緒ということなら、もうどうでもいいんだけど。
0381nobodyさん
2006/06/28(水) 08:37:19ID:???0382nobodyさん
2006/06/28(水) 09:17:01ID:3gjeaESL1回目の記録
2回目の記録
3回目の記録
.
.
.
n回目の記録
となりますが、これを「新しいものが上」として記録することはできませんか?
記録量が増えてきた時、新しいものが下だと、
最新の記録を見る時に、延々とスクロールしなければなりません。
0384nobodyさん
2006/06/28(水) 09:49:45ID:???それもいいが、
tmpファイルを作ってまずそれに新しい1レコードを書き、
その後もとのデータファイルから stream_cccopy_to_stream、
そして元のデータファイルをユニークな名前にrenameしたあと、
tmpファイルを元のファイルの名前にrename、
その後元のファイルは消す、または次回のtmpファイルとして使う、
のほうが stream_cccopy_to_stream を1回しか行わずにすむのでスマートかも
0385nobodyさん
2006/06/28(水) 09:54:36ID:???比較がよいというTipsサイトをよくみかけるのですが
strtotimeのマニュアル見ると上限は2038年とかって記載されてますよね。
UNIXタイムスタンプの関数使いつづけてて問題ないんですかねこれって…
0386nobodyさん
2006/06/28(水) 09:57:51ID:???さらに全てのプラットフォームが負のタイムスタンプをサポートしている わけではありませんので、日付の範囲は Unix エポック以前にはならないかも知れません。
これは、例えば Windows やいくつかの Linux ディストリビューション、 いくつかの他のオペレーティングシステムでは 1970 年 1 月 1 日以前の日付では動作しない事を意味しています。
PHP 5.1.0 以降のバージョンでは、この制限はなくなっています。
0389nobodyさん
2006/06/28(水) 10:13:37ID:ZX4kCjMN0391nobodyさん
2006/06/28(水) 12:44:40ID:ZX0Dr8Cc有難うございました。
使いたいPEARは単体でも設置できました。
しかし、やはりPING送信が反映されませんでした。
ttp://php.atseason.com/?eid=209199
こちらのサイトを参照に送信してみました。
0392nobodyさん
2006/06/28(水) 14:23:29ID:???0394nobodyさん
2006/06/28(水) 15:04:16ID:???構わないけど、最近たてつづけに数冊PHP+Oracleな本が出てるから、
そこに書かれてるような程度の話なら後々のことを考えて
早めに買って参考にするのがいいと思うよ。
0396nobodyさん
2006/06/28(水) 15:21:04ID:???お言葉に甘えて一応書かせていただきます
Linux RedHat ES3を使用して
WEBサーバとDBサーバでサーバーの構築をしています
□WEB
apache 2.0.55
php 4.4.2
□DB
oracle 10g
をインストールして
WEB側からtnsping,sqlplusでDBに接続することが可能なことを確認した後
<?
$iConn = ocilogon("test", "test", "db");
echo $iConn;
?>
を実行したところ 下記のエラーが出てしまいました
Warning: ocilogon(): _oci_open_server: Error while trying to retrieve text for error ORA-12154 in /var/www/test.php on line 2
この状態でWEB側の設定なのかDB側の設定なのかどちらの設定が悪いかわかりますでしょうか?
他にも何か必要な情報がありました 提出させていただきます
よろしくお願いいたします
0397nobodyさん
2006/06/28(水) 15:23:59ID:3gjeaESL>>384
最新を上に出すのにも工夫が要るのですね。
その方法をどう考えるかが、面白いところかも。
0398nobodyさん
2006/06/28(水) 15:27:03ID:???http://otndnld.oracle.co.jp/tech/opensource/htdocs/php_troubleshooting_faq/php_troubleshooting_faq.html
を一読してみることをお勧めします。
0400nobodyさん
2006/06/28(水) 15:53:45ID:???submitボタンを押して、見た目上ページを移動したところで、ファイルの書き込み、もしくは修正処理をしています。
しかし、何度か試したところブラウザの"更新ボタン"を押すと、再度書き込み処理を行ってしまいます。
現在は同じデータがすでにあった場合には〜、などと条件付けをして排除していますが、少しばかり不安な気がします。
ブラウザの"更新ボタン"などが押された時には処理を実行しない、もしくはsubmitボタンが押された一回のみは処理を行うなどの方法はないのでしょうか?
テクニックなどがあれば教えてください。よろしくお願いします。
0401nobodyさん
2006/06/28(水) 15:58:05ID:???有り難う御座います
一読してみて 怪しいところをやってみたところ 問題が解決されました!
環境変数が足りていなく接続できていなかったようです
有り難うございました
0402nobodyさん
2006/06/28(水) 16:32:21ID:3gjeaESL厳密には、1回の記録が複数行に渡ります。
-----
1回目の記録A
1回目の記録B
1回目の記録C
2回目の記録A
2回目の記録B
2回目の記録C
...
-----
なので、ABCの上下は入れ替えてはなりません。
0404nobodyさん
2006/06/28(水) 17:35:27ID:???ヘッダでLocationを吐いてフォームデータを送信されたURLから
別のURLに飛ばしてしまうのがよろしいかと。
例えばこんな感じ。
入り口(書き込みフォーム)
↓
↓フォームデータ
↓
完了画面(HTTPヘッダにLocationで表示前に飛ばす)
↓
↓自動的に移動
↓
入り口
これならリロードされても入り口を再表示するだけになるはずです。
0405nobodyさん
2006/06/28(水) 17:37:28ID:???リロードしたら前のデータと比べて同じなら何もしないというのも
0406nobodyさん
2006/06/28(水) 18:04:53ID:???まだ試したことがないので一抹の不安はありますが、管理用ページということもあり、セッションで制御するのを試してみたいと思います。
アドバイスありがとうございました。
0407nobodyさん
2006/06/28(水) 18:36:08ID:+uIloqdX0408???
2006/06/28(水) 18:43:08ID:4DSWMgzu管理人じゃなくても個人の特定や削除ができますか?
0410???
2006/06/28(水) 18:50:20ID:4DSWMgzuどういうことですか?
0412nobodyさん
2006/06/28(水) 19:02:02ID:???世間一般での普通の対応を求めろっつうこと。
ネットだろうが、書き込みが電子データで物理的なものでなかろうが
やることの本質は同じ。しかるべき相手にしかるべき要求をする。
0414nobodyさん
2006/06/28(水) 20:20:56ID:+uIloqdXその正規表現をたのむ
0415nobodyさん
2006/06/28(水) 20:50:35ID:???http://pc8.2ch.net/test/read.cgi/tech/1131028296/
0416nobodyさん
2006/06/28(水) 21:35:26ID:???つかちょっとくらいは自分で考えれ。それでもどうしても駄目だったら
自分で作ったの持ってきたらその問題点くらいは教えちゃるから。
0417nobodyさん
2006/06/28(水) 22:01:50ID:???なめんじゃねーぞカス
0418nobodyさん
2006/06/28(水) 22:19:31ID:???0420nobodyさん
2006/06/28(水) 23:04:05ID:???優れてるとか流行ってるじゃなくて、ただ個人的にお前らが一番好きな言語って何?
俺はやっぱりPHP!
0422nobodyさん
2006/06/29(木) 00:16:28ID:wsUQiNip_check.php でチェックすると画像変換スクリプトが200でなく、403エラーを返す
という注意をされます。
動作としては、pc2m.phpでGDでPC用の画像を変換して、出力するのですが、
画像はちゃんと変換されて表示されます。
表示はちゃんとされているが、403エラーを出す理由をどなたかヒントでもいいので
教えてもらえないですか?
0425nobodyさん
2006/06/29(木) 00:38:10ID:???_check.phpがリファラーを返さない仕様で、
Apacheの設定で画像の直リンクを禁止するためにリファラーチェックしてるとか。
その質問は他のスレの方がいい気がするなぁ…
0426nobodyさん
2006/06/29(木) 01:28:02ID:N7wntj4vどなたかヨロシクお願い島津。
0428nobodyさん
2006/06/29(木) 01:31:32ID:???最近マニュアルの URL 示すばっかりだ。
http://jp.php.net/manual/ja/function.number-format.php
0429せっ☆マ ◆wwwwWwWWWw
2006/06/29(木) 01:50:36ID:???ereg("[^\-]","-",$tekito);
がtrueになります
ereg("[\-]","-",$tekito);
もtrueになります
どうしてでしょうか…
バージョンは5.1.4です
0430nobodyさん
2006/06/29(木) 01:58:22ID:hhtHsz1A何故か0が返ってきます。
例)
array_search("hoge",array(0,1,2));
本来ならばfalseが返って来て欲しいのですが…
どうすれば正しい値が返ってきますか?
バージョンはPHP5.1.1です。
0431nobodyさん
2006/06/29(木) 01:58:28ID:N7wntj4vでも、大変参考になりました。ありがとです。
0432nobodyさん
2006/06/29(木) 02:02:36ID:???> ereg("[^\-]","-",$tekito);
> がtrueになります
再現しない。
<?php var_dump(ereg("[^\-]", "-", $tekito)); ?>
の結果は
bool(false)
確認方法が間違ってるだけじゃないの?
0437nobodyさん
2006/06/29(木) 02:10:46ID:???確かにstrictにすると正しくなります。
strictにしなくてもfalseになるはずと思うのですが…。
原理が謎です。
>>435
var_dumpしているので確かです。
0438nobodyさん
2006/06/29(木) 02:13:58ID:???ならんよ。
if("hoge" == 0) は真だもの。
if("hoge" === 0) ではじめて偽になるでしょ。
strictってのはそういうことだ。
0439せっ☆マ ◆wwwwWwWWWw
2006/06/29(木) 02:16:15ID:???実際の正規表現はこれです
ereg("[^0-9a-zA-Z\.\-_@]",$mail,$tekito)
今一度確かめてみたところやっぱり動作が少しおかしいです…
ありがとうございます
>>430
文字と数字比べてるから変なんじゃね?
>>437
array_search("hoge",array("0","1","2"));
これはだめ?
012が変数ならstrval()で変換汁
0440せっ☆マ ◆wwwwWwWWWw
2006/06/29(木) 02:17:57ID:???↓
実際動作が変だった正規表現はこれです
0442nobodyさん
2006/06/29(木) 02:29:03ID:???問題をシンプルにするのは感心だが、ちゃんと再現するコードで質問しろよなー
ereg("[^\.\-_]",$mail,$tekito)
これって結局 [.-_] になって .〜_ の範囲でチェックされてるだけだと思う。
ereg("[^0-9a-zA-Z-._@]", $mail,$tekito) にしてみ。
0444437
2006/06/29(木) 02:41:30ID:hhtHsz1A>>438
"hoge"==0は何故真になるのでしょうか?
""==0なら真になって当然だと思うのですが…。
>>439
問題は0だけのようですので、
0を探して"0"にしてからサーチすることにしました。
0445nobodyさん
2006/06/29(木) 02:51:33ID:???違うよ。
"[\.\-_]" の正規表現は \ と . と \〜_ の範囲。
>>443
POSIX正規表現のマニュアル読めば分かるけど、[〜]の中にエスケープというのは存在しない。
Perl互換正規表現と混同しないように。
0446nobodyさん
2006/06/29(木) 02:52:13ID:???つーかメアドかどうか確かめる正規表現としてはいい加減すぎwww
0447せっ☆マ ◆wwwwWwWWWw
2006/06/29(木) 02:58:19ID:???mjk!!!
目からウロコです
ありがとうございました
>>446
その後別のチェックも加えてるから大丈夫。
エラーメッセージを細かくするために分けた。
0448nobodyさん
2006/06/29(木) 02:58:22ID:???数値と文字を比較するときは数値として評価して比較されるから。
"hoge"は数値変換すると数字解釈できないので0になる。
var_dump(intval("hoge"))はint(0)。
ttp://www.php.net/manual/ja/language.operators.comparison.php
> 整数値を文字列と比較する際、文字列が 数値に変換されます。
0449nobodyさん
2006/06/29(木) 03:01:57ID:???> 問題は0だけのようですので、
array_search("2hoge",array(0,1,2));
はint(2)が返る。
0450nobodyさん
2006/06/29(木) 03:05:39ID:???なるほど!ありがとうございました。
いろいろ試してみた結果、haystackもneedleもすべてstringにキャストした上で
strictにするしかないようでした。
0452nobodyさん
2006/06/29(木) 11:11:02ID:j7oCXco7表示されないレンタルサーバーがあります。
0453nobodyさん
2006/06/29(木) 11:12:24ID:???0458nobodyさん
2006/06/29(木) 14:47:43ID:???ブラウザからダウンロードできるようなスクリプトを作りたいのですが、
上手くいきません。
というのもディレクトリの容量がある程度あると
サーバー側のメモリを使用しきってサーバーダウンしてしまいます。
大容量ディレクトリのダウンロードでもメモリを占有しないような
上手い方法はないでしょうか?
0461nobodyさん
2006/06/29(木) 16:00:58ID:MDHzuRjB有難うございます。
おかげさまでPEARが無事に入りました!
なんとか、1つのブログPINGポータルに反映させることができました。
しかし、大手のPINGポータル(MyBLOGやGOOなど)は未だに反映されません…
これはPHPの問題というより、ポータル側のスパム対策などでしょうか。
こちらのスレッドからずれてしまいそうですので、検証の後、別の所で質問させて頂くかもしれません。
皆様本当に有難うございました!
0462nobodyさん
2006/06/29(木) 16:24:57ID:???shell_exec でtarか何かでアーカイブするシェルを動かす
終了後、できたファイルにへのリンクを生成して出力する
0464nobodyさん
2006/06/29(木) 18:23:57ID:???会員制のシステムで一般的なユーザ認証の方法というのはどのような仕組みですか?
例えば、
・ログイン時にIDとPASSでDBを検索し、それ以降はセッションにログイン済みフラグ的なものを与える。
・ログイン後はIDとPASSを暗号化したもの+認証情報でないユーザ番号をセッションIDにしてアクセス毎にユーザ番号を基にDB内を再検索。
とか...
あと、MovableType、XOOPS、PLONEなどが使用する認証の仕組みもわかる方いましたら、是非教えてください。
宜しくおねがいします。
0465nobodyさん
2006/06/29(木) 18:57:58ID:???XOOPSは
>・ログイン時にIDとPASSでDBを検索し、それ以降はセッションにログイン済みフラグ的なものを与える。
アクセス毎に認証チェックするというのは珍しいケースだと思うけど?
0466nobodyさん
2006/06/29(木) 19:36:08ID:???0467nobodyさん
2006/06/29(木) 20:21:44ID:???ここだとhttp://pc8.2ch.net/test/read.cgi/php/1150995543/l100とかです
0469379
2006/06/29(木) 21:49:46ID:zAm3zlYqopenのタイミングでエラーになります。
どなたか分かりましたら教えてください。お願いします。
OS:linux kernel 2.6
gcc
php4
これは成功します。
PHPからshmop_open(keyid, "c", 0666, size); でopen。
その後、Cアプリから shmget(keyid, size, IPC_CREAT|IPC_EXCL|0666); でopen。
逆の順で実行するとエラーになる。
uid, gid はともにあわせています。アパッチのuserはconfigでCアプリの
ユーザーに設定しています。
0470469
2006/06/29(木) 21:52:16ID:zAm3zlYq0471nobodyさん
2006/06/29(木) 22:16:27ID:???エラーが出てるならその内容を書いたほうがいいと思うのデス
0472469
2006/06/29(木) 22:35:58ID:???今確認できる場所にいないので後でもう一度見てみます。
あらかじめC側でメモリを割り当てておいてphpでopenしにいくと
エラーではねられるんですが、openモードは "c" "a" ともに一緒でした。
0473nobodyさん
2006/06/29(木) 23:26:56ID:???> >>422
> _check.phpがリファラーを返さない仕様で、
> Apacheの設定で画像の直リンクを禁止するためにリファラーチェックしてるとか。
apacheではそういう設定をしていないんですけどねぇ…
ちゃんと動作しているようなのですが、どんな可能性があるのかと思いまして。
ただのバグですかね。
0474nobodyさん
2006/06/29(木) 23:35:53ID:???> ただのバグですかね。
自分の思い通りに動かないのをすぐバグ扱いするのは良くない。
telnet なりで自分でリクエストを投げてみて自分の目で確認すべし。
0475nobodyさん
2006/06/29(木) 23:53:12ID:???サーバにかかる負荷って実際どれぐらい違うんでしょうか?
2000ぐらいあるファイルのフッタ部分をいちいち書き換えてられないので
includeで表示させたいんですが…。
0476nobodyさん
2006/06/29(木) 23:57:19ID:???サーバーのハードやHTMLの内容やPHPの設定にもよるんじゃないの?
重いのはHTMLを構文解析しなきゃいけなくなる部分なので
includeファイルのサイズは大して問題にならないと思うけど。
(元のHTML自体が巨大だとその分だけ重くなる)
でもせいぜい負荷2%が5%になったとかそんなもんだと思うけどねー
(既存の倍以上には重くなると思う)
0477nobodyさん
2006/06/29(木) 23:59:21ID:???情報の痕跡も探さずに可能性だけ列挙して
その可能性が該当しない=バグだろう
ってのはあまりに短絡的な考え方だろう。
0478nobodyさん
2006/06/30(金) 00:05:43ID:???474 の人ですが、自分も入れて試してみました。
ふつーに、200 になりましたが?
単に pc2m.php のパーミッションの問題のような気がしますが。
0479nobodyさん
2006/06/30(金) 00:13:05ID:???やっぱり画像の URL だ。となると、やっぱり自分でリクエスト確認だ。
情報少なすぎなので、これ以上はなんとも。
0480nobodyさん
2006/06/30(金) 00:14:58ID:8PS/D42hどんなとき777で、705で、666なのか数字も一緒に教えて下さい。
0482nobodyさん
2006/06/30(金) 00:45:17ID:???0483nobodyさん
2006/06/30(金) 01:03:54ID:???0484nobodyさん
2006/06/30(金) 01:04:50ID:???親父用語だ
0487nobodyさん
2006/06/30(金) 01:20:12ID:???容量があるならtarとか無圧縮格納可能な形式でoutputは出力したまま逐次ファイルを追加していくとか。
>>475
2kB+include1kBのPHPと3kBのhtmlをabで調べたら1.5倍程度だった。
>>476
PHPってHTMLをパースしてるの?
0488nobodyさん
2006/06/30(金) 01:28:15ID:???>487
検証までして頂いてありがとうございます。
2倍までとはいかずとも1.5倍ぐらいにはなってしまうんですね。
かといってJavaScriptで書き出してしまうとSEO的にどうしようもないですし…。
やはり少しでも負荷を減らすには静的ファイルにするしかないですね。。
楽はしたいけどサーバが重過ぎて。。。orz
0489nobodyさん
2006/06/30(金) 01:41:37ID:???それはセッションを使っているのでしょうか?
どういう仕組みなのかわからないので、どなたか教えてください。
0490nobodyさん
2006/06/30(金) 01:41:42ID:???htmlの転送ってのは本来屁みたいなもんなんだよ。
それすらきついということは他に改善の余地がありそう。
まあ楽をしたいだけならhtmlを自動で編集するスクリプト書くというのもあるけどPHPから離れてきたのでこのへんで。
0491nobodyさん
2006/06/30(金) 02:11:15ID:???0492nobodyさん
2006/06/30(金) 02:12:55ID:???include方式にした上でそれはワークディレクトリ上に置いといて、
本来のDOCMENT_ROOTに吐き出すスクリプト作って一括更新すりゃいいだけでは。
foreach(file(WORKDIR . "*.html") as $file) {
ob_start();
include(WORKDIR . $file);
$html = ob_get_contents();
ob_end_clean();
$fp = fopen(SAVEDIR . $file, "w");
fwrite($fp, $html);
fclose($fp);
}
こんだけですみそーな。
0493nobodyさん
2006/06/30(金) 02:14:32ID:???まちがい
> foreach(file(WORKDIR . "*.html") as $file) {
は
foreach(glob(WORKDIR . "*.html") as $file) {
ね
0494nobodyさん
2006/06/30(金) 02:29:37ID:???おおお…ここまでしてくださるとは…。感謝…。
2000もファイルがあるとタイムアウトが怖いですがちょっと試してみたいと思います。
<(_ _)>どもどもです
0496nobodyさん
2006/06/30(金) 02:59:32ID:???>shell_exec でtarか何かでアーカイブするシェルを動かす
>終了後、できたファイルにへのリンクを生成して出力する
これをワンクリックで処理する方法ないでしょうか?
アーカイブにワンクリック、出てきたリンクにワンクリック、
なら簡単にできそうですが、
ワンクリックで、アーカイブ、ダウンロードまで
こなしたいと思います
0497nobodyさん
2006/06/30(金) 03:03:31ID:???0498nobodyさん
2006/06/30(金) 03:27:50ID:???精度よくやるならセッション(もしくはそれに類するもの)を使うが、
別になくても出来ないこともない。
やり方はIPアドレス−誰−現在居る/居ないの関係を
どうやって結びつけるかを考えれ。
(IPアドレス−誰の関係はなくても出来る)
現在居る/居ないはHTTPの仕組み上「接続状態」は得られないので、
接続状態の場合に限ってJavascriptなどで周期的にアクセスを繰り返して
接続を通知する。最後の接続後一定時間は接続してると見なす。
などのやりかたをする。
0499nobodyさん
2006/06/30(金) 08:48:06ID:???自分一人で開発してることもあって、今までは「手続き型プログラミングで十分。
ベタ書き最高!」なんて思ってスパゲティ化もあまり気にせずにいたのですが、
最近ちょっと規模の大きいWebシステムを作っていて、スクリプト・ファイルが何十個にもなり、
また一つのスクリプトが1000行以上になってきたりしました。
そうすると、もはや自分で作ったプログラムなのに、どこでどう処理してるか収拾がつかなくなって
なんかすごく複雑&冗長で無駄な処理をやってる部分も多々あります。
まだオブジェクト指向で作ったことがないし知識もないので、
「一度システムが全部完成してからオブジェクト指向で書き直せばいいや」と思ってたんですが、
このままだとさらに混乱が悪化しそうなので、今すぐオブジェクト指向を勉強して、それで書き直したほうがいいでしょうか?
それともとりあえず完成までベタ書きで続けるべきでしょうか?
0500nobodyさん
2006/06/30(金) 09:10:31ID:Y/YT1xaCcase "aaa":
include = "aaa.php" ;
break;
case "bbb":
include = "bbb.php" ;
break;
}
のようにして読み込みファイルを変えているのですが、
これが100も200もとなってくると管理が大変ですし、
「〜の場合」というチェックを上から順番にしていくでしょうから、
それが上にあった時は良いですが、後の方に存在していたとすると、
それまでのマッチに負荷がかかるというか、
何か(精神的に)スッキリしません。
0501nobodyさん
2006/06/30(金) 09:13:21ID:???設計からやり直せ
ちゃんとした設計であれば、オブジェクト指向でも手続き型でもどっちでも大差はない
オブジェクト指向を学ぶにしても、そんなスパゲティコードは捨てて、小さいシンプルな題目から始めた方がよい
0502軟式PHP
2006/06/30(金) 09:14:02ID:???俺は可視性が高ければいい、必ずしもOOPをしなければならないとは思わないなぁ。
複雑・冗長で無駄な処理が多いということは、自分の中でルールをキチンと決めてプログラミングを
作ってないような気がする。
でも一度勉強してみたほうがいいかもね。あと、完成後にOOPに書き直すのは手間がかかりまくるのでやめたがいい。
>>500
ファイル名を配列化したら?
$fileList = array( "aaa" => "aaa.php",
"bbb" => "bbb.php");
if( isset( $fileList[$XXX] ) ){
include( $fileList[$XXX] );
}
0506nobodyさん
2006/06/30(金) 10:15:30ID:???REMOTE_ADDR,timestamp
のログファイルを作って、タイムスタンプが5分以内なら入室中、5分越えたらログから削除、
みたいにつくりたいところだな。
(5分は、10分でも15分でもお好みに)
同一IP者が複数人いても一人と扱われるが、そんなのは知らん。
0508nobodyさん
2006/06/30(金) 11:05:15ID:???0509nobodyさん
2006/06/30(金) 11:33:58ID:0OZ4Tvf7値を取得したいのですが良い方法はないでしょうか?
> class Config {
> private $conf;
> public function __construct() {
> $this->$conf = array();
> $this->conf['hoge'] = 'tarou';
> $this->conf['hoge1']['hoge1-1'] = 'hanako';
> $this->conf['hoge1']['hoge1-2'] = 'php';
> }
> public function get( ... ) { # 可変引数
> # 引数をそのまま添字に使用したいです。
> return $this->conf[ ... ];
> }
> }
>
> $cfg = new Config();
> # 'tarou'が表示されます。
> print $cfg->get( 'hoge' );
> # 'hanako'が表示されます。
> print $cfg->get( 'hoge1', 'hoge1-1' );
> # 'hanako'が表示されます。
> print $cfg->get( 'hoge1', 'hoge1-2' );
> exit();
配列で受け取ってループさせれば出来そうだと思ったのですが、
できればループは使用したくありません。。。
0510nobodyさん
2006/06/30(金) 11:46:47ID:???{
0511nobodyさん
2006/06/30(金) 12:00:31ID:???動かして確認してないけど、こんな感じで再帰使えばいい
class Config {
var $conf = array();
function get() {
return get_array_value(func_get_args(), $this->conf);
}
function get_array_value($keys, $data) {
$key = array_shift($keys);
$value = $data;
if ($key !== null)
$value = is_array($data) ? get_array_value($keys, $data[$key]) : null;
return $value;
}
};
0512nobodyさん
2006/06/30(金) 13:27:49ID:???セッションの中身を定期的に消さないと鯖に負担がかかると聞いたのですが、
自動的には消されないのでしょうか?
0514nobodyさん
2006/06/30(金) 13:46:39ID:???自動的に消すような設定をしているディレクトリに
セッション情報を保存するなら勝手に消される。
(だから自分の予期せぬ結果にならんこともないのだが)
つかセッション機能には一応ガーベージコレクトもあるんだから
それで処理できる範囲ぐらいは自分で後始末ぐらい汁
0515nobodyさん
2006/06/30(金) 15:09:11ID:4l4GYYpWanswe.txt、flaファイル、phpファイル、サーバーにアップしても
エラーメッセージすらでません…。phpファイルに問題があるんでしょうか?
それともflaファイルのほう?
<?php
$content="
Hi $nameempf\n
the following site you have to visit: http://www.webdesign-ks.de \n
$name
";
mail($empfang, "recommendation from $name", $content, "From: $absender");
$filename = "answer.txt";
$fd = fopen( $filename, "r" );
$contents = fread( $fd, filesize( $filename ) );
fclose( $fd );
mail( "$absender", "Danke f�� Ihre Weiterempfehlung", "$contents\n\n", "From:[email protected]\n" );
$signal=1;
echo "signal=$signal";
?>
0516nobodyさん
2006/06/30(金) 15:53:37ID:Y/YT1xaC>>504
>おまいは何をやっとるんだ・・・
HTMLしか知らなかった時はページの分だけ作らねばならず大変でしたが、
>>500でかなり楽になりました。
というのを、継続していた状態です。
今後、効率的な管理ができるようにしていきます。
存在しない「sss.php」が指定された時のことも考えます。
(switchの場合はdefaultで処理できたので)
0517nobodyさん
2006/06/30(金) 16:13:57ID:???if (!eregi ('[0-9a-zA-Z]', $str)) or die ('不正な要求ですわ');
if (file_exists ('./' . $str . '.php') or die ('Not Found');
include ('./' . $str . '.php');
0518nobodyさん
2006/06/30(金) 16:40:45ID:???tableで、widthを指定しているのですが.(ドット)があると改行されません。
ドットがあっても改行させることってできないのでしょうか?
スレ違いなのは十分わかってますがなにとぞよろしくお願いします。
0519nobodyさん
2006/06/30(金) 16:55:42ID:???0520nobodyさん
2006/06/30(金) 16:57:13ID:???対策は、自分で改行されない文字列長を判別し、必要な長さで改行を挿入するとかだろうね。
0521nobodyさん
2006/06/30(金) 17:04:42ID:???まあ改行されちゃうと、意味を変な解釈をされるからね。
例えばこのスレをWebブラウザ(IEなど)で閲覧すると:
http://wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.example.com/
このリンク(正確にはアンカー)文字列がウィンドウ枠を越えてると横スクロールバーが出ると思う。
0522nobodyさん
2006/06/30(金) 17:10:50ID:???たとえばこんな感じだと.aaaは改行されずbbbは改行される
<table border=1><tr>
<td width="5">.aaa .aaa .aaa</td>
<td width="5">bbb bbb bbb</td>
</tr></table>
0523nobodyさん
2006/06/30(金) 17:15:12ID:???0526nobodyさん
2006/06/30(金) 17:18:05ID:???0527nobodyさん
2006/06/30(金) 17:28:13ID:Y/YT1xaC>>517
>>500です。
ご指導により、以下のようになりました。
気分的にはかなりスッキリしましたが、
実効果として>>500よりも処理は早くなるのでしょうか。
・$PAGE_IDと同名のファイルを作成しておき、読ませる。
・$PAGE_IDが空の時はtop.php(トップページ)を読ませる。
・$PAGE_IDに相当するファイルがない時はcaution.php(警告)を読ませる。
0528nobodyさん
2006/06/30(金) 17:29:18ID:Y/YT1xaC$file_name = "files/{$PAGE_ID}.php" ;
if(isset($PAGE_ID)){
if(file_exists($file_name)){
include($file_name) ;
}
else{
include "file/caution.php" ;
}
}
else{
include "files/top.php" ;
}
問題点:
・$PAGE_IDにより選択されるファイルは、全て1つのディレクトリ(files)に入れておくことになり、整理しにくい。
・目下、$PAGE_IDとファイル名が異なっている状態なので、上記導入の際はリネームする必要がある。
・ヘッダが共通ファイルであり、$PAGE_IDにより<TITLE></TITLE>等の内容が変わるので、
結局>>500のようにswitch,caseを使わねばならない?
0529nobodyさん
2006/06/30(金) 17:41:37ID:???>$PAGE_IDにより選択されるファイルは、全て1つのディレクトリ(files)に入れておくことになり、整理しにくい。
$PAGE_IDの文字列にスラッシュがあっちゃだめなん?
つーかこれは何がしたいんだ?
0531nobodyさん
2006/06/30(金) 18:14:17ID:Y/YT1xaChttp://www.test.com/$PAGE_ID.html
でアクセスするようにしているのです。
0532nobodyさん
2006/06/30(金) 18:16:35ID:???<?php
if (isset ($_GET["id"])) {
$file_name = rawurldecode ("./files" . $page_id . ".php");
if (file_exists ($file_name)) {
include ($file_name);
} else {
include ("./files/caution.php");
} else {
include ("./files/top.php");
}
?>
1. $page_id = "hoge" → "files/hoge.php"
2. $page_id = "foo%2Fhoge" → "files/foo/hoge.php"
3. $page_id = "foo%2Fbar%2Fnull" → "files/foo/bar/null.php"
> ヘッダが共通ファイルであり、$PAGE_IDにより
> <TITLE></TITLE>等の内容が変わるので...
ヒント: ファイルをオープンし、正規表現で、
preg_match("/<title>.+<\/title>/i", $data, $matches);
echo htmlspecialchars ($matches[0]);
0533nobodyさん
2006/06/30(金) 18:27:51ID:???逆に面倒じゃないか?それ...
初心者がよく使いたがるんだけど。
「テクニックにおぼれない」
↑これ、次スレからテンプレに追加したいw
0534nobodyさん
2006/06/30(金) 18:36:24ID:Y/YT1xaC"/"(Slash)も"%2F"でURLに含めることができるようですので、
>>531から、
files/foo/hoge.phpを読ませた時のURLは
http://www.test.com/index.html?$PAGE_ID=foo%2Fhoge
となるようですね。
しかし上記URLだと長いのでmod_rewriteを使って
http://www.test.com/foo%2Fhoge.html
とします。>>533
但し"%2F"を使うには、
rawurldecodeというのを使わないとならない?
http://php.s3.to/man/function.rawurldecode.html
>正規表現で
>>500のような状態からここまでとなると、
今は良く分かりませんので、少し勉強してみます。
>>528でもかなり楽になったと思います。
(まだswitch,caseからは逃れられませんが...)
0535nobodyさん
2006/06/30(金) 18:48:34ID:???> test.php?$PAGE_ID=foo%2Fhoge
> しかし上記URLだと長いのでmod_rewriteを使って
こうする理由がわからねー
> 但し"%2F"を使うには、
> rawurldecodeというのを使わないとならない?
デコードしないとディレクトリを指定できないだろが。
「foo%2Fhoge.php」というファイル名になってもいいなら別だが。
つーかもっと基礎から勉強した方がいいんじゃないか?
0536nobodyさん
2006/06/30(金) 18:56:46ID:???0537nobodyさん
2006/06/30(金) 19:20:22ID:???$tp = '
<p>$link - <a href=$link title=$link>$link</a></p>';
$ato = array(
"1.php",
"2.php",
"3.php",
"4.php",
"5.php"
);
foreach ($ato as $link) {
eval("echo \"$tp\";");
}
?>
0538nobodyさん
2006/06/30(金) 19:21:44ID:???>>537のようにしてみましたが、もっとスマートな方法があるような
気がするんですがどうでしょうか。
0539nobodyさん
2006/06/30(金) 19:24:03ID:???0540nobodyさん
2006/06/30(金) 19:42:45ID:???ファイル名が、1〜5固定ならば、
for ($i = 1; $i <= 5
echo "<p>$i.php - <a href=$.php title=$i.php>$i.php</a></p>";
でいいとおもうんだが
0541nobodyさん
2006/06/30(金) 19:45:42ID:???今意味がわかった。
$tp = '<p>%LINK% - <a href=%LINK% title=%LINK%>%LINK%</a></p>';
echo str_replace('%LINK', $ato, $tp);
がよい。
そんなところで evalなんか使うな。
0542nobodyさん
2006/06/30(金) 19:46:28ID:???な
0543nobodyさん
2006/06/30(金) 19:48:31ID:???foreach ($ato as $link) {
echo str_replace('%LINK%', $link, $tp);
}
な
0546nobodyさん
2006/06/30(金) 19:52:32ID:???なるほど勉強になります。
>そんなところで evalなんか使うな。
自分もそこが気になってました。
0548nobodyさん
2006/06/30(金) 19:55:55ID:???0550nobodyさん
2006/06/30(金) 21:03:30ID:+rz/Zfiq0552nobodyさん
2006/06/30(金) 22:32:11ID:???http://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.server
0553nobodyさん
2006/06/30(金) 23:32:51ID:???sprintfのフォーマットの方がいいと思う
$format = '<a href="%s">%s</a>';
printf($format, $url, $text);
0554nobodyさん
2006/06/30(金) 23:59:47ID:???それはCSVじゃー!
>>545
そりゃMVPやんけー!
>>547
それNECやん!NECつったらPC-100やん?
>>554
マ板でやれ
0555nobodyさん
2006/07/01(土) 00:10:38ID:???>537-538です。うまいことできました。
ありがとう。
<?
$tp = <<<__HTML
<p>%1\$s - <a href="%1\$s" title="%2\$s">%1\$s</a></p>
__HTML;
$ato = array (
"1.php" => "1.phpへ",
"2.php" => "2.phpへ",
"3.php" => "3.phpへ",
"4.php" => "4.phpへ",
"5.php" => "5.phpへ"
);
foreach ($ato as $link => $title) {
printf ($tp, $link, $title);
}
?>
0557nobodyさん
2006/07/01(土) 01:59:51ID:???PHP Extension をインストールしたいのですが、php-config と mecab-config
がない状態です。phpize は php-devel のインストールでできました。
php-config と mecab-config はどうしたらできるのでしょうか。
よろしくお願いします。
0558nobodyさん
2006/07/01(土) 03:10:55ID:???0559nobodyさん
2006/07/01(土) 09:12:59ID:???毎回「192.168.1.xxx」が返ってきてしまいます。(全国のいろんな人がやっても同じ)
でもこれって自分(鯖)の側のネットワーク内部のIPアドレスですよね?
どうして$_SERVER['REMOTE_ADDR']でこんな戻り値になっちゃうのでしょう??
ちなみに鯖はXREAです。
0560nobodyさん
2006/07/01(土) 09:14:31ID:???0566nobodyさん
2006/07/01(土) 13:46:47ID:???サーバー(自分自信)のリモートアドレスを取得してきている。
$REMOTE_ADDR = getenv("REMOTE_ADDR");
0567nobodyさん
2006/07/01(土) 15:34:43ID:???普通はクライアント側のIPアドレスを返す筈なのに、なんで?って話だと思うが。
まぁ、xreaはそういうものなのかも試練。
0568nobodyさん
2006/07/01(土) 17:12:26ID:???嘘こくな
0570nobodyさん
2006/07/01(土) 18:20:26ID:???0571nobodyさん
2006/07/01(土) 20:29:48ID:???0572571
2006/07/01(土) 20:33:45ID:???チャットを作っているのですが、発言/リロードを押すと下のフレームもリロードさせたいのですが
どのようにすればうまく動作しますか?
上はtopFramem下はmainFrameです。
<script type="text/javascript">
<!--
function reload(){
parent.mainFrame.location.href='logpage.php';
}
-->
</script>
<input name="Submit" type="submit" id="Submit" value="発言/更新" onclick="reload()" />
PHPで、
if($_POST['Submit'] == "発言/更新"){
書き込み処理
}
このように記述しています。
テキスト欄に入力して発言をすると、ファイルにログが書き込まれフレームは更新されず、
空白の状態でボタンを押すと更新されます。
発言したうえで更新したいのですが、どのようにすれば良いのでしょうか?
0573nobodyさん
2006/07/01(土) 20:42:48ID:???普通そういう場合はformタグのtaeget属性を下側フレームにして
書き込み処理とログ表示を一括して下側のフレームで行い、
送信押されたらフォームに入力されたテキストをJavaScriptで消すってもんじゃないの?
その書き方だと発言時は書き込み処理が終わる前にリロードしてしまう気がする。
0575nobodyさん
2006/07/01(土) 20:53:10ID:???スネーク、まずはどこでもいいからその辺のフレームチャットを見てくるんだ。
あんまり変な質問をしていたら回答者が呆れて晩御飯に出かけてしまうぞ。
0577nobodyさん
2006/07/01(土) 21:09:54ID:???スネーク、問題はPHP以前のところにあるようだ。このままでは板違いになってしまうぞ。
早急にHTMLをしっかり勉強し直してPHPに関する質問に切り替えるんだ。
0578559
2006/07/01(土) 21:24:54ID:???誰かXREAでアカウント持ってる人、実験してみてもらえませんかね??
ちなみに他の鯖(XREA以外)で同じスクリプトを走らせたところ、
当然ながら問題なくリモートアドレスを取得できました。
0580nobodyさん
2006/07/01(土) 21:47:19ID:???ちったぁ検索したか?
餅は餅屋。XREA のことは XREA に聞け。
http://sb.xrea.com/showthread.php?threadid=6646
ちなみに、手元で phpinfo() を表示させてみたら REMOTE_ADDR は
グローバル IP アドレスが入ってたよ? http の場合ね。https は未確認。
0582nobodyさん
2006/07/01(土) 22:05:11ID:???は空みたい。
0583nobodyさん
2006/07/01(土) 22:07:41ID:???0584nobodyさん
2006/07/01(土) 22:33:18ID:???$_SERVER["REMOTE_ADDR"],
$_SERVER["REMOTE_HOST"],
getenv("REMOTE_ADDR"),
gethostbyaddr($_SERVER["REMOTE_ADDR"])
で
$_SERVER["REMOTE_HOST"]
以外は期待通りの動作
>>559か使ってるサーバ固有の問題
0585nobodyさん
2006/07/01(土) 23:01:00ID:???> $_SERVER["REMOTE_HOST"]
> 以外は期待通りの動作
期待通りも何も、REMOTE_HOST は必ずしもセットされるとは限らないから
別に期待通りじゃない、とは思わない。
負荷軽減のために逆引きしてないサーバは腐るほどある。
REMOTE_HOST が未定義だったら REMOTE_ADDR を resolve するのは
ネットワークプログラミングでは基本ですが?
0586nobodyさん
2006/07/01(土) 23:19:21ID:???0587nobodyさん
2006/07/01(土) 23:19:58ID:???具体的には、array('key1' => 'value1', 'key2' => 'value2') という配列を作成したいのですが、
array(array('key1' => 'value1'), array('key2' => 'value2')) という配列になってしまいます。
追加処理はこんな感じです。
for ($i = 0;$i < $count;$i++) {
$add[] = array("key{$i}" => "value{$i}");
}
よろしくお願いします。
0588nobodyさん
2006/07/01(土) 23:20:01ID:???と書かれたときに、これにそのURLのリンクを貼りたいのですが、
どのようにすれば良いのでしょうか?
0591nobodyさん
2006/07/01(土) 23:24:14ID:???0592nobodyさん
2006/07/01(土) 23:25:11ID:???/(^|[^=;])(https?:\/\/[!#\$%&'()*+,\-.\/:;=\?@_~\w]+)/
0593nobodyさん
2006/07/01(土) 23:26:16ID:???(https?:\/\/[!#\$%&'()*+,\-.\/:;=\?@_~\w]+)
0594nobodyさん
2006/07/01(土) 23:30:40ID:???"<a href=\"\\1\" target=\"_blank\">\\1</a>", $url)
0595nobodyさん
2006/07/01(土) 23:34:57ID:???if ($url == "http://example.com/"){
echo "<a href=\"http://example.com/\">http://example.com/</a>";
}
0600nobodyさん
2006/07/02(日) 00:41:34ID:oZjla2sMどうすればいいのでしょうか
0601nobodyさん
2006/07/02(日) 00:48:12ID:???知らないけど。
0602nobodyさん
2006/07/02(日) 00:53:26ID:???if ($url == "http://example.com/"){
echo '<a href='.$url.'>'.$url.'</a>';
}
0604nobodyさん
2006/07/02(日) 01:02:19ID:???どのようにすれば良いのでしょうか?
@a@⇒<img src=a.gif>
@phpkamo@⇒<img src=phpkamo.gif>
0605nobodyさん
2006/07/02(日) 01:09:46ID:???0606nobodyさん
2006/07/02(日) 01:18:43ID:oZjla2sM正規表現で改行2個は
ereg("^$", $var)
でよいでしょうか。
0607nobodyさん
2006/07/02(日) 01:22:56ID:W09rfuPj考えられるファイル(例えばCGI)の拡張子を「txt」にしたいと思います。
アップロードするファイルの種類を調べるにはどうしたら良いでしょうか?
ユーザが偽装できてしまうようではセキュリティ的にマズいですし・・・
やはりアップロードファイルの拡張子を調べるのが一番なのでしょうか?
それから、圧縮ファイルを展開する関数ってあります?
0608nobodyさん
2006/07/02(日) 01:27:10ID:???ファイルタイプ
http://jp.php.net/manual/ja/features.file-upload.php
圧縮ファイル
http://jp.php.net/manual/ja/funcref.php
の一覧からお好きなものをチョイス
0609nobodyさん
2006/07/02(日) 01:41:16ID:W09rfuPj>ファイルの MIME 型。ただし、ブラウザがこの情報を提供する場合。 例えば、"image/gif" のようになります。
>この MIME 型は PHP 側ではチェックされません。
>そのため、 この値は信用できません。
これでも大丈夫かな?
0610nobodyさん
2006/07/02(日) 01:41:40ID:???$nl = "\r\n";
ereg_replace("$nl($nl)+", $nl, $text);
preg_replace("/^$nl/m", "", $text);
^$はマッチ幅ナシね。
0611nobodyさん
2006/07/02(日) 01:53:12ID:???大丈夫なのか否かってのは何を作りたいかによるから何とも言えない。
確かに、hidden パラメータとかと同じで、改竄はありうる。
しかし、そのファイルが例えば JPEG か否かをちゃんと判断するには
プログラマがそのファイルの内容・構造をチェックして判断しなければならない。
その為には、そのファイルのフォーマットの仕様・特徴(SOI APP …など)
を知っていないと判断のプログラムが書けませんが
それが出来るなら、自分でチェックすれば良い話です。
簡易に済ませたかったら system で file を呼ぶとかも考えられますけど…
0612nobodyさん
2006/07/02(日) 01:58:42ID:oZjla2sMありがとうございます
$text = 'log.txt';
$nl = "\r\n";
for($i = 0; $i < count($line); $i++){
if( ereg_replace("$nl($nl)+", $nl, $text) ){
preg_replace("/^$nl/m", "", $text);
break;
}
}
こう作ってみたんですけど、改行抜けません
おかしい所教えてもらえませんでしょうか
0613あああ ◆rHbUqJDbds
2006/07/02(日) 02:09:51ID:???0614nobodyさん
2006/07/02(日) 02:14:51ID:???サンプル■1234■5678
の場合、最初の■以降の文字を消したいのですが、
preg_replace('/■?', '', $str);
こうしたのですがうまくいきません。
どこが間違っているのでしょうか
0615nobodyさん
2006/07/02(日) 02:17:45ID:???preg_replace("/^$nl/m", "", $text);
↓
$text = preg_replace("/^$nl/m", "", $text);
つーか、せっかくpreg使ってるのに何でeregもつ買ってるの?
pregだけでいいんでない?
$text = file_get_contents("test.txt");
$nl = "\r\n";
$text = preg_replace("/^$nl/m", "", $text);
print($text); //確認
0616614
2006/07/02(日) 02:19:55ID:J/w8BCAt方向が変わってしまって^^;
サンプル■1234■5678
これを、最初の■で区切ることはできますか?
サンプル
■1234■5678
こうわけたいのですが
0617nobodyさん
2006/07/02(日) 02:30:21ID:???俺初心者だからかなり馬鹿っぽいやり方かもしれないけど
$sample = "サンプル■1234■5678";
$line = explode("■", $sample);
foreach($line as $key => $value)
if ($key == 0) $hoge = ($value."\n");
else $hoge .= ("■".$value);
print($hoge);
こんなんはどうかな。
0618nobodyさん
2006/07/02(日) 02:30:46ID:???もし配列で持ってるなら "" な項を捨てりゃいいだけだよ
>>616
都合のいい方使って好きなように。
$text = "サンプル■1234■5678";
list($mae, $usiro) = explode("■",$text,2);
$usiro = "■".$usiro;
echo "explode: $mae, $usiro\n";
preg_match("/^(.*?)(■.*)$/", $text, $capture);
echo "preg_match: $capture[1], $capture[2]\n";
0620nobodyさん
2006/07/02(日) 04:04:38ID:???<frame src="top.php?id=<? echo $_GET['id'];?>" name="topFrame" scrolling="Yes" id="topFrame" title="topFrame" />
<frame src="logpage.php?id=<? echo $_GET['id'];?>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
この場合で各フレームのURLを見たところ、?id=がなかったのですが
これでは無理なのでしょうか?
0621620
2006/07/02(日) 04:05:08ID:???0622nobodyさん
2006/07/02(日) 04:11:06ID:???$abs = 30;
setTimeout("location.href='abc.php'",1000*<? echo $abc;?>);
0624nobodyさん
2006/07/02(日) 04:32:06ID:???PHP は HTML を出力するに過ぎない。
その出力する HTML に変数の値が埋め込まれた JavaScript が書かれれば良いだけ。
言っている意味分かる?
0626622
2006/07/02(日) 09:39:02ID:???つまり、一気にJavaScriptを書き出せば良いのでしょうか?
>>625
すみません、両方$abcでお願いします
0627622
2006/07/02(日) 09:44:38ID:???<?
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo "<!--";
echo "setTimeout(\"location.href=logpage.php?id".$id."\",1000*10)";
echo "parent.topFrame.document.form.com.value=\'\'";
echo "-->";
echo "</SCRIPT>";
?>
としてみたところ、結果は同じでした・・・
どうすれば良いのでしょうか
0628622
2006/07/02(日) 09:57:28ID:???0630nobodyさん
2006/07/02(日) 09:58:14ID:???0631nobodyさん
2006/07/02(日) 10:24:55ID:???http://question.excite.co.jp/kotaeru.php3?q=2250330
http://pc8.2ch.net/test/read.cgi/hp/1151633256/53
0632nobodyさん
2006/07/02(日) 12:02:59ID:???0633nobodyさん
2006/07/02(日) 12:12:43ID:???echo $_SESSION['var'];
これって携帯でも表示される?
0634nobodyさん
2006/07/02(日) 13:17:57ID:???0635nobodyさん
2006/07/02(日) 13:44:17ID:???print(mb_convert_kana($str,'KV'));
↑の結果が「サーバサイド技術」のままで、全角に変換されないのですが
PHPはFC5のVersion 5.1.4です。
0636nobodyさん
2006/07/02(日) 14:00:21ID:???0637nobodyさん
2006/07/02(日) 14:03:50ID:???文字コードを指定してやって。
print(mb_convert_kana($str,'KV','euc-jp'));
みたいに。
0638nobodyさん
2006/07/02(日) 14:28:22ID:???ありがとうございます。うまくいきました。
>636
そんなこと言わずにおつきあい下さいな
0639nobodyさん
2006/07/02(日) 14:34:36ID:???0640nobodyさん
2006/07/02(日) 14:42:29ID:???0641nobodyさん
2006/07/02(日) 14:44:45ID:???0642nobodyさん
2006/07/02(日) 15:11:01ID:???自作PHPがsafariの場合上手く動作しないのですが、
よい回避策ないでしょうか?
ttp://www.sodan.ecc.u-tokyo.ac.jp/2004/FAQ/faq52-20040330.shtml
0643636
2006/07/02(日) 15:19:45ID:???0645nobodyさん
2006/07/02(日) 15:36:09ID:???0646nobodyさん
2006/07/02(日) 17:31:55ID:YHlCRRocシリアライズは便利で高速そうですが一度に全ての変数をメモリに乗せてしまう事になるなど
多少のデメリットもあるようですが、みなさんはどう考えられてますか?
0647nobodyさん
2006/07/02(日) 17:51:29ID:???多いかどうかはわからないけどシリアライズはかなり便利。
俺もよく使ってる。
掲示板のログ全部とかはさすがに入れないけども
要は工夫次第。
0648nobodyさん
2006/07/02(日) 17:55:10ID:???ファイルポインタとかをどのように指定して良いのか分かりません。
0649nobodyさん
2006/07/02(日) 18:53:00ID:???0650nobodyさん
2006/07/02(日) 18:54:27ID:???0651nobodyさん
2006/07/02(日) 19:11:02ID:???>>649
すいません。よく分かりません。orz
>>650
負荷が気になるのですが、そうするのが一般的なのでしょうか。
0652nobodyさん
2006/07/02(日) 19:39:02ID:???任意ってのが例えばランダムで選択されるのか
ある文字列がある場合なのか
どのような条件かにもよると思う。
0654nobodyさん
2006/07/02(日) 19:58:32ID:???0655nobodyさん
2006/07/02(日) 20:01:04ID:???fopenして、任意の行までスキップすればいいんじゃない?
てか、データの検索でシコシコやりたいならDB使うのが定石だとおもうよ。
0656nobodyさん
2006/07/02(日) 20:48:11ID:YHlCRRoc$a[1][2] ← これなら2個とかです
0657nobodyさん
2006/07/02(日) 20:50:42ID:???0658nobodyさん
2006/07/02(日) 20:54:30ID:???0659nobodyさん
2006/07/02(日) 20:56:44ID:???array(1, 2, array(3, array(4, 5)), array(6), 7)
は3次元配列とは呼べないと思うし
0660nobodyさん
2006/07/02(日) 21:00:08ID:???深度というのですね。ありがとうございます。
再帰的関数?を狙ってこんな事な感じで試してみるのですが深度を上手く拾う事が出来ません。
$dに深度を入れようとしているのですが合わないのです。
function box($ary,$d = 0){
foreach(array_keys($ary) as $t){
if (is_array($ary[$t])) box($ary[$t],++$d);
}
}
0661nobodyさん
2006/07/02(日) 21:24:02ID:???$dに加算する場所が悪かった事がわかりました(−−;
0662nobodyさん
2006/07/02(日) 21:34:12ID:???0663nobodyさん
2006/07/02(日) 22:03:18ID:???サーバーに上げると変数に入れた文字が文字化けしてしまいます。
ちなみにland.toなんですが。。。
これはサーバーの方で設定しなければ直らないのでしょうか?
0664nobodyさん
2006/07/02(日) 22:27:30ID:???0665nobodyさん
2006/07/02(日) 22:32:04ID:???0667nobodyさん
2006/07/03(月) 10:58:30ID:TaHjD2Gv(つまり、出力後のページのソースを見ると改行がない)ようにするには、
どうすればよろしいですか。
0669nobodyさん
2006/07/03(月) 11:14:25ID:???0671nobodyさん
2006/07/03(月) 11:18:29ID:???そういうつもりで書いたのですが言葉足りなかったですね
0672nobodyさん
2006/07/03(月) 11:46:47ID:???\r\n
\r
\n
の順に ""に置き換えればいいとおもうよ。
0675nobodyさん
2006/07/03(月) 12:02:58ID:???0676nobodyさん
2006/07/03(月) 13:06:15ID:TaHjD2GvPHPでもそんな感じで何とかなるとは思うのですが、
問題はHTMLを含めて改行を削除するということなのです。
現状は、よくある「HTMLの中にPHPを書いている」という状況なのですが、
この場合のHTMLの内容さえも、改行を除いて出す必要があります。
通常の出力内容を$html_beforeとし、
$html_after = 改行処理($html_before)でとして
$html_afterを出力すれば良いのですが、
そう簡単にもいかないような。
要は、出力内容を$html_beforeに格納する方法ですね。
0679nobodyさん
2006/07/03(月) 13:31:03ID:???0680nobodyさん
2006/07/03(月) 13:45:12ID:TaHjD2Gv$textに格納できないかと...
0681nobodyさん
2006/07/03(月) 13:48:13ID:???例)
<?php
$a = 1.8;
$b = 0.15 * 12.0;
echo ($a == $b ? "equivalence" : "not equivalence");
?>
桁数合わせて(キャストして)文字列として比較する?
有効桁以下を切り落とし、整数化して比較する?
0683nobodyさん
2006/07/03(月) 15:18:32ID:???マニュアル嫁やボケナス
http://jp2.php.net/manual/ja/language.types.float.php
0684nobodyさん
2006/07/03(月) 15:48:51ID:???0685nobodyさん
2006/07/03(月) 15:56:24ID:???0686nobodyさん
2006/07/03(月) 16:01:58ID:???0689nobodyさん
2006/07/03(月) 16:14:55ID:33zQh45+罵倒するだけなら失せろ。
お前には聞いてねーよ。絡んでくるな。
0690nobodyさん
2006/07/03(月) 16:15:44ID:???0691nobodyさん
2006/07/03(月) 16:41:04ID:???0692nobodyさん
2006/07/03(月) 16:47:58ID:???質問の意図がわからないから答えようがない
そしてオレは浮動小数点数を比較したことがない
有効桁以下を切り落として整数化したら両方1になって誤差がありすぎると思うんだけど、それはそれで問題ない処理なわけ?
0693nobodyさん
2006/07/03(月) 16:48:01ID:???0694nobodyさん
2006/07/03(月) 16:51:56ID:???PHPで、方程式を提示すればそれをグラフにしてくれるようなモ・・なんとかってありますか?
たとえば、 y = 2x + 1 とか、 y = 2(x+3)^2 - 5 とかいう方程式のグラフを書いてくれる感じのやつです。
0696nobodyさん
2006/07/03(月) 18:47:19ID:???キミはアホですか。
有効桁を切り落として整数化=有効桁の分だけ100なり1000なりを掛け算して整数化って意味でしょ。
その程度の意図も読めないなら回答なんてしようと思うなよ〜
で、大小の判定まではともかく、有効桁内での等しいかどうかの比較は整数化が必須じゃないかな。
文字列にしちゃうと12.1と110.1みたいのがまともに比較できなくなるから基本は整数化じゃない?
0697nobodyさん
2006/07/03(月) 19:22:43ID:???このように書いても、サーバーにguest.datが作成されません。
find / -name "guest.dat" しても引っかかりませんでした。(sudoしています)
そこで
$file=fopen('/guest.dat','a');
としたところ、/にguest.datが作成されました。
一番上のようにディレクトリを指定しない場合はファイルは作成されないのでしょうか?
0698697
2006/07/03(月) 19:23:16ID:???0700nobodyさん
2006/07/03(月) 19:30:58ID:???http://jp.php.net/manual/ja/function.getcwd.php
を使ってみるべし。
0701nobodyさん
2006/07/03(月) 19:33:02ID:???「,」はエンドユーザが入力したらマズいし、「<>」はだとちょっと面倒?
おまいらはどーしてるん?
0702nobodyさん
2006/07/03(月) 19:34:18ID:???0703nobodyさん
2006/07/03(月) 19:36:23ID:???「<>」をエンドユーザが入力したらどうするんだよ?
それは置換するから大丈夫って言うなら「,」だって同じことなんじゃないかと。
0705nobodyさん
2006/07/03(月) 19:39:54ID:???個人的な好みじゃないか?
0706nobodyさん
2006/07/03(月) 19:41:41ID:???テキストをデリミタにすると、結局はエンドユーザが入力し得るものなんだから
どうでも好きにすればいいんじゃないってこと。
自分なら \t かバイナリにするけどね。\t でも入力し得るから注意ね。
0707nobodyさん
2006/07/03(月) 19:46:01ID:???ディレクトリのパーミッションを777にしたらできました!!
ありがとうございます!
>700
実行時のパスが分かるんですね。これも丁度知りたかった事です。
ありがとうございます!
0710nobodyさん
2006/07/03(月) 20:04:20ID:???メールデータとかのログも&lt;なんて変換かけてんの?
あ、掲示板くらいしか作ったことないしょぼプログラマでしたか、失礼。
0711nobodyさん
2006/07/03(月) 20:07:49ID:???0713nobodyさん
2006/07/03(月) 20:09:00ID:???じゃあ区切り文字は「\t」にして、ユーザが入力する TAB は、
trim($str, "\t")
で桶かな。
0715nobodyさん
2006/07/03(月) 20:11:27ID:???という変数の「後ろ」に文字列を追加するには「.=」だから簡単です。
$moji .= "def"; //この時点で$mojiには「abcdef」が入っている)
でも、変数の「先頭」に文字列を追加するのに簡単な方法ってありますでしょうか?
つまり$mojiに「defabc」と入ってる状態にしたいのですが・・・。
今はわざわざ、
$moji2 = "def";
$moji = $moji2.$moji;
などと連結しています。
0718nobodyさん
2006/07/03(月) 21:20:22ID:???phpファイルの置いているフォルダのパーミッションを775から
777にしたらファイルが作成できました。
/のパーミッションも調べてみようとしましたがどうやって見るのか
分からないので、つっ込んだことはわからないままですが・・・
ともあれ疑問は解決できました。
これからもちょくちょく質問すると思うのでそのときはお手ほどき
ください。
0719nobodyさん
2006/07/03(月) 22:11:39ID:???遅くなったけどありがとう。
有効桁がそれ程大きくないので整数化がよさそうですね。
>>692
例が適切ではなかったも。スマソ
0720nobodyさん
2006/07/03(月) 23:33:57ID:???質問者ならageろカス、誰が誰だか分からんだろうが。
正確な実数値の比較がしたけりゃ、これ使え
http://jp.php.net/manual/ja/function.bccomp.php
>>683にも書いたがマニュアルに浮動小数点数の扱いの注意については書いてある。
http://jp2.php.net/manual/ja/language.types.float.php
>> よって、小数の最後の桁を信用してはいけませんし、 小数が等しいという比較を行ってはいけません。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> より高い精度が必要な場合には、 任意精度数学関数(bcmath)または gmp 関数を代わりに使用してください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要するに、マニュアル嫁ボケナスってことだ
0723nobodyさん
2006/07/04(火) 00:37:21ID:???数学曲線
http://r0000.tm.land.to/math/
0725nobodyさん
2006/07/04(火) 01:14:14ID:???って
$moji = $moji . "def";
じゃないの?
0726nobodyさん
2006/07/04(火) 01:33:19ID:???一般的な話を聞きたいのですが
html部分はごっそりヒアドキュメントにして、それより前に分岐処理とか自作関数で生成した変数を
<input type='text' name='hoge' value='{$hoge}'>
ってな感じで埋め込んでる感じなんですが
ヒアドキュメントにしないで、
<input type='text' name='hoge' value='<?php echo $hoge; ?>'>
って書き方とどっちが正しいのでしょうか?
後者のほうの書き方は流れは分かりやすいけど、なんだかごちゃごちゃしてどうも好きになれないんですが。
0727nobodyさん
2006/07/04(火) 01:35:21ID:???0730726
2006/07/04(火) 02:00:44ID:???あ、省略形の書き方ですね。
>>729
1000くらいとかループさせてみたんですが、少なくともブラウザのレンダリングされるという体感的な時間は変わらないみたいです。
前者の方が見やすいのは間違いないとは思うんだけど。
0731nobodyさん
2006/07/04(火) 02:02:25ID:???そっちのほうが見やすい
0732nobodyさん
2006/07/04(火) 02:03:46ID:???0733nobodyさん
2006/07/04(火) 02:05:58ID:???0734nobodyさん
2006/07/04(火) 02:39:57ID:???<? echo $hoge; ?>
<?=$hoge?>
これの差を教えてください。
0735nobodyさん
2006/07/04(火) 02:48:58ID:???0736nobodyさん
2006/07/04(火) 03:10:27ID:???困ってるんです!!(><)
0737nobodyさん
2006/07/04(火) 03:25:46ID:???これを、"あいうえお" から "あ"または"う" があるとTRUE
という風にはできませんか?
0739nobodyさん
2006/07/04(火) 03:28:39ID:???> "あいうえお" から "あ" があるとTRUE
まずこれをどういう風に書いてるのか示せ。話はそれからだ。
0741nobodyさん
2006/07/04(火) 03:45:09ID:???if(strstr($str,"あ")||strstr($str,"う")){
echo "TRUE";
}
0743nobodyさん
2006/07/04(火) 04:13:20ID:???0744nobodyさん
2006/07/04(火) 04:15:20ID:???array(バカアホ死ねだの悪口)
の文字が入っている場合にTRUEを返したい
0746nobodyさん
2006/07/04(火) 05:21:47ID:???あぼーんされてて見えないからレスアンカーしてみる
あまり変な事書くなよ
これで単なる煽りとかだったら凹むぜ
0747nobodyさん
2006/07/04(火) 05:21:52ID:???質問者はそんなこと承知の上で聞いていると思うが?
わざわざ蒸し返すな。
お前のレスはなんの解決にも結びつかないんだから。
0748746
2006/07/04(火) 05:22:30ID:???0749nobodyさん
2006/07/04(火) 05:34:06ID:???0750nobodyさん
2006/07/04(火) 05:45:32ID:???∧_∧
( ><) < ありがとう
‐=≡t─‐/ヽ、_つ) __s)
‐=≡(ニニ( ) /\\-.\
‐=≡( (ニ:( /悲| (O)T
‐=≡ヽ、__,ノ ̄ ヽ、_,ノ
ちなみにマニュアルで言うとどのへんでしょうか?
0752nobodyさん
2006/07/04(火) 05:55:40ID:???ここらへん呼んで見れ
http://www.php.net/manual/ja/language.basic-syntax.php
0753nobodyさん
2006/07/04(火) 05:57:55ID:???$needle = array("あ", "う");
foreach($needle as $nd) {
if(strpos($str, $nd) !== FALSE) {
echo "TRUE";
}
}
ってことかいな?
0756nobodyさん
2006/07/04(火) 08:45:47ID:C7rNd6pP$_GET変数に値が入りますが
$_GETの値をURLに戻す関数ってありますか?
0760nobodyさん
2006/07/04(火) 10:33:15ID:???今まで一度も使ったこと無い・・・・orz
使わなくても困ったことないし・・・
でももしかしたら知らないうちに無駄な苦労してるのかも。。。
0761nobodyさん
2006/07/04(火) 10:46:32ID:???使用頻度で言えば、foreach>while>for
0762nobodyさん
2006/07/04(火) 10:58:47ID:???PHPでは for もそこそこ使ってるな。
たとえば Perlでは、
foreach (0..5){
echo $_;
}
という感じのパターンは便利だった。
0763nobodyさん
2006/07/04(火) 11:06:09ID:???多次元配列なんかの場合だとかなりスッキリするし。
俺はループ処理はforeachかwhile。
forは殆ど使わなくなった。
0765nobodyさん
2006/07/04(火) 11:23:16ID:???foreach だとめんどうなので for を使うね
0766nobodyさん
2006/07/04(火) 11:37:05ID:???ん?久しくPHP4使ってないし環境無いんで試せないけど
foreach ($hoge as $key => $vl) {
$hoge[$key] = $vl * 100;
}
見たいな書き方できないんだっけ?
0767nobodyさん
2006/07/04(火) 11:37:32ID:???最近のお気に入りの技
0768nobodyさん
2006/07/04(火) 11:42:49ID:???その書き方で問題ない
foreach ($hoge as $vl) {
$vl = $vl * 100;
}
これは無理だけど
0769nobodyさん
2006/07/04(火) 11:47:22ID:???0771nobodyさん
2006/07/04(火) 11:52:04ID:???$list[$i] = $int * $i + 3;
}
みたいなときは for がいいと思うよ。
0773nobodyさん
2006/07/04(火) 12:12:16ID:???whileも限られた場面だけ、
95%以上をforで処理してる俺って、いったい・・・・
だってforeach、使い方が理解できないんだもん。。。
0775nobodyさん
2006/07/04(火) 12:36:49ID:???$hoge as $key =>
↑もうこの時点で意味が分からないorz
これをどのように、どんな場面で便利に使えるのか、サッパリ分からない・・・
俺ってアホだ。。。
0776nobodyさん
2006/07/04(火) 12:38:26ID:???foreach(配列 as 添え字の一時変数 => 値の一時変数)
0777nobodyさん
2006/07/04(火) 12:38:31ID:???のエラーがどしても消えん、変数の取り扱い方が悪い?
$today = getdate();
$str_mon = strlen("$today[mon]");
$str_day = strlen("$today[mday]");
if($str_mon == 1) { $today[mon] = "0"."$today[mon]";};
if($str_day == 1) { $today[mday] = "0"."$today[mday]";};
0781nobodyさん
2006/07/04(火) 12:43:43ID:???0782nobodyさん
2006/07/04(火) 12:44:55ID:???そういう時はマニュアルに載ってる例題を見るのがいいよ。
ttp://jp2.php.net/manual/ja/control-structures.foreach.php
0783nobodyさん
2006/07/04(火) 12:48:09ID:???$today = getdate();
$str_mon = strlen($today['mon']);
$str_day = strlen($today['mday']);
if($str_mon == 1) { $today['mon'] = "0".$today['mon'];};
if($str_day == 1) { $today['mday'] = "0".$today['mday'];};
0787nobodyさん
2006/07/04(火) 13:05:27ID:???欲しいだけならdateでいいような・・・
0788nobodyさん
2006/07/04(火) 13:10:03ID:???$today['mon'] = sprintf("0", $today['mon']);
>>785 ハァハァ...!
$today['mon'] = str_pad($today['mon'], 2, 0, STR_PAD_LEFT);
>>786 日付の表示を "20060704" とかにして既にファイル内にある日付と比較したいんす
0789nobodyさん
2006/07/04(火) 13:12:18ID:???$date = date("Ymd");
でおk。
0790nobodyさん
2006/07/04(火) 13:13:46ID:???というのがすきだった。
でも str_pad はまさにそのための関数だからそれがあるならそれがいいね。
0791nobodyさん
2006/07/04(火) 13:14:12ID:???でも勉強になったので皆さん ありがとうでした!
0794nobodyさん
2006/07/04(火) 13:22:45ID:???0796nobodyさん
2006/07/04(火) 15:01:12ID:BWAomZFI(自動で書き込んでいるのでしょうが)
そこで、よくあるような、画像中の文字を正しく入力しないと投稿できなくしたいのですが、
それに関し、役に立ちそうなサイトはございませんか。
検索で調べようにも、どのようなキーワードで調べればよいか...
0797nobodyさん
2006/07/04(火) 15:07:42ID:???俺はユーザの手間増やすのは抵抗あるから、海外からのスパムは
もっと別の方法取ってるよ。
あと偶然かもしれないが、俺の知り合いがブログで「〜を作る」とか
宣言した後、それに関連する質問がこのスレに投げかけられるんだよなぁ。
0798nobodyさん
2006/07/04(火) 15:07:44ID:???0800nobodyさん
2006/07/04(火) 15:13:11ID:???やはり入力文字で弾くのが良いかも
0803796
2006/07/04(火) 15:58:59ID:BWAomZFI認証のようなことは、確かにしたくはありません。
もちろん、今まで何も手を打たなかったわけではなく、
NGワード(COOLとかNICEとか)を設定して、それがあればerror()で止めていたのですが、
このところ毎日20件以上も来るようになり、毎回投稿内容が異なるので、NGワードも無力化してしまいました。
>>802
IPは当然その度に異なるので弾けませんし、リファラも世紀のものを引き下げてくることが大半です。
0804nobodyさん
2006/07/04(火) 16:00:43ID:???例えば、JavaScriptでフォームの一部を出力するようにすれば大分はじけると思うけど?
画像認証はダルイからほんとおすすめできない。
0805801
2006/07/04(火) 16:52:19ID:???韓国系?や、日本語入ったのはだめだけどな。
0806nobodyさん
2006/07/04(火) 17:06:03ID:???ctype_alnumでやってたけど,そっちの方が簡単っぽいな。
0807nobodyさん
2006/07/04(火) 17:42:10ID:pNwfONldphpはhtmlベースにかいて、<?php ?>で囲みまくるのか、
<?php ?>の中でechoとかprint使いまくって、html出力するのか
どっちが書きやすいですか?
0809nobodyさん
2006/07/04(火) 17:48:13ID:???0810nobodyさん
2006/07/04(火) 17:54:43ID:???周りの人間10人にアンケートを取ったところ奇麗に5:5となりますた。
とでも答えれば満足?
どういう書き方が良いかなんて書き手の趣味にもスクリプトの内容にもよるんだから、
自分の主観で見やすいと思った書き方で好きに書けばいいじゃん。
0811nobodyさん
2006/07/04(火) 17:57:18ID:???0814nobodyさん
2006/07/04(火) 18:34:24ID:???バックアップの部分をどうやって書いたらいいかわかりません
お願いします
0818814=817
2006/07/04(火) 18:57:57ID:???お世話になります
0820nobodyさん
2006/07/04(火) 19:19:15ID:???*で全部拾ってフィールド名とテーブル定義拾って
INSERT文にするなりすればいいのよ。
とりあえずmysqlの標準関数全部見たよね???
0821nobodyさん
2006/07/04(火) 19:25:17ID:???MySQLスレ。
MySQLから提供されてるツールを利用するのを、俺も薦める。
MyISAMだけならデータベース"ファイル"をそのまま
コピーしておくだけというのも結構良いぞ。
0822nobodyさん
2006/07/04(火) 21:14:44ID:n70oEdEe0823nobodyさん
2006/07/04(火) 21:16:42ID:???0825nobodyさん
2006/07/04(火) 21:21:00ID:n70oEdEeはできます。
hoge.php内のfunction varがあるとして
form action="hoge.php var()"みたいにできないかなと思いまして。
0826nobodyさん
2006/07/04(火) 21:30:44ID:???タグの閉じ忘れをやろうとしているのですが
これ以外にスマートな方法はありますでしょうか?
また、<!--の閉じ忘れはどうすればよいでしょうか?
0829nobodyさん
2006/07/04(火) 23:40:50ID:9/r1waWbボタン1を押したら aaaa.txt
ボタン2を押したら bbbb.bmp
ボタン3を押したら aaaa.pdf
を印刷するような事をしたいんですが、どうするのが妥当でしょうか。
HTMLだけじゃ無理ですよね?PHPでこーいうのできますか?
0830nobodyさん
2006/07/04(火) 23:44:53ID:???現在か過去か未来かを判定するにはどうしたらいいのでしょうか。
0831nobodyさん
2006/07/04(火) 23:51:54ID:???サーバー、プリンタが手元にあるイントラネットなら印刷用のtmpファイルを作って、
system("lpr tmpファイル");等として、バッチ的に出すのが手かと。
0834nobodyさん
2006/07/05(水) 00:27:07ID:???$hoge = $ereg_replace("\t","_",$hoge) だと、「___hogehoge__hogehoge___」となってしまいます。
「_hogehoge_hogehoge_」にするにはどうすればいいのでしょうか?
0835nobodyさん
2006/07/05(水) 00:28:30ID:???$hoge = $ereg_replace("\t+","_",$hoge) でもだめです。
0836nobodyさん
2006/07/05(水) 00:28:59ID:???$hoge = preg_replace('/\t+/', '_', $hoge);
因みにスレ違いな。次からは正規表現スレで。
0838nobodyさん
2006/07/05(水) 00:43:49ID:???それ以前の問題で、その方法は全くお勧めできない。
HTMLタグを許可するなら予めhtmlspecialcharsをかけてから許可するタグ・属性だけを元に戻すのが最善。
管理者専用であってもCSRFの可能性があるから全タグの無条件許可は止めとけ。
0839834
2006/07/05(水) 00:45:51ID:???ありがとうございます。実際には \t が 10-20 個ほどついているテキストだったのですが、
数は減ったもののすべて置換はできませんでした。正規表現板に行ってきます。
0840nobodyさん
2006/07/05(水) 00:52:12ID:???という手法はどうだろう。
0841830
2006/07/05(水) 00:56:17ID:???最初YYYY/MM/DDの/を除いた後に比較しようと思ったのですが、
どうも煩雑になってしまったのでして。
ありがとうございます。
0842nobodyさん
2006/07/05(水) 00:58:28ID:???0844nobodyさん
2006/07/05(水) 01:13:02ID:???$contents = file_get_contents("http://www.yahoo.co.jp/");
print $contents;
てやると強制終了しちゃうんですが、なんか設定がおかしいんでしょうか?
4.3.9だと問題ないのに…
0845nobodyさん
2006/07/05(水) 01:20:37ID:???0846844
2006/07/05(水) 01:42:02ID:???一年ぶりにphpさわったんで全然事情を知りませんでした。
どうも失礼しました。
0847nobodyさん
2006/07/05(水) 02:50:45ID:???-- --------------------------------------------------------
--
-- テーブルの構造 `hoge_hoge`
--
という内容をsql.txt に書き込んで、
$sql = file_get_contents("sql.txt");
mysql_query($sql, $conn);
すると以下のエラーが出ます、
phpmyadminなんかでこのsql文打っても問題ないのに
何が原因でしょうか? mysql_escape_string($sql)とか色々やってみたけど
だめぽです。
数時間苦しんでます。へるぷみー
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ';
-- -----------------------------------------------------
0848nobodyさん
2006/07/05(水) 02:58:37ID:???SQL文の末尾に余計な空白か改行が入ってるんじゃないかな。
MySQLの古いバージョンだとエラーになるんだよね、それ。
0849nobodyさん
2006/07/05(水) 03:01:54ID:???MySQL 使いではないけど一般的な切り分け方
1. $sql の内容が本当に sql.txt になっているか表示させてみる
※sql.txt を読むディレクトリが意図通りになっているか
2. $sql に sql.txt と同じものを代入して query 発行してみる
※そもそも mysql_query が phpmyadmin と同じ SQL 文を受け付けるのか?
http://jp.php.net/manual/ja/function.mysql-query.php
を見るとセミコロンを含んじゃ駄目だってあるし、複数行も良いのか分からん
0850nobodyさん
2006/07/05(水) 03:03:31ID:???エラーメッセージに sql.txt の最初の数行が表示されてましたね。
じゃあ、2 だね。
0851nobodyさん
2006/07/05(水) 03:46:59ID:pohb5aTEPHP5.1.4
WindowsXPsp2
apache2.2
と言う構成で運用しています。
PHPの構文についての質問なのですが、
大ループのような言う構文はあるのでしょうか。
Perlでは下記の構文です。
ROOP: {
〜
〜
}
私は「大ループ」と記憶しているのですが正式な名前が分からず
PHPマニュアルからもgoogleからも見つけることが出来ませんでした。
お力添えして頂けませんでしょうか。
0852nobodyさん
2006/07/05(水) 03:48:14ID:???PHPから実行するときはuse hogeの部分は事前にmysql_select_db("hoge")じゃないの?
そんなんmysql_queryで発行できないんじゃないか?
0853nobodyさん
2006/07/05(水) 03:52:04ID:???制御構造での「ラベル」かな。PHP ではないと思うけど
ネスとしたループ構造を抜けるためとかに使いたいなら
break に引数を付ければ実現できますよ。
ちなみに、ループは LOOP ね。
0854nobodyさん
2006/07/05(水) 04:04:18ID:???Perlはとりあえず置いといて、それがどういう動きをする構文なのか示した方がいいよ。
ちなみにPerlのそれは構文じゃなくて、ラベル+ブロックの組み合わせだと思う。
多重のループブロックの1番上に戻ったり抜けたりしたい場合、PHPではbreak 3;みたいに
ネスト数を指定したbreakやcontinueを使うようになってる。
0855851
2006/07/05(水) 04:49:55ID:???>>853
ラベルと言うんですね、初めて知りました。LOOPのご指摘有り難うございます。
恥ずかシィ。
>>854
目的は2通りありまして、どちらも通常のループ制御用途ではないのです。
1:見易くする為(セパレータやインデックス的用途)
メールフォームの入力データ妥当性チェックを例にしますと、
ルーチン:送信者名妥当性チェック
ルーチン:メールアドレス妥当性チェック
ルーチン:本文妥当性チェック
etc
と書きます。
ここで幾らサブファンクションに細かくわけても、ものによっては
if else 等の構文が複数入って大きなルーチンになるとゴチャゴチャします。
このような場合に、ラベルを使って、ココからココまでは、何のブロックか
と言うことを明示的に解りやすく書きたいのです。
コメント文は各構文の補足説明として使いたいと思っています。
0856851
2006/07/05(水) 04:50:30ID:???2:指定箇所まで処理を飛ばす。
if 〜
if 〜
if 〜
ルーチンA
1番目のifで真なら2番目以降は飛ばして
ルーチンAの行以降を読み込む。
if () {
if () {
if () {
}
}
}
このようにしても実現できますが可読性を
損ねてしまいますのでラベルを使えば解決できると考えました。
0857nobodyさん
2006/07/05(水) 07:27:56ID:???こんな風に書けば多少は見やすくなるかな?
try
{
// 送信者名妥当性チェック
if ($you == $hage) {
throw new exception ($hage);
}
// メールアドレス妥当性チェック
if ($omae == $hage) {
throw new exception ($hage);
}
// 本文妥当性チェック
if ($anata == $hage) {
throw new exception ($hage);
}
/* ルーチンA */
}
catch
{
/* エラー時の処理 */
}
0859nobodyさん
2006/07/05(水) 10:43:15ID:????に文字化けしてしまうのですが、どうすれば回避できますか?
dumpファイルやmysql、phpmyadminの文字コードは全てUTF-8に統一しているのですが。
0860847
2006/07/05(水) 10:58:49ID:???おっしゃるとおりっぽいですね。
となると解決策は、mysql_queryを行数文発行する、などが
あると思いますが、さすがにこれは厳しいです
phpからある程度のsqlを実行させる場合によい方法はないでしょうか?
0861nobodyさん
2006/07/05(水) 11:01:25ID:???> となると解決策は、mysql_queryを行数文発行する、などが
> あると思いますが、さすがにこれは厳しいです
なんで?
> phpからある程度のsqlを実行させる場合によい方法はないでしょうか?
system
0862nobodyさん
2006/07/05(水) 11:56:24ID:???0864nobodyさん
2006/07/05(水) 12:34:57ID:???ループで回せばいいだけだろ
while($sql=fgets($fp)
{
mysql_query($sql, $conn);
}
0865nobodyさん
2006/07/05(水) 12:39:54ID:???CGIとして動くか、Apacheの拡張スクリプトとして動くかの違い
CGIが何かわからないなら
■参考
通信用語の基礎知識より"CGI" http://www.wdic.org/?word=CGI+%3AWDIC
・WWWで, WWWブラウザからの要求に対してサーバが別のプログラムを起動実行し, 結果をWWWブラウザに返す処理を行なうためのインターフェイス.
・イメージマップ, アクセスカウンタ, 訪問者登録, 掲示板(BBS)などを実現する際に利用されている.
・UNIXのshやその互換シェル, またはPerl, C, C++などが利用される.
■参考リンク
http://e-words.jp/w/CGI.html
http://www.tohoho-web.com/wwwcgi1.htm
http://www.tryhp.net/first.htm
http://www.web-terakoya.net/basic/a_1.html
http://homepage2.nifty.com/yoshi-m/makehp/cgi/lesson/cgi/1.htm
0866nobodyさん
2006/07/05(水) 12:42:39ID:???ApacheがPHPのスクリプトを実行するプロセスを起動して、その結果を受けって
処理する、というのと
Apache自身がPHPのスクリプトを読み込んで実行するという違い
0867nobodyさん
2006/07/05(水) 13:04:54ID:???session_start();
$name = $_SESSION['name']; // ここで用済み
if (isset($_COOKIE[session_name()])) { // マニュアルから拝借
setcookie(session_name(), '', time()-86400, '/');
}
session_unset();
session_destroy();
session_write_close(); // この後もいろいろ続くので
こんな感じでさっぱりできますでしょうか
0868nobodyさん
2006/07/05(水) 13:16:43ID:???0869860
2006/07/05(水) 14:02:44ID:???その場合、改行を意識的に指定したSQL文でないと厳しくないですか?
(1行毎に内容が完結するSQL文を準備しなければならない)
system関数以外でよい方法はないでしょうか?
0870nobodyさん
2006/07/05(水) 14:05:12ID:???0871867
2006/07/05(水) 14:29:29ID:???あとはこの辺参考にすればすっきりでしょうか?
ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session_end
0872nobodyさん
2006/07/05(水) 16:58:27ID:???各板の上位5件のスレッドのリンクを生成、出力
というPHPを作りたいんですが、どうすれば良いでしょうか?
PHP ファイル 取得 リンク生成 等思いつく範囲の単語を入れてグーグルで調べてみましたが
答えは見つかりません
0873867
2006/07/05(水) 17:13:30ID:???2chでいうsubbback.htmlから5行読んだら?
0875nobodyさん
2006/07/05(水) 17:17:50ID:???mysql_queryは1行しか実行できない。
http://jp.php.net/manual/ja/function.mysql-query.php
ここのUser Contributed Notes
Predrag Supurovic
01-Dec-2003 09:52 と
samm at os2 dot ru
19-May-2004 06:15
参照
0876nobodyさん
2006/07/05(水) 17:33:28ID:???#!D:\php\php.exe
<?php
echo("test");
?>
が成功して、そのあとファイルを書き換えたら
急に動かずダウンロードをするようになった。
仕方ないからもう一度↑の内容に戻したら以下ずっと
実行せずにDLをするようになった。
どうやったら実行するようになりますか?
0877nobodyさん
2006/07/05(水) 17:43:30ID:???0878nobodyさん
2006/07/05(水) 18:12:06ID:???無駄な行が多いな。以下で十分だぞ。
ちなみに>>868の情報はウソ。もしゴミが残るというなら、具体的に実例を見せてみろ。
session_start();
$_SESSION = array();
session_unset();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
0879nobodyさん
2006/07/05(水) 18:59:07ID:???subject.txt → 特定スレの抽出 → datを数時間おきに取得
というような2ちゃんのdatを自動的に取得してくれる
過去ログ倉庫をブラウザではなくWeb上でやりたいんですが
スクリプトはありますでしょうか?もしくはヒントを下さい
特定スレの抽出は以下のようなスクリプトで出来ました
datを数時間おきに取得という部分で悩んでおります
<?
$fp=@fopen("http://鯖/板/subject.txt","r") or die("error");
$lines = file("http://鯖/板/subject.txt");
for ($i=0; $i<count($lines); $i++) {
if(stristr($lines[$i],"特定スレのスレタイ")){
list ($dat, $subject) = explode (".dat<>", $lines[$i]);
print "<a href=\"http://鯖/test/read.cgi/板/$dat/l50\" target=\"_blank\">$subject</a><br>";
}}
fclose($fp);
?>
0881nobodyさん
2006/07/05(水) 19:31:17ID:???ダウンロードになるのはMIMEタイプが間違ってる可能性が高い。
php.iniの設定や置き場所は大丈夫?
ちゃんとしててそうなるなら
header('Content-Type: text/html; charset=Shift_JIS');
とか実行してみるとか
0884867
2006/07/05(水) 20:19:29ID:???ファイルが残るって意味だと思う。
>871参照
ところで
$_SESSION = array();
session_unset();
これは等価じゃないんですか?
0886nobodyさん
2006/07/05(水) 20:48:12ID:???0887nobodyさん
2006/07/05(水) 20:48:55ID:???http://鯖/板/dat/番号.dat
あとはfsockopenでHTTP通信して差分取得できればベスト
0888nobodyさん
2006/07/05(水) 20:53:03ID:???できません。どうしたら良いのでしょうか?。
class abc{
var $a;
function abc(){
$p =& $this->a;
return $p;
}
function main(){
$p = $this->abc();
$p[] = 1; ← こんな感じで$this->aに値を追加したい
}
}
0889nobodyさん
2006/07/05(水) 21:11:48ID:???というのが非常に意味不明。
$p がクラス abc であるならば、
$p->a = 1;
みたいな形になるのでは?
0890nobodyさん
2006/07/05(水) 21:13:19ID:???function main()に、
$thisがあるのも意味不明だ
0892nobodyさん
2006/07/05(水) 21:15:11ID:???つ http://jp.php.net/manual/ja/language.oop5.php#op5.intro
これを見て勉強しろ。
class User {
var $test;
var $test2;
}
$user1 = new User();
$user2 = new User();
$user1->test = "user1's test";
$user1->test2 = "user1's test2";
$user2->test = "user2's test";
$user2->test2 = "user2's test2";
0895869
2006/07/05(水) 21:30:03ID:???サンクス、それ使って実際のsql.txtの半分くらいは実行できました。
しかし、「{」が含まれる行でエラーが発生しました。
エスケープしてもエラーは変わらず、です。
あと一歩、どうかお助けを
0896888
2006/07/05(水) 21:31:04ID:???$a =& $b;
$a[] = 'a';
print_r($b);
というのをfunctionから返ってきたもので参照?したかったのですが無理なのですね
しかも、main()ってあったんですね・・・
http://php.s3.to/man/function.main.html
0897nobodyさん
2006/07/05(水) 21:35:02ID:???0899nobodyさん
2006/07/05(水) 22:11:44ID:???なんだかPHP4だと参照が崩れて、5だとうまくいくような・・・
※長くてすみません。
class E {
var $keyName;
var $value = "";
function E( $keyName ) {
$this->keyName = $keyName;
} }// ↑要素のクラス
class C {
var $array;
function C(){ $this->array = array(); }
function getE( $code ) {
return $this->array["$code"];
}
function setE( $e ) {
$this->array[$e->keyName] = $e;
} }// ↑要素を集めるクラス
$e = new E( "test" );
$c = new C();
$c->setE( $e ); // 要素を収集する
$e->value = "hello"; // オリジナル要素の値変更
$test = $c->getE( "test" );
if( $test->value == "hello" ) // 参照先の値を確認
// ここで参照しない場合がありました。
// 設定や何か環境でしょうか。アドバイスなどありましたら、お願いします。
0901nobodyさん
2006/07/05(水) 22:43:22ID:???PHP4の詳しい実装はおいておくとして
PHP4では基本的に、引数はすべて値渡しだよ
だから、
function setE( $e ) {
$this->array[$e->keyName] = $e;
}
で、セットされたものと $e は違う内容になると考えて問題ない
なので、いくら
$e->value = "hello";
ってやっても、C のメンバ変数の中身は変化しない
0902nobodyさん
2006/07/05(水) 22:47:19ID:Am3fYGCAclass C {
var $array;
function C() {
$this->array = array();
}
function &getE( $code ) {
return $this->array["$code"];
}
function setE( &$e ) {
$this->array[$e->keyName] =& $e;
}
}// ↑要素を集めるクラス
0904nobodyさん
2006/07/05(水) 22:55:25ID:???ありがとうございます。PHP5からはじめまして
PHP5からオブジェクト指向的な改定が入ったのは知っていたのですが、
PHP4でもクラスなどが存在していた為、当然参照だろうと考えており、
環境か何かが原因なのかな、コードミスかなといろいろ悩んでしまいました。
本当に助かりました。ありがとう。
ちょっと怖いので値渡し前提でやっていこうと思います。
0905nobodyさん
2006/07/06(木) 00:35:23ID:???リンクだとどうしても上手くいかないので無理やりクエリに値を付けているのですが、
もっとうまいやり方がないものかと思いまして。
0906nobodyさん
2006/07/06(木) 00:47:53ID:???0907nobodyさん
2006/07/06(木) 00:58:05ID:???function()を使うのには何か設定が必要なのでしょうか?
Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\function.php on line 12
Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\function.php on line 13
Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\function.php on line 43
Warning: flock() expects parameter 1 to be resource, boolean given in E:\Web\Chat2\chat\function.php on line 46
Warning: fputs(): supplied argument is not a valid stream resource in E:\Web\Chat2\chat\function.php on line 53
Warning: flock() expects parameter 1 to be resource, boolean given in E:\Web\Chat2\chat\function.php on line 54
Warning: fclose(): supplied argument is not a valid stream resource in E:\Web\Chat2\chat\function.php on line 55
など、エラーが出すぎて困っています。
0910907
2006/07/06(木) 01:28:56ID:???0912nobodyさん
2006/07/06(木) 02:05:56ID:???ちゃんと答えは>>907に書いてある。
たしかに英語だが、それは>>909で解決できるはずだ。
その上で何が分からないのかを説明してくれ。
0914nobodyさん
2006/07/06(木) 02:24:32ID:???警告文ぐらい読めないなら中学校の英語からやり直したほうがいい
読む気が無いならプログラミングなんて今すぐ止めたまえ
0915907
2006/07/06(木) 03:51:57ID:???下のは、さっぱりです・・・
というか、普通に実行できたのにfunctionにもってきたらエラーとかorz
0916907
2006/07/06(木) 05:14:35ID:???0917nobodyさん
2006/07/06(木) 05:21:37ID:???ヒント:変数のスコープ
・・・って言っても喪前さんのレベルだと多分分からないだろうから('A`)
とりあえず、警告が出ているarray_reverse()の()内の変数を、その前の行でglobal宣言をする
ex. array_reverse($foo)の行で警告が出たなら
global $foo; // 追加
$bar=array_reverse($foo);
:
:続く
上3つはこれで無理矢理解決できると思うが、
下4つは警告の出た行のもっと前に要因があるので
これ以上はわかんね。つか元に戻した方が多分早い
0919907
2006/07/06(木) 05:35:19ID:04g4jMNg$imput_member = implode(",",array($_SESSION['name'][$_GET['id']],$_SESSION['name_color'][$_GET['id']],time(),$host));
$member_file = array_reverse(file($member_data));
$fp = fopen($member_data,"w");
flock($fp,LOCK_EX);
for($i=0;$i<count($member_file);$i++){
list($get_name,$get_color,$get_time,$get_host) = split(",",$member_file[$i]);
if(((time()-$get_time)<=300)&&(trim($host) != trim($get_host))){
fputs($fp,$member_file[$i]);
}
}
fputs($fp,$imput_member."\n");
flock($fp,LOCK_UN);
fclose($fp);
}
まんまコピーして、function.phpで保存
require()でfunction.phpで読み込んで、上の文があった場所へreload();
エラー・・・
0920nobodyさん
2006/07/06(木) 05:39:27ID:???0921nobodyさん
2006/07/06(木) 05:43:11ID:???にして呼び出し側で
reload($hoge);
か 917のいうとおり
function reload(){
global $member_data;
0922nobodyさん
2006/07/06(木) 07:13:28ID:???警告:array_reverseに与えられる引数は配列であるべき(13行目)
警告:array_reverseに与えられる引数は配列であるべき(43行目)
警告:flock関数は第一引数がresource型であることを期待しているが、boolean型が渡されている(46行目)
警告:fputs関数に渡された引数は有効なリソースではない(53行目)
警告:flock関数は第一引数がresource型であることを期待しているが、boolean型が渡されている(54行目)
警告:fputs関数に渡された引数は有効なリソースではない(55行目)
ファイルオープンに失敗してるとかそんなんじゃねーの?
0925nobodyさん
2006/07/06(木) 09:04:08ID:???http://www.asahi-net.or.jp/~AX2S-KMTN/ref/roman_num.html#unicode
0926876
2006/07/06(木) 11:13:07ID:???>php.iniの設定や置き場所は大丈夫?
PHP5.1.4 + Apache2.2.x を使ってまして、
php.ini は php.ini-recommanded をリネームしただけです。
Apache の設定で PHPIntDir を指定しているので
php5ts.dll も移動していません。
Apache2.2.x系に対応するために php5ts.dll も更新して
その他の設定も済ませています。
>header('Content-Type: text/html; charset=Shift_JIS');
もDLが始まってしまいます。
むぅ〜。。。
0927876=926
2006/07/06(木) 11:15:01ID:???>その他の設定も済ませています。
php5ts.dll じゃなくて php5apache2.dll でした。
0928nobodyさん
2006/07/06(木) 11:17:11ID:???0929nobodyさん
2006/07/06(木) 11:38:14ID:zFo6kcDcちなみにMTのように、画像をアップロードすると、urlが表示されて、任意の場所にペーストして投稿みたいな設計です。
よろしくおねがいします。
0930nobodyさん
2006/07/06(木) 11:42:52ID:???0931nobodyさん
2006/07/06(木) 11:45:03ID:???imgだけ文章中で使いたいなら、オリジナルタグを使用するのもいいと思うよ。
<#IMG>http://www.yahoo.co.jp/</#IMG>
見たいな感じで入力するよう説明書きを入れる。
0932nobodyさん
2006/07/06(木) 12:22:56ID:zFo6kcDcレスありがとうございます。
検討した結果、931さんの方法でやることにしました。
htmlspecialcharsをかけた後に[img][/img]みたいな独自タグを
str_repraceで置き換えたら、<img>タグだけが有効になりました。
ありがとうございました。
0933nobodyさん
2006/07/06(木) 12:45:14ID:H7bF4zaH通常、HTML中にphpを埋め込むなんてやらない(Smartyを使用)ので、
できたら省略したいのですが。
#逆に<?php ?>の外に無駄な改行とかを間違えていれてしまい
#エラーの原因にしかなっていません。。
0935nobodyさん
2006/07/06(木) 13:25:45ID:???0936nobodyさん
2006/07/06(木) 13:37:02ID:???PHPで何も出力しないなら最初にincludeでもすれば?
0937nobodyさん
2006/07/06(木) 13:43:40ID:MTxFU3hJHTMLでは「WIDTH="500" HEIGHT="600"」としているので、いちいち変えるのは面倒です。
0938nobodyさん
2006/07/06(木) 13:47:20ID:???print "あ"いう"えお";
さてprintの中の人はどこまでを出力すればいいでしょうか?
↓
print "あ\"いう\"えお";
0940nobodyさん
2006/07/06(木) 14:55:34ID:EMi/9a6Qecho '「WIDTH="500" HEIGHT="600"」';
でいけると思われマす
0942nobodyさん
2006/07/06(木) 15:41:05ID:???print <<<__BAKA__
WIDTH="500" HEIGHT="600"
__BAKA__;
0943nobodyさん
2006/07/06(木) 15:49:06ID:???#abc:a#
これを
abc/a.gif
に置き換えたいのですが、どうすれば良いのでしょうか
0944nobodyさん
2006/07/06(木) 15:54:28ID:???やりたいことを言葉で考えてみたら?
0. 「#abc:a#」
1. 「#」を除去→「abc:a」
2. 「:」を「/」に置換→「abc/a」
3. 末尾に「.gif」を付与→「abc/a.gif」
文字列操作は
http://jp.php.net/manual/ja/ref.strings.php
0946nobodyさん
2006/07/06(木) 16:09:24ID:???文の途中にある「#abc:a#」 を変換させたいのですよ
あいうえお#abc:a#aiueo#ymc:e#えええ
あいうえお<img src="abc/a.gif">aiueo<img src="ymc/e.gif">えええ
0948nobodyさん
2006/07/06(木) 16:14:31ID:???>>944に加えて
-1. 「#○×#」という部分があったら
あとはもう少し自分で考えよう。
つか、正規表現で置換すれば一発だけどな。
0950946
2006/07/06(木) 16:20:20ID:???$str = preg_replace('/:/','/',$str);
0951946
2006/07/06(木) 16:24:43ID:???$str = preg_replace('/\@([a-zA-Z0-9\-_~:]*)?\@/','$1',$str);
$str = preg_replace('/:/','/',$str);
}
ここまでできたのですが、肝心な<IMG src=""> にする方法がわかりません
0953nobodyさん
2006/07/06(木) 16:35:27ID:???なんだこの奇怪な正規表現。
したいことを素直に書けば preg_replace 一回で IMG の件も併せて解決ですが。
0954nobodyさん
2006/07/06(木) 16:53:31ID:???もう二度と来るなよ
0955nobodyさん
2006/07/06(木) 17:39:43ID:???「下らねぇ」というフレーズがあってこそ気軽に質問ができる。
0957nobodyさん
2006/07/06(木) 18:44:23ID:???条件の後出しは同じ質問が来るのと同義だ
0958nobodyさん
2006/07/06(木) 18:51:32ID:???0959nobodyさん
2006/07/06(木) 19:05:28ID:???せめて同じスレの中くらいは検索してはくれまいかとは思わないでもない。
0960nobodyさん
2006/07/06(木) 19:09:47ID:???検索をかけて調べてみたのですが、ちょっと心細いので確認などさせてください。
(1) 参照代入は、 $a =& $b;
(2) 引数の参照渡しは、
function Set( & $obujet ) {
$this->object =& $object; }
(3) 参照返しは、
function & Get() {
return $this->object; }
(2) へ代入する際は、
$instance->Set( & $sample );// 引数に & つけなくてもいけました。
// 今後廃止予定だそうで、付けない方がいいのかな
(3)を受け取る際は、
$sample =& $instance->Get();
注意点として、オブジェクトを参照した場合
class A { var $value; }
$a = new A();
$b =& $a; $b = null;// ここで $a にも NULL が入る。
// & は参照アドレス値を示すのかな?と思って、
$a =& new A();// 上記処理は別として新規に。
$b =& $a; $b = null;// してみましたが、$a も一緒に死にました。
関係を断ち切るさいには、unset() を使用する。
それと foreach で列挙したオブジェクトも当然別物で、
foreach( $objArray as $obj )
$obj->setNewValue("newValue"); //列挙もとの $objArray は変化なし。
厚かましいとは思うのですが、ちょっと心細いのでアドバイスや
誘導などありましたらお願いしたします。 長文でごめんなさい。
0961nobodyさん
2006/07/06(木) 19:40:40ID:???0962nobodyさん
2006/07/06(木) 19:49:24ID:???$_SERVER['PHP_SELF']とかいろいろあるけど
漏れは、
basename($_SERVER['SCRIPT_FILENAME']);
ってやってるけど。
0963nobodyさん
2006/07/06(木) 19:50:54ID:???> (2) へ代入する際は、
>$instance->Set( & $sample );// 引数に & つけなくてもいけました。
>// 今後廃止予定だそうで、付けない方がいいのかな
渡す側で参照渡しするとPHP5だと怒られなかったっけか。
0965nobodyさん
2006/07/06(木) 20:07:03ID:???カレントの絶対パスとかは使いたいと思うことが良くあるが。
0966nobodyさん
2006/07/06(木) 20:08:28ID:???ご指摘ありがとうございます。
多分5だと警告が出ると記述されていたと思います。
4ではつけてもつけなくてもいけるようなのですが、
付ける利点が余りないと思いますので、常にはずしておきたいと思います。
0967nobodyさん
2006/07/06(木) 20:55:03ID:???0968nobodyさん
2006/07/06(木) 21:10:15ID:???<form id="form1" name="form1" method="post" action="top.php">
<label>
<input name="min" type="text" id="min" size="10" />番〜<input name="max" type="text" id="max" size="10" />
番までを<input name="sleep" type="text" id="sleep" size="10" />秒ごとに
<input type="submit" name="Submit" value="送信" /><input type="hidden" name="action" value="a" />
</label>
</form>
<?
if($_POST['action'] == "a"){
$max= $_POST['min'];
$min= $_POST['max'];
$sleep= $_POST['sleep'];
for($i=$min;$i<=$max;$i++){
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
mainFrame.location.href='http://<? echo $i; ?>/';
-->
</SCRIPT>
<?
echo "http://mixi.jp/show_friend.pl?id=$i を表示<BR>";
sleep($sleep);
}
}
?>
として、下のフレームに1秒ごとにページを切り替えさせようと思ったのですがうまくいきません。
どの辺りを修正したほうが良いか教えていただけませんか?
0969nobodyさん
2006/07/06(木) 21:15:29ID:???すみませんでした。厳密に言えばPHP4の参照についてです。
5ではもともとオブジェクトの代入は参照渡しが前提である為、
それを前提で進めてしまいました。
でも>>963さんのような4と5の相違点のご指摘も非常にありがたいです。
混乱させてしまい申し訳ありません。以後気をつけたいと思います。
0972nobodyさん
2006/07/06(木) 22:44:28ID:???define("USER", "php");
define("DBPASSWORD", "hoge");
define("DBHOST", "localhost");
define("DBPORT", "5432");
$dbHandle = pg_connect("host=DBHOST port=DBPORT dbname=DBNAME user=DBUSER password=DBPASSWORD");
としたのですが、Unable to connect to PostgreSQL server: could not translate host name "DBHOST" to address: Unknown hostとでます。
なぜでしょうか。
0973nobodyさん
2006/07/06(木) 22:47:55ID:???print("host=DBHOST port=DBPORT dbname=DBNAME user=DBUSER password=DBPASSWORD");
0974nobodyさん
2006/07/06(木) 22:52:15ID:???PostgreSQLサーバに接続できません: ホスト名 "DBHOST"はアドレスに変換できませんでした。: 知らんホスト
0975nobodyさん
2006/07/06(木) 22:54:56ID:???ほんとくだらなくてすみません。すべて文字列として見られていては、
置き換えなんてしないですよね、すみません。ありがとうございます。
0977nobodyさん
2006/07/07(金) 05:22:01ID:nnAKVkbV<?
$value=30;//調べたい数字
$mode=$_get[mode];
if($mode==1){
$serch="$value<25";
}elseif($mode==2){
$serch="$value>25";
}else{
$serch="$value>15&&$value<30";
}
if($serch){
print"条件にあってます。";
}else{
print"条件に合ってません。";
}
?>
上記のような感じでifの中の検索分を条件によって変更したいんですが、
上のママだと全然動作してくれません。どなたかどのようにしたら良いかご伝授ください。
0978nobodyさん
2006/07/07(金) 05:33:25ID:???いきなり答えを教えてしまうのも君のためにならないから
ひとつだけ間違いを教えてあげる。
×serch
○search
0979977
2006/07/07(金) 05:48:34ID:nnAKVkbVご指摘ありがとうございます。
さっそく修正しました。
0981nobodyさん
2006/07/07(金) 06:09:34ID:???無理やりやるなら
eval("if($serch){
print \"条件にあってます。\";
}else{
print \"条件に合ってません。\";
} ");
でできるかも。お勧めはしないけど
0982977
2006/07/07(金) 06:10:36ID:nnAKVkbVこんな感じに追加してみましたがやっぱり動きません。全然違いますでしょうか?
$value=50;//調べたい数字
$mode=$_get[mode];
if($mode==1){
$search=("$value<25");
}elseif($mode==2){
$search=("$value>25");
}else{
$search=("$value>15&&$value<30");
}
$bar = (boolean) $search;
if($bar){
print"条件にあってます。";
}else{
print"条件に合ってません。";
}
0984nobodyさん
2006/07/07(金) 06:24:52ID:???とりあえずこんな感じでやってみれ
$value=30;//調べたい数字
$mode=$_GET["mode"];
$result = false;
switch (true) {
case $mode == 1 && $value < 25 :
$result = true;break;
case $mode == 2 && $value > 25 :
$result = true;break;
default :
if ($value > 15 && $value < 30) $result = true;
break;
}
if($result){
print "条件にあってます。";
}else{
print "条件に合ってません。";
}
0985977
2006/07/07(金) 06:26:11ID:nnAKVkbVエラーになってしまいました。
>>983
文字列を式に変換方法を探してみますが
根本的にこの記述がちがってますでしょうか?
何か同一の動作を得られる記述がございましたらご伝授下さ(><)
初歩的な質問ですみません
0986nobodyさん
2006/07/07(金) 07:57:50ID:???すまん。なにがしたいのかよく分からん
できればでいいのだが、全部の行に「結果としてどうなることを期待しているのか」を書いてくれまいか。
面倒なら別にしなくてもいいけど、オレは他の人にパスすることにする。
0988nobodyさん
2006/07/07(金) 09:27:45ID:???こんなんでどう?
<?
$value=30;//調べたい数字
$mode=$_get[mode];
if($mode==1){
$serch=create_function('$value', 'return ($value<25)? 1: 0;');
}elseif($mode==2){
$serch=create_function('$value', 'return ($value>25)? 1: 0;');
}else{
$serch=create_function('$value', 'return ($value>15&&$value<30)? 1: 0;');
}
if($serch($value)){
print"条件にあってます。";
}else{
print"条件に合ってません。";
}
?>
0989nobodyさん
2006/07/07(金) 11:20:35ID:Buqhyy/fHTML書いてるときは"としていたが、これからは'とするようにしておけば?
そもそもこれらの囲み記号自体、なくても良かったんじゃないかな?
ex. WIDTH="600" → WIDTH=600
容量も下がってよいかも。
0990933
2006/07/07(金) 11:52:44ID:???もしかしてinclude、requireされたスクリプトだと
省略できるような方法があったりするのでしょうか?
HTMLの出力はSmartyを使用して行います。
#違う質問への回答だったらゴメンナサイm(_ _)m
0992nobodyさん
2006/07/07(金) 12:12:00ID:???出すのは Content-Typeの設定ですよね。
あれでFTPサーバの指定のファイルを出力させることは
可能でしょうか?
ftp_login()あたりを使って認証を行わせてから処理をしたいと
考えてます
0993nobodyさん
2006/07/07(金) 12:16:04ID:RxV9+snN0994990
2006/07/07(金) 12:38:20ID:???逆です。埋め込まないからスクリプトの開始と終わりを省略したいのです。
Smartyの内部は詳しく知らないので{〜}を解析してHTMLを吐いていると
おもったのですが、もしかしてphpの埋め込める仕様を利用しているので
しょうか?
何にしろ省略は無理のようですね。。。
0997994
2006/07/07(金) 13:12:02ID:???スクリプトの開始と終わりの約束事を省略したいのです。
[hoge.php]
01://一行目の<?phpを省略
02:print('<?php ?>で囲んでいないけどPHPのスクリプトとして処理して欲しい。');
03://当然、終わりの?>も省略
04:[EOF]
#Smarty関係ないですね。。。
0998992
2006/07/07(金) 13:24:37ID:???できれば localhost を指定して、ID/PASSが露出しないようにしたいと
考えています。
この場合、訪問者側でアクセスするのではなく、
PHP側でアクセスしてそれを訪問者のブラウザに出力、
という形にする必要があるかと思います。
どうすればいいでしょうか・・・・orz
0999nobodyさん
2006/07/07(金) 13:29:13ID:???元は >>933 の
> #逆に<?php ?>の外に無駄な改行とかを間違えていれてしまい
> #エラーの原因にしかなっていません。。
か。じゃ
http://jp.php.net/manual/ja/language.basic-syntax.instruction-separation.php
より、終了タグを省略するとか。
あとは、どこまでのスクリプトが処理可能か分からないけど eval とか。
10001000
2006/07/07(金) 13:30:22ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。