【PHP】質問スレッドpart21【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/27 18:00ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0459457
04/09/05 12:42ID:???オレならこんな感じにする
<?php
$sampleArray=array('hoge'=>'ほげ','bar'=>'ばぁ〜','nullpo'=>'ぬるぽ','ダメポ');
$target='nullpo';// 削除するキー
$length=1;// 削除する数
print "元の配列:";
print_r($sampleArray);
print "<br>";
array_splice($sampleArray,array_search($target,array_keys($sampleArray)),$length);
print "削除後の配列:";
print_r($sampleArray);
?>
0460457
04/09/05 12:45ID:KHirYWNzあ、こっちのほうが良いかな?
<?php
$sampleArray=array('hoge'=>'ほげ','bar'=>'ばぁ〜','nullpo'=>'ぬるぽ','ダメポ');
$target='nullpo';// 削除するキー
$length=1;// 削除する数
print "元の配列:";
print_r($sampleArray);
$deleted=array_splice($sampleArray,array_search($target,array_keys($sampleArray)),$length);
print "<br>削除された要素:";
print_r($deleted);
print "<br>削除後の配列:";
print_r($sampleArray);
?>
0461nobodyさん
04/09/05 13:08ID:???具体的にどうしたいのか書けよ
0463430
04/09/05 17:58ID:ISJ8aiP8レスありがとうございました。
ありそうで以外にないんですよね・・・。
登録した対象のページを自鯖に保存しておいて、
巡回の際に保存しておいたページと比較し、
変化があればその箇所を表示する。
という仕組みではどうですかね。
巡回ページ数が三桁くらいなら問題ないと思うのですが。
0464438
04/09/05 18:58ID:???>登録した対象のページを自鯖に保存しておいて、
>巡回の際に保存しておいたページと比較し、
>変化があればその箇所を表示する。
これをlength取得という
そのやり方をやっていた訳だが、ソースを丸ごと保存していたため、
無料鯖の場合などに含まれる広告のサイズが異なることがあって、
うまく行かなかった
手動で検索開始語句、検索終了語句を予め設定しておいて、
広告を省いた部分で比較するというやり方でやってみたところ
今のところは正常に動いているようだ
http://joechin.hp.infoseek.co.jp/wwwrobots.shtml
上記の各アンテナを参考にするといいだろう
0465nobodyさん
04/09/05 19:34ID:???時刻+プロセスIDでいいと思ったんですけど、プロセスIDってどうやって取るんだろう?
0467465
04/09/05 19:51ID:???ありがとうございます。
こんなのもあるんすね。
ただ、フォームの申込番号として使おうと思っているので、
ちょっと複雑な文字列すぎるかも。
イメージとしては、
[時刻]-[文字列] をIDに申込番号にしようかと思っています。
040905195012-123 みたいな漢字で。
0468nobodyさん
04/09/05 20:08ID:???0470nobodyさん
04/09/05 21:02ID:9EYGYXzi・CGIやSSIは使えない
・.htaccessも使えない
・管理者権限を行使する必要があるものは何もできない
・鯖は管理していない
という環境で特定のIPをアク禁にしたいのですが、
セキュリティ板で訊いたら
「どこかCGIの置けるサイトから,<script src="どっかのcgi">でIPアドレス判定した
スクリプト食わせて、排除したい奴をスクリプトでどっかに飛ばす」
と言われました。
このCGIについての解説サイトを教えてください。
0471nobodyさん
04/09/05 21:29ID:???JavaScript単独ではIPアドレスを取得できないので、
CGIを使ってIPアドレスを取得及び判定する。
その結果を使ってJavaScriptのLocation.hrefかなんかで他のページに飛ばす。
てな所じゃないかなぁ。
CGIを書けない人ならどっかでCGIを使ったアクセス制限CGIを探してきて、
そいつをJavaScriptと組み合わせれば良いかと。
当然、JavaScript Offの人には無効な技だよ。
0472470
04/09/05 21:33ID:9EYGYXziぐぐると自分のところに設置するものばかり引っかかります
0473nobodyさん
04/09/05 21:43ID:???PHP全然関係ないじゃないか
0474470
04/09/05 21:55ID:9EYGYXziWeb制作→セキュリティ→WebProg
と回されてきたもので
0475nobodyさん
04/09/05 22:00ID:???0476470
04/09/05 22:01ID:???この板のアドレスが/php/だったもので代表的質問スレではないかと思って
ごめんなさい
0477nobodyさん
04/09/05 22:05ID:???板違い
ついでに誘導
http://pc5.2ch.net/test/read.cgi/hp/1088604912/
もう二度と来ないでください
0478nobodyさん
04/09/05 22:14ID:???>>470
>この板の質問スレが分からなかったんです
スレ一覧を「質問」で検索したら少なくともここよりは適切なスレが見つかるのにな
>PHPというものがよくわかりません〜
PHPが何か分からなくてもぐぐれば速攻で分かるのにな
っていうか>>1も読んでないだろ
お前みたいなのはどうせ自力じゃ何とかできないだろうから
大人しく.htaccess使える鯖に移転しろ
0479nobodyさん
04/09/05 23:11ID:???板違い厨。
質問の問いに答えれないのなら黙ってろよ。
0480nobodyさん
04/09/05 23:25ID:???久々にでてきましたなー
板違い厨。
質問の問いに答えれないのなら黙ってろよ。
0481477
04/09/05 23:30ID:???必死なだ
喪前の目は節穴か?
忍者にIPアドレス制御があるというのも知らんのか?
つーか厨は来るなって言っただろうが!
知ったかはいい加減氏ね
0482nobodyさん
04/09/05 23:55ID:???言われて初めて気がついた。
そうか2chでWEBプログラミングと言えばPHPなんだな
ニヤリ☆
0483nobodyさん
04/09/05 23:56ID:???カポコンは神
ttp://cgi.f2.aaacafe.ne.jp/~saluru/clrea1/read.php?id=1070375461
0484セキュ板から誘導した奴
04/09/06 00:04ID:???セキュ板で続ける話題じゃないのでこっちの板に誘導したんだが、
http://pc5.2ch.net/test/read.cgi/php/1086715675/l50が良い。
0485セキュ板から誘導した奴
04/09/06 00:17ID:???>>477が言ってるのはhttp://www.shinobi.jp/s-counter.htmlだな。
出来合いのがあるみたいだから、これ使えば良いんじゃないか?
0486nobodyさん
04/09/06 00:23ID:???0487nobodyさん
04/09/06 00:27ID:???馴れ合いが楽しい年頃か。
まぁ、会話して勉強も良いかもな。
がんばれ。
2ch過去ログの書き込み見る限り
自演にしか見えなかったけど。
0488nobodyさん
04/09/06 00:31ID:???(^∀ ^)<オラ!芋ども!
ノ ノ 天下のカポコン様のお通りだ!!!
| | =3 =3 =3プップッー
(芋2) ■■■■■
(芋1 @ @
カポコン イズ ゴッド! カポコン イズ ゴッド!
カポコン イズ 廃人ゲーマー!カポコン イズ 廃人ゲーマー!
CAPOCOM IS PHP!!!CAPOCOM IS PHP!!!CAPOCOM IS PHP!!!
あひる = おめーの頭のポートが甘えーだよ!!!
さんだ = Apache権限なんて捨てっしまえroot権限よりかマシ!
0489nobodyさん
04/09/06 02:44ID:???phpマニュアルを読み、様々な関数の挙動を確かめながら学んでいるのですが
ファイルの最終更新を拾う事についてつまづいています。
自分のファイルはGetlastmod()で取得できました。
しかし、その他ネット上にあるファイルの最終更新が拾えなくて悩んでいます。
filemtime()関数は根本的にだめなようですし、もしかしたら何かhttpヘッダを修得
する方法があるのかと思うのですが、何か勘違いをしているのでしょうか?
自分がやりたいことを纏めると、ブラウザで読み取り可能な複数の外部ファイルの最終更新時刻を
一括で纏めて一つのページに表示したいのです。アドバイス宜しくお願いします。
0491nobodyさん
04/09/06 03:22ID:???Perlの場合、LWP::Simpleモジュールを用いて、対象のウェブサイトの
変更日付の取得が簡単に出来てしまうが、PHPだと簡単にはいかない
http://ns1.php.gr.jp/php-jp/archives/msg11953.html
ここ辺りが参考になる
0492490
04/09/06 03:26ID:???うちではOracle8.0.xクライアント+PHP4.3.xでOra7〜Ora9まで接続実績あり。
また、Oracle8.1.xクライアント+PHP4.3.xでやはりOra7〜Ora9まで接続実績あり。
内容はoracle/oci接続でのSQL操作およびストアド呼び出し。
動作環境はRHL7.x,8,9とVine。Oracleのインストールはスレ違いだから簡便な。
(つってもどっかの本に載っているような普通のインストールだけど)。
0493489
04/09/06 03:49ID:???そのページ凄く勉強になりました。
phpの持つ関数が便利すぎて、使えそうな関数ばかり探していました。
Basic認証を使ったり、工夫してhttpヘッダから拾得するものだったとは。
ありがとうございました。
0494nobodyさん
04/09/06 05:03ID:???PEARのHTTP_Requestクラスでも同じようなことが出来る
require_once('HTTP/Request.php');
$request = new HTTP_Request('http://sample.com/index.php');
$request->sendRequest();
$response_hdr = $request->getResponseHeader();
echo "Last-Modified: ". $response_hdr["last-modified"];
また、HTTP_RequestクラスはProxy経由でのファイル取得にも対応している
0496nobodyさん
04/09/06 08:34ID:???0497456
04/09/06 09:05ID:???oracle8関数ですよね。
オラクル(クライアント)のインストールは
sqlplusでつながってるから大丈夫だと思います。
もしかしてWindows版のPHPもしくはOCIだけの問題なの?
http://www.pat.hi-ho.ne.jp/dimension/bbs/list8.shtml
ここの一番最初の記事の方と同じ現象です。
Linuxでも試してみます。
Linux用のOracleクライアント入手できるかな。。。
0499nobodyさん
04/09/06 10:54ID:???<?php
session_start();
$_SESSION['test'] = "test";
echo $_SESSION['a'];
?>
上記のようなソースで試してるのですが
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at d:\phps\tes6.php:1) in d:\phps\tes6.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\phps\tes6.php:1) in d:\phps\tes6.php on line 3
test
といったエラーが出てしまいます。
php.iniのsession.save_pathは D:/phps/tempで設定してます。
なにがおかしいのでしょうか。。
0500nobodyさん
04/09/06 11:00ID:???<?phpの前に空行とかない?
session_start()する前に何か出力してしまっているYOっていうエラーだ。
FAQなんだけどな。
0501499
04/09/06 11:16ID:???すいません解りました。
空行はないんですが、
私のエディタは、UTF-8でデフォルトで保存するように設定してありまして、
といってもUTF-8は問題ではなく、BOMをつけるようにも設定してしまっていたみたいで、それが原因でのエラーでした。orz
大変お騒がせ致しました。
0502nobodyさん
04/09/06 11:19ID:aNSEkP4I文字列を変換テーブルの通りに変換するような処理を考えます。
$tbl=Array('A'=>'エー', 'B'=>'ビー', 'C'=>'シー',・・・);
$ans=Preg_Replace("/(.)/e", '$tbl[\1]', $str);
これはたいていの場合でうまくいくのですが、たとえば変換対象文字が ']' のような文字だと
うまくいきません('$tbl[\1]' の部分が '$tbl[]]' に展開されてしまうため)。
そこで Preg_Replace の行を
$ans=Preg_Replace("/(.)/e", "$tbl['\\1']", $str);
のような感じにしたとしても、変換対象文字が '\' であったり、シングルクォートだったりすると
うまくいきません。
どんな文字でもうまく変換できる書き方ってありますか?
0503nobodyさん
04/09/06 12:34ID:dx9LAYynWindowsだと、PHPが参照するDLLが入っていない場合、
sqlplusは動いてもPHP側oracle(OCI)は動かない場合有り。
オラクルインストーラでOCIライブラリ関連がちゃんと入っているか
チェックしてみれば?
あとは...PATH(環境変数)くらいか...
0504nobodyさん
04/09/06 12:40ID:???0505nobodyさん
04/09/06 12:44ID:???0506nobodyさん
04/09/06 12:46ID:???0507nobodyさん
04/09/06 12:54ID:???0508nobodyさん
04/09/06 13:01ID:???ひろゆきすげえな
0509340
04/09/06 13:26ID:???フォームメールプログラム(perl)で入力された名前(変数)を
メール送信完了後のphpで、
「$名前様、メールありがとうございます。」
と表示するといったことがしたいのです。
なぜ、phpかというと、phpの方が分かりやすくて好きという厨房な理由です。
というわけで、perlからperlへ変数を渡す方法もよく分かりません。
だれかヘルプキボンヌです。
0510nobodyさん
04/09/06 13:43ID:???0511nobodyさん
04/09/06 13:50ID:???0512340
04/09/06 13:52ID:???0515340
04/09/06 14:09ID:???フォーム入力させるのは無理なんです。
メールフォームの関係上
0520340
04/09/06 14:45ID:???0521nobodyさん
04/09/06 14:49ID:???答えなきゃならんのか?
0522340
04/09/06 14:53ID:???GETを使えという方が一人もいらっしゃらなかったもので
まさか皆さんが思いつかないような方法を僕ごときが思いつくとは
思えませんのでねぇ
0524nobodyさん
04/09/06 14:59ID:???0525nobodyさん
04/09/06 15:10ID:???お前は天才だ。
何も教えることは無い。
一人で何でもできるだろう。
0527nobodyさん
04/09/06 15:17ID:???送られた方にはあまり関係ないが、送る方の都合やメールという方向性を考えた場合
送信側のリスクは大きくなるだろうね。
ネットカフェや不特定多数が使う端末なんかで個人情報漏洩する事も考えうる。
0530nobodyさん
04/09/06 18:06ID:???文字数制限あるし
0531軟式PHP
04/09/06 20:02ID:???0532軟式PHP
04/09/06 20:22ID:???そしてまた台風きそうだよ(´・ω・`)
0534nobodyさん
04/09/06 22:34ID:???この人って、メールフォームは Perl で、submit後のメール送信までは Perl でやるんだよね。きっと。
で、メール送信が終わったら、完了画面を出すために、Location で PHPスクリプトに移動するってことなのかな。
そこで送信者名だけをパラメータとして引き回すなら、GET でもこと足りそうだね。
でも、わざわざそれしきのことのために別スクリプトに移動しなくてもなぁ、と思うよ。
基本的に HTML に変数埋め込み程度しかできない人なのかな。
そうだったとしても、Perl スクリプトに手を入れてみるくらいのことは出来そうだけどね。
ちょっとがんばってみたら? >>340
一番シンプルかつ簡単な解にたどり着けると思うよ。
0535nobodyさん
04/09/06 23:25ID:???0536カポコン
04/09/06 23:29ID:???0537nobodyさん
04/09/07 01:04ID:???経過としては
HEADリクエストで返ってきたヘッダを1行ずつ配列に組み込み
そこからLast-ModifiedをGMT標準時間で取得し
strtotime関数でUNIX標準の時間表記に直してGMT+9の値を取得。
ここまでの事が短時間に勉強できて感動です。
ありがとうございました( つ∀`)
0538nobodyさん
04/09/07 11:13ID:kzLAff5m簡単にできると思ってやってみましたが" target="_blank"入れると、エラーになりますね…
>>404
php理解してないと、どこに" target="_blank"を入れるかわからないのでは?
0540軟式PHP
04/09/07 11:35ID:???http://tohoho.wakusei.ne.jp/html/a.htm
0541軟式PHP
04/09/07 11:35ID:???0543nobodyさん
04/09/07 11:51ID:???自作自演の勉強して下さい。
\"$url\"
この「\"」ってのがダブルクオートのエスケープシークエンスだって解んないかな。
echo "で始まってるんだからダブルクオートそのままじゃechoを閉じちゃうじゃん。
target=\"_blank\"だったり>>542だったりtarget=_blankだったり手法は幾つかあるわけで。
つーかぶっっちゃけなんも弄ってないだろ
0544nobodyさん
04/09/07 11:53ID:???PHPの話がしたい。
0545nobodyさん
04/09/07 11:57ID:???ロック機構かなんかを付けて重複処理を見張らないと危ないですか?
0546nobodyさん
04/09/07 13:18ID:???基本的に多人数で読み書きするものには、ロックは必要です。
データベースの設計によっては自動的に行われるロックで十分なこともあるし、
自分で明示的にロックしなくちゃいけないこともあります。
なんでロックしなくちゃいけないか、その理由を考えれば答えが出ると思います。
0549nobodyさん
04/09/07 13:42ID:???ごちゃごちゃ言わずにお前が答えれば早いだろ
0553546=548
04/09/07 14:02ID:91MbvsBkはずれ。
個人特定は置いといて、無駄な煽り合いを避けるために、おまえが早く答えてやってくれ。
おれは >>545 の質問を読んだ限りでは、>>546 の回答で精一杯だ。
0555軟式PHP
04/09/07 14:14ID:???まぁ整合性を取らないといけないような仕様だったら必要だけど。
0556nobodyさん
04/09/07 14:16ID:???その変数を文字列ではなく変数として扱うにはどうしたらいいのでしょうか?
具体的には下の例でdear_papaと出力する場合です。
宜しくお願いします。
string.txt
----------
dear_$mama
----------
<?php
$string = readfile("string.txt");
$mama = "papa";
echo $string;
?>
0557nobodyさん
04/09/07 14:24ID:???確認は取ってない
----string.txt------
<?php
echo "dear_".$mama;
?>
--------------------
<?php
$mama = "papa";
include("string.txt");
?>
0558nobodyさん
04/09/07 14:24ID:???string.txt の内容を
dear_<?=$mama?>
みたいにすれば、
<?php
$mama="papa";
include 'string.txt';
?>
でいけるけど、どうよ?
■ このスレッドは過去ログ倉庫に格納されています