私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ第二回 自作スクリプト発表会【PHP】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
解決しました。
……ファイルのパスが間違ってましたorz
お騒がせして申し訳ありません。
本当にありがとうございました。
……ファイルのパスが間違ってましたorz
お騒がせして申し訳ありません。
本当にありがとうございました。
>>53
乳首まではセーフなのか?
乳首まではセーフなのか?
>>53
フィルタ部分わかれば逆バージョン作れそうだ
フィルタ部分わかれば逆バージョン作れそうだ
【内容】 ファイルアップローダ
【設置場所】 http://lcdata.ddo.jp:8080/2ch/upload/
【ソース】 これから作るんです
【プログラミング経験】 ないしょ
【希望評価スタイル】 機能のアイディアがほしいな(シンプル指向で考えてます)
【自分の性格】 またーり
【備考】 B90/W58/H86 です。
【設置場所】 http://lcdata.ddo.jp:8080/2ch/upload/
【ソース】 これから作るんです
【プログラミング経験】 ないしょ
【希望評価スタイル】 機能のアイディアがほしいな(シンプル指向で考えてます)
【自分の性格】 またーり
【備考】 B90/W58/H86 です。
>>65
スレ違い
スレ違い
>>69
・PHPの技術力が違う
・エレガントさが違う
それに一番大事なのは、
1日1回、スレを丸ごと保存し、古いのを捨てる、ってやり方があるけど、
それだと、アボーンに何が書いてあったかわからないのです。
よろしくお願いします!!
・PHPの技術力が違う
・エレガントさが違う
それに一番大事なのは、
1日1回、スレを丸ごと保存し、古いのを捨てる、ってやり方があるけど、
それだと、アボーンに何が書いてあったかわからないのです。
よろしくお願いします!!
>>71
> 要するにあぼーんされた部分を残しときゃいいってこと?
そうです。
> ■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
> ■アボーンがあったら、何番がアボーンになったと記録する。
>
> ↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?
いえ、考えてません。
> あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
cronを知らないのでなんとも言えません。
ただ、winXPのパソコンを24時間立ち上げておくことは可能です。
> 要するにあぼーんされた部分を残しときゃいいってこと?
そうです。
> ■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
> ■アボーンがあったら、何番がアボーンになったと記録する。
>
> ↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?
いえ、考えてません。
> あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
cronを知らないのでなんとも言えません。
ただ、winXPのパソコンを24時間立ち上げておくことは可能です。
>>72
http://lcdata.ddo.jp:8080/2ch/1156116687/68/
↑ここで作ってます。
7時までにできなかったら仕事に出動orz
ニートになって趣味プログラミングに没頭したいなぁ。
http://lcdata.ddo.jp:8080/2ch/1156116687/68/
↑ここで作ってます。
7時までにできなかったら仕事に出動orz
ニートになって趣味プログラミングに没頭したいなぁ。
メアドがテスト用にあぼーんになってたことに気づいたorz
>>74
ごめん、あぼーんって動作テストできないってことに気づいた。
肝心のあぼーん部分がほとんど検証できてないです。
一応ソース↓
http://lcdata.ddo.jp:8080/2ch/1156116687/68/index.phps
1.自分のPCにWeb鯖を立てる。
2.↑のスクリプトを設置する。
3.ブラウザから何度かアクセスして、以下のCSVファイルを吐くことを確認する。
(1)現在のスレの内容(ただしあぼーん以外/あぼーんされたレスは「あぼーん」って文字が追加される)
(2)前回のアクセスから増えているレスの内容
4.cronが使えない環境みたいなので、「コントロールパネル>タスク」を使って1時間ごとにアクセスするようにがんばる。
スクリプトがまともに動くなら、CSVファイルからあぼーんされたレスを
抽出するスクリプトを組むのは簡単だと思う。
>>74
ごめん、あぼーんって動作テストできないってことに気づいた。
肝心のあぼーん部分がほとんど検証できてないです。
一応ソース↓
http://lcdata.ddo.jp:8080/2ch/1156116687/68/index.phps
1.自分のPCにWeb鯖を立てる。
2.↑のスクリプトを設置する。
3.ブラウザから何度かアクセスして、以下のCSVファイルを吐くことを確認する。
(1)現在のスレの内容(ただしあぼーん以外/あぼーんされたレスは「あぼーん」って文字が追加される)
(2)前回のアクセスから増えているレスの内容
4.cronが使えない環境みたいなので、「コントロールパネル>タスク」を使って1時間ごとにアクセスするようにがんばる。
スクリプトがまともに動くなら、CSVファイルからあぼーんされたレスを
抽出するスクリプトを組むのは簡単だと思う。
ごめん、あぼーんのとこミスしてた。
たぶんもう大丈夫だと思います。
ソースは↑のやつを更新しました。
たぶんもう大丈夫だと思います。
ソースは↑のやつを更新しました。
$new_csv[$num]["mail"] = $matches[1]; これが34行目です。
if (!$value["abone"]) { これが72行目です。
if (!$value["abone"]) { これが72行目です。
>>77
Noticeなのでエラーではなく通知ですね。
PHPの設定で、エラーを拾うレベルが高すぎるんだと思います。
php.iniの「error_reporting」の箇所を↓に修正して、Noticeがでないようにできます。
error_reporting = E_ALL & ~E_NOTICE
エラーはふつうに表示されるのでご安心を。
ホントはNoticeも出ないように作るべきなんだろうけど時間切れです、すいません。
Noticeなのでエラーではなく通知ですね。
PHPの設定で、エラーを拾うレベルが高すぎるんだと思います。
php.iniの「error_reporting」の箇所を↓に修正して、Noticeがでないようにできます。
error_reporting = E_ALL & ~E_NOTICE
エラーはふつうに表示されるのでご安心を。
ホントはNoticeも出ないように作るべきなんだろうけど時間切れです、すいません。
>>65はどうなったの?
ファイルアップローダ程度でDB使うのってどう思いますか?
できるだけ環境を選ばず設置できるようにしたいので使いたくないんですが、
コーディングの煩雑さとパフォーマンスの誘惑に負けそうです。
僕もそうだったけど、「DBって何?聞いたことあるけど」って人は多いですよね。
敷居下げるならDBなしなのかなぁ・・・。
できるだけ環境を選ばず設置できるようにしたいので使いたくないんですが、
コーディングの煩雑さとパフォーマンスの誘惑に負けそうです。
僕もそうだったけど、「DBって何?聞いたことあるけど」って人は多いですよね。
敷居下げるならDBなしなのかなぁ・・・。
ファイルベースが特段煩雑とも思わんが・・・。
素人向けのレンタルスペースでも動くスクリプトを配布したいんなら無しでしょうね。
ただPHPが動くレンタルサーバでDBが入ってないとこなんてあんの?知らないけど。
どちらも押さえときたいなら両方作って配布するとか。
素人向けのレンタルスペースでも動くスクリプトを配布したいんなら無しでしょうね。
ただPHPが動くレンタルサーバでDBが入ってないとこなんてあんの?知らないけど。
どちらも押さえときたいなら両方作って配布するとか。
>>85
なるほど。
でもやっぱSELECTの手軽さは魅力だと思います。
DBばっか使ってるからファイルベースだとCSVしか思いつかなくて・・・。
ただ、アップローダは自鯖ってのが基本だと思ってます。
XAMPPとか使ってとりあえずDB入れたけど、使い方はさっぱりって人は多いと思うなぁ。
ってことでファイルベースでやってみます。
どうでもいいけど、前スレ見てたら以前もアップローダ作ってたこと思い出したw
完成したんだっけかなぁ・・・。
なるほど。
でもやっぱSELECTの手軽さは魅力だと思います。
DBばっか使ってるからファイルベースだとCSVしか思いつかなくて・・・。
ただ、アップローダは自鯖ってのが基本だと思ってます。
XAMPPとか使ってとりあえずDB入れたけど、使い方はさっぱりって人は多いと思うなぁ。
ってことでファイルベースでやってみます。
どうでもいいけど、前スレ見てたら以前もアップローダ作ってたこと思い出したw
完成したんだっけかなぁ・・・。
ものすごくどうでもいいことですが、
ルータを買ったらDDNSに対応してたので、URLを変更しちゃいました。
>>65のアップローダは↓で作成中です。
http://lcdata.ath.cx:8080/2ch/upload/
ルータを買ったらDDNSに対応してたので、URLを変更しちゃいました。
>>65のアップローダは↓で作成中です。
http://lcdata.ath.cx:8080/2ch/upload/
>>88
すいません、またまたURLを変更しました。
http://lcdata.ath.cx/2ch/upload/
こっちでやってます。
まだ作りかけです。
なんでポート80番が使えないんだろ?
とか思ってたんですが、スカイプが使ってることに気づいたのでorz
すいません、またまたURLを変更しました。
http://lcdata.ath.cx/2ch/upload/
こっちでやってます。
まだ作りかけです。
なんでポート80番が使えないんだろ?
とか思ってたんですが、スカイプが使ってることに気づいたのでorz
// レスごとに分解
$thread = @file_get_contents($url);
preg_match_all("/<dt>(.*)/", $thread, $matches);
$res = $matches[1];
if ($res) {
foreach ($res as $key => $value) {
// レス番号
preg_match("/^(\d*)/", $value, $matches);
$num = $matches[1] - 1;
$new_csv[$num]["num"] = $matches[1];
// メールアドレス
preg_match("/<a href=\"mailto:([^\"]*)/", $value, $matches);
$new_csv[$num]["mail"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 時刻
preg_match("/(<\/a>|<\/font>):(.[^I]*)ID:/", $value, $matches);
$new_csv[$num]["time"] = $matches[2];
// ID
preg_match("/(ID:)(.*?)<dd>/", $value, $matches);
$new_csv[$num]["id"] = $matches[2];
// レスの内容
preg_match("/<dd>(.*)/", $value, $matches);
$new_csv[$num]["res"] = $matches[1];
$abone = preg_match("/あぼ.*?ん<\/b><\/a>:あぼ.*?ん<dd>/", $value, $matches);
if ($abone) {
$new_csv[$num]["abone"] = true;
}}}
$thread = @file_get_contents($url);
preg_match_all("/<dt>(.*)/", $thread, $matches);
$res = $matches[1];
if ($res) {
foreach ($res as $key => $value) {
// レス番号
preg_match("/^(\d*)/", $value, $matches);
$num = $matches[1] - 1;
$new_csv[$num]["num"] = $matches[1];
// メールアドレス
preg_match("/<a href=\"mailto:([^\"]*)/", $value, $matches);
$new_csv[$num]["mail"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 時刻
preg_match("/(<\/a>|<\/font>):(.[^I]*)ID:/", $value, $matches);
$new_csv[$num]["time"] = $matches[2];
// ID
preg_match("/(ID:)(.*?)<dd>/", $value, $matches);
$new_csv[$num]["id"] = $matches[2];
// レスの内容
preg_match("/<dd>(.*)/", $value, $matches);
$new_csv[$num]["res"] = $matches[1];
$abone = preg_match("/あぼ.*?ん<\/b><\/a>:あぼ.*?ん<dd>/", $value, $matches);
if ($abone) {
$new_csv[$num]["abone"] = true;
}}}
>>90-91
いやあの晒されると恥ずかしいですが。
特にそこ適当なんでw
http://jp2.php.net/manual/ja/function.preg-match-all.php
意味はマニュアルに書いてあるとおりです。
どっか動きがおかしいのを修正したいのか、改造したいのか、単純に意味がわからなかったのか、
コードが汚すぎて読みにくいって指摘なのか、PHPを覚えてみようと思ってるのか、
いったいどれでしょうか?
ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
----------------------------------------
<?php
error_reporting(0); ←これ追加
----------------------------------------
だけでNoticeは出なくなると思います。
いやあの晒されると恥ずかしいですが。
特にそこ適当なんでw
http://jp2.php.net/manual/ja/function.preg-match-all.php
意味はマニュアルに書いてあるとおりです。
どっか動きがおかしいのを修正したいのか、改造したいのか、単純に意味がわからなかったのか、
コードが汚すぎて読みにくいって指摘なのか、PHPを覚えてみようと思ってるのか、
いったいどれでしょうか?
ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
----------------------------------------
<?php
error_reporting(0); ←これ追加
----------------------------------------
だけでNoticeは出なくなると思います。
超適当に説明しておくと・・・
まず、このスレのソースコードを見てみてください。
各レスが「<dt>~」って1行になってるのがわかると思います。
まず、$matchesにその各レスが入ります。
$matches[1]には、「"/^(\d*)/"」などの1番目のカッコの中身が入ります。
そんでもって、さらにそのレスに対してpreg_matchをすることによって、
レス番号とか名前とかを切り出してるんです。
$matches[1]をわざわざ$resって変数に入れてるのは特に意味はありません。
まず、このスレのソースコードを見てみてください。
各レスが「<dt>~」って1行になってるのがわかると思います。
まず、$matchesにその各レスが入ります。
$matches[1]には、「"/^(\d*)/"」などの1番目のカッコの中身が入ります。
そんでもって、さらにそのレスに対してpreg_matchをすることによって、
レス番号とか名前とかを切り出してるんです。
$matches[1]をわざわざ$resって変数に入れてるのは特に意味はありません。
>>92
有り難うございます。 確かに、http://jp2.php.net/manual/ja/function.preg-match-all.php に
↓が書いてありました。 すみません。
>$matches[0] はパターン全体にマッチした文字列の配列
>$matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字
> どっか動きがおかしいのを修正したいのか
動きは、ちゃんと動いてくれて感動しました。
>単純に意味がわからなかったのか、
はいそうです。
>PHPを覚えてみようと思ってるのか
そうです、これがメインで1行づつ読み解かしてもらってます。
> ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
> ----------------------------------------
> <?php
> error_reporting(0); ←これ追加
> ----------------------------------------
> だけでNoticeは出なくなると思います。
有り難うございます。
有り難うございます。 確かに、http://jp2.php.net/manual/ja/function.preg-match-all.php に
↓が書いてありました。 すみません。
>$matches[0] はパターン全体にマッチした文字列の配列
>$matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字
> どっか動きがおかしいのを修正したいのか
動きは、ちゃんと動いてくれて感動しました。
>単純に意味がわからなかったのか、
はいそうです。
>PHPを覚えてみようと思ってるのか
そうです、これがメインで1行づつ読み解かしてもらってます。
> ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
> ----------------------------------------
> <?php
> error_reporting(0); ←これ追加
> ----------------------------------------
> だけでNoticeは出なくなると思います。
有り難うございます。
>>97
そうですね。
他に何に使ってるわけでもないWeb鯖だし、それでいいと思います。
僕はいつも、↓みたいな感じでログを流しながら作業してます。
tail -f /apache/log/error_log
Windowsで似たようなことってできるのかなぁ。
Cygwinとか試してみよう。
そうですね。
他に何に使ってるわけでもないWeb鯖だし、それでいいと思います。
僕はいつも、↓みたいな感じでログを流しながら作業してます。
tail -f /apache/log/error_log
Windowsで似たようなことってできるのかなぁ。
Cygwinとか試してみよう。
【設置場所】 http://u9.getuploader.com/kiren/
【ソース】 http://u9.getuploader.com/kiren/download/1/chat.7z
【プログラミング経験】 3ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい
【自分の性格】 またーり
【備考】
表示部分はJQUERYで、サーバーの部分はPHPで作りました。どうも保守性が悪いような気がするので、
悪い部分があったら指摘してほしいです。
【ソース】 http://u9.getuploader.com/kiren/download/1/chat.7z
【プログラミング経験】 3ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい
【自分の性格】 またーり
【備考】
表示部分はJQUERYで、サーバーの部分はPHPで作りました。どうも保守性が悪いような気がするので、
悪い部分があったら指摘してほしいです。
類似してるかもしれないスレッド
- 【Mojavi】使ってる人が1人【PHP】 (62) - [29%] - 2019/5/9 7:45
- 【ANTI】今、あえてPerlで攻める【PHP】 (161) - [25%] - 2017/12/31 9:32
- perlスクリプト⇒phpスクリプト移植要望スレ (614) - [25%] - 2017/12/31 9:31
トップメニューへ / →のくす牧場書庫について