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

【PHP】下らねぇ質問はID出して書き込みやがれ 123

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/09/25(火) 23:39:55.21ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
PHP】下らねぇ質問はID出して書き込みやがれ 122
http://kohada.2ch.net/test/read.cgi/php/1344963135/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0726nobodyさん2012/11/03(土) 23:45:20.15ID:???
>>725
スクリプト内で時間取得して差を測るのは正確とは言い切れないので
シェルから>>724でやるのがベストかと
0727nobodyさん2012/11/04(日) 14:07:49.50ID:???
そんなのは当たり前だろ
PHPが実用に耐えない言語だと知っていれば分かること
実用に耐えない言語をわざわざ使ってるんだから、時間も正確じゃなくていいんじゃね
0728nobodyさん2012/11/04(日) 14:12:53.09ID:???
AとBを比較してどっちが早いか遅いかを知りたいだけなら>>725で十分
0729nobodyさん2012/11/04(日) 14:13:59.08ID:???
>>727
へー
ならPerlやRubyからなら正確な時間を測れるんですね?
そいつはすごいや
0730nobodyさん2012/11/04(日) 16:12:01.09ID:???
>>727
「実用」なんていう相対的で計測不可能な言葉を用いて
他の言語を批判するなら「実用」が何を指すのか示せ
0731nobodyさん2012/11/04(日) 17:26:22.98ID:???
そうたい!
何ば指すか説明せんばいかんったい!
0732nobodyさん2012/11/04(日) 19:53:58.33ID:eiB+7ElR
cakePHP を一応使ってはいるけれども
折角便利なFWを使っているのにその機能を全て活かしきれていない気がするのだが。
0733nobodyさん2012/11/04(日) 20:01:47.78ID:???
独り言はツイッターでどうぞ
0734nobodyさん2012/11/04(日) 20:16:53.54ID:eiB+7ElR
2chは俺のツイッターと決めている
0735nobodyさん2012/11/04(日) 20:20:45.39ID:eiB+7ElR
次のコードを書いているんですが、どうしてもボタンにスタイルを設定する事が出来ません。
ボタンにスタイルを設定する方法、そして自動で作成される外枠についてもスタイルを
作成する方法があれば教えて頂けますでしょうか?

echo $this->Form->end('アカウントを作成する',Array('style' => 'height:50px;'));

↓  自動生成されるコード

<div class="submit">
<input type="submit" value="作成">
</div>

0736nobodyさん2012/11/04(日) 21:10:32.07ID:???
phpなんか使ってるからそんなこともできないんだろ
phpを選択したのはお前だ、だからお前で何とかしろ
0737nobodyさん2012/11/04(日) 21:32:57.92ID:???
超能力者が回答渋ってるぞ
0738nobodyさん2012/11/04(日) 21:35:16.42ID:???
2chをバカ発見機と一緒にする知障に用はない
0739nobodyさん2012/11/04(日) 21:39:15.92ID:eiB+7ElR
ここの 730 に質問したのでエスパーの方教えて下さい。
はまってぐんなりしてます><;

http://kohada.2ch.net/test/read.cgi/php/1335859124/l50
0740nobodyさん2012/11/04(日) 21:49:04.64ID:???
はだかででんぐり返ししろ
0741卑猥な2012/11/04(日) 23:28:17.38ID:???
まんぐり返し
0742nobodyさん2012/11/05(月) 08:43:12.82ID:99ifAMhu
>>677
そこの設定はしてあります
なんでUTCでerrorlogが吐かれるんでしょう・・・
07437402012/11/05(月) 09:22:39.76ID:99ifAMhu
Default timezone Asia/Tokyo

Directive Local Value Master Value
date.timezone Asia/Tokyo Asia/Tokyo

phpinfo()で確認すると、上記表記なのですが・・・
https://bugs.php.net/bug.php?id=60723ここみてもpatchの当て方がちんぷんかんぷんです
07447422012/11/05(月) 09:23:17.38ID:99ifAMhu
>>743
番号間違えました・・・
0745nobodyさん2012/11/05(月) 11:58:18.17ID:V8pVUmdF
昔、session.save_handler=storeでメモリ上にセッションを記録するという
記事を見たことがあるのですが久しぶりに検索すると情報がさっぱりないw
session.save_handler=mmcacheなどの記事の多さからすると思いっきり
騙されていたのでしょうか?
0746nobodyさん2012/11/05(月) 12:00:50.70ID:SqYU86F8
mysqlでselectし、phpでvar_dump()すると以下のようになる配列があります
(selectの抽出数は3行で、それぞれ4,9,11の数値が返ってきた)
array(3) { [0]=> array(1) { ["color"]=> string(1) "4" } [1]=> array(1) { ["color"]=> string(1) "9" } [2]=> array(1) { ["color"]=> string(2) "11" } }

この配列を
array={4,9,11}
の形に効率よく整形するにはどうしたら良いでしょうか?
foreach()でループさせて値をとるしかないんでしょうか
0747nobodyさん2012/11/05(月) 12:07:52.16ID:???
array_flatten みたいな関数が欲しいってこと?
あるかもしれないけど、内部では結局foreach()でループさせて値を取ってると思うけど
0748nobodyさん2012/11/05(月) 12:11:58.60ID:SqYU86F8
>>747
ありがとうございます。そんな関数知らなかったですが、結局foreachなんですね
phpとズレて申し訳ないですが、そもそもmysqlから直接
array={4,9,11}
の形でとる方法はないんでしょうか、無理かなぁ
0749nobodyさん2012/11/05(月) 12:48:16.60ID:???
SELECT CONCAT( 'array={' ,GROUP_CONCAT(CONVERT(color,char(10)) SEPARATOR ', '),'}') FROM TABLE
0750nobodyさん2012/11/05(月) 13:21:17.46ID:???
fetch_rowみたいなことかな
0751nobodyさん2012/11/05(月) 13:44:31.07ID:???
いやいや、PDOでいうfetchAll(PDO::FETCH_COLUMN, 0)だろw

ttp://php.net/manual/ja/pdostatement.fetchall.php
0752nobodyさん2012/11/05(月) 13:58:32.38ID:SqYU86F8
>>749
ありがとうございます
全く思いつきませんでした。sqlの関数の勉強しようと思います

>>751
これもすごいですね
pdoのオプションを全部把握してる人いるんでしょうか。開発効率全然違うでしょうね
0753nobodyさん2012/11/05(月) 14:13:23.23ID:eArr6OfY
cakePHPでどうしてもログインできない。
0754nobodyさん2012/11/05(月) 17:41:52.55ID:cCKxcvGv
2次元配列を1次元配列にしたいのですがどのようにやれば良いのか分かりません
教えてください

$arr[0][0] = 'a'; $arr[0] = 'a';
$arr[0][1] = 'b'; $arr[1] = 'b';
$arr[0][2] = 'c'; $arr[2] = 'c';
$arr[0][3] = 'd'; $arr[3] = 'd';
$arr[0][4] = 'e';
$arr[0][5] = 'f'; ・
$arr[0][6] = 'g';     ・
$arr[0][7] = 'h';→    ・
$arr[0][8] = 'i';
$arr[0][9] = 'j';
$arr[1][0] = 'k';
$arr[1][1] = 'l';
$arr[1][2] = 'm';
$arr[1][3] = 'n';
$arr[1][4] = 'o';
$arr[1][5] = 'p';
$arr[1][6] = 'q';
$arr[1][7] = 'r';
$arr[1][8] = 's';
$arr[1][9] = 't'; $arr[19] = 't';

0755nobodyさん2012/11/05(月) 17:43:33.49ID:cCKxcvGv
訂正します
$arr[0][0] = 'a';    $arr[0] = 'a';
$arr[0][1] = 'b';    $arr[1] = 'b';
$arr[0][2] = 'c';    $arr[2] = 'c';
$arr[0][3] = 'd';    $arr[3] = 'd';
$arr[0][4] = 'e';
$arr[0][5] = 'f';   ・
$arr[0][6] = 'g';      ・
$arr[0][7] = 'h';      ・
$arr[0][8] = 'i';
$arr[0][9] = 'j'; 変換→
$arr[1][0] = 'k';
$arr[1][1] = 'l';
$arr[1][2] = 'm';
$arr[1][3] = 'n';
$arr[1][4] = 'o';
$arr[1][5] = 'p';
$arr[1][6] = 'q';
$arr[1][7] = 'r';
$arr[1][8] = 's';
$arr[1][9] = 't';    $arr[19] = 't';

0756nobodyさん2012/11/05(月) 18:23:53.58ID:???
$arrFlat=array();
foreach($arr as $var1=>$val1)
foreach($val1 as $var2=>$val2)
$arrFlat[$var1*10+$var2] = $val2;
print_r($arrFlat);
0757nobodyさん2012/11/05(月) 19:58:05.23ID:cCKxcvGv
>>756
ありがとうございましたm(_ _)m
0758nobodyさん2012/11/05(月) 21:17:36.22ID:???
やっと削除されたとか、前のはdat落ちとか
0759nobodyさん2012/11/06(火) 07:18:28.12ID:???
print_r(array_merge($arr[0], $arr[1]));
でいいじゃん
0760nobodyさん2012/11/06(火) 21:40:01.61ID:???
>>759
こんな関数があるなんて知りませんでした
ありがとうございましたm(_ _)m
0761nobodyさん2012/11/07(水) 00:19:18.13ID:9XgeiKvF
phpが実行されるときは呼ばれてないけどfunction内も全てロードすると聞いたんですが
これはクラスも同じなんでしょうか?
速度的に改善したいのですが、includeされたファイル内にある
function

class
で読み込まれるタイミングの違いがあれば教えてください。
0762nobodyさん2012/11/07(水) 00:42:55.40ID:gzCebguY
お前らphp開発ってサーバに直結してやってる?
それともローカルで開発が終わってからサーバにアップ?

俺は前者でやってるw
0763nobodyさん2012/11/07(水) 00:48:58.40ID:???
>>761
ほんとに君のそれはそこがネックになっているのかね
0764nobodyさん2012/11/07(水) 00:53:15.80ID:???
ローカルで開発
0765nobodyさん2012/11/07(水) 02:30:47.68ID:???
>>758
無茶な!と言いたいけど、個人だとそういうの多いよね。
法人でもたまにあるけど。
07667612012/11/07(水) 09:40:56.26ID:tumxuWL0
>>763
functionの入ったphpをincludeすると呼んでないけど明らかに速度は落ちます
includeしなければ速度は上がります。
ですがfunctionが複雑に入り組んでいるのでバラすのも大変なので、ある程度を
分割してclassで読み込みが制御できるのであればと考えておりました。
0767nobodyさん2012/11/07(水) 09:42:49.09ID:???
参考までに何行くらいのコードの話をしてるのか教えていただけますか?
0768nobodyさん2012/11/07(水) 09:47:19.11ID:???
functionだけじゃなくて処理も入ってるんじゃないの
もしくはリモートに接続してるとか
07697612012/11/07(水) 10:40:44.58ID:tumxuWL0
>>767
ざっと見た限りですが1万5千行くらいあります

>>768
各処理を見てみましたが、基本的にすべてfunctionでラッピングされておりました
0770nobodyさん2012/11/07(水) 10:44:34.22ID:???
クラスのほうがおもいだろ。
ifなと使って使う時だけ限定的にインクルードしていけ。
0771nobodyさん2012/11/07(水) 10:48:54.38ID:???
1万5千行もあったら、C/C++でDLLなどバイナリのライブラリにしてしまえ。
そしたら読み込み時はPHPでチェックされない。
0772nobodyさん2012/11/07(水) 10:57:36.03ID:???
これ入れたらいい。



HipHop VM開発に至る経緯
Facebookでは、爆発的なユーザー数の増加に対応するため、アプリケーション実行速度の高速化が急務とされていた。
問題は、これまでに蓄積されてきた膨大な量のPHPコードベースだった。
そこでFacebookが選んだのは、アプリケーションのコードに手を加えるのではなく、PHPの実装そのものを改善する方法だった。

そのための試みとして、同社では2010年より「HipHop for PHP」で2種類のPHPの実装を進めてきた。
ひとつはPHPコードをC++コードに変換し、そこからバイナリコードを生成するHipHop compiler、もうひとつは独自のPHPインタプリタ実装であるhphpiだ。
ネイティブ実行が可能な前者の方が圧倒的にパフォーマンスは高いが、静的なコード解析しか行うことができない上に、コンパイルの待ち時間が必要なことからPHPの手軽さが犠牲になる。
Facebookでは社内のソフトウェア開発にはhphpiを使用し、外部向けの本番環境にはhphpcによって生成したバイナリコードを配備するという形で使い分けてきたという。
開発用と本番用で実行基盤が異なるというのも、テスト工程の増加など様々な面で問題をはらんでいることは想像に難くない。
そこで同社が次の一手として開発したのがhhvmというわけだ。

hhvmはJIT(Just-In-Time)コンパイラを搭載し、実行時に動的にバイナリコードを生成する。
これによってhphpcのようにPHPコードをC++に変換することなく、直接高速に実行することができるようになる。
サービスの開発から公開までの全域にわたって効率化を実現できることから、Facebook社内での注目度は高いという。

Facebook社内ではすでにhphpiに代わってhhvmが使われはじめており、将来的にはすべてのPHP実行環境をhhvmに置き換える計画だという。
hhvmは従来のHipHop for PHPと同様にオープンソースで開発されており、GitHubにリポジトリが公開されている。
PHPの言語仕様そのものは変更されていないので、既存のPHPコードでも実行環境を置き換えるだけで利用することができる。PHPを使ったアプリケーションの高速化を求める開発者にとっては注目すべき取り組みと言えるだろう。
http://builder.japan.zdnet.com/script/35012295/
0773nobodyさん2012/11/07(水) 14:25:56.37ID:2sStCN3A
配列ないの添え字を動的に設定したいです

たとえば

for($i=0;$i<10;$i++){
echo $test['test'.$i];
}

みたいにして、test1、test2、test3
っていうふうに変えたいんですが、上記の通りだとうまくいきません
どうすればいいでしょうか?
0774nobodyさん2012/11/07(水) 14:39:44.36ID:???
>>773
どううまくいかないのか?
うちじゃうまくいくけどね。
0775nobodyさん2012/11/07(水) 14:39:51.50ID:???
echoの前に、代入してください
0776nobodyさん2012/11/07(水) 16:45:41.79ID:???
エラーメッセージキボンヌ
0777nobodyさん2012/11/07(水) 16:47:02.77ID:2sStCN3A
>>769
わかりまりました
ありがとうござりました
0778nobodyさん2012/11/07(水) 17:27:37.44ID:HSMtZo+3
Google → Aページ → リダイレクトしてBページ

といった遷移がなされる場合に
BページでGoogleからの検索ワードが取得したい為
最初の(Googleでの)リファラが欲しいのですが
どのようにリダイレクトさせればいいでしょうか?
07797782012/11/07(水) 18:54:34.66ID:???
普通に↓でイケました。お騒がせしました。
header("Location: " . $url);
0780nobodyさん2012/11/07(水) 23:44:55.12ID:???
>>779
それ無視するブラウザあるからHTMLで吐き出したほうがいいかも
07817782012/11/08(木) 00:37:31.26ID:???
>>780
HTMLで吐き出した方がいいというのはどういう意味でしょうか?
0782nobodyさん2012/11/08(木) 12:56:19.26ID:???
setcookie関数でクッキーを作成すると、どこに作成されますか?

ブラウザはwindowsのIEです。

C:\Documents and Settings\ユーザ\Cookies
だと思ったんですが見当たりません。
$_COOKIE関数でセットした値を取得できるので、セット自体はされているのですが。


宜しくお願いします
0783nobodyさん2012/11/08(木) 13:07:23.32ID:???
>>782
すいません、自己解決できました。
setcookie関数の構文記述に誤りがあり、クライアント側に作成されていませんでした。

場所はC:\Documents and Settings\ユーザ\Cookiesでした。
0784nobodyさん2012/11/08(木) 18:36:46.59ID:???
>>782-783 >>1
0785nobodyさん2012/11/08(木) 23:34:29.59ID:f/f3pzKJ
(mb_系でない)文字列関数は、マルチバイト文字の後続バイトにマッチしてしまうのがいけないのであり、
先行バイトと後続バイトがはっきり区別できるUTF-8では問題ない、という解釈は合っているでしょうか。
置換がpreg_replaceやmb_ereg_replaceではなくstr_replaceで済むのならその方が楽ですし、
正規表現ではなくただの置換の方が内部の処理量も少なくて済むような気がするのですが。
0786nobodyさん2012/11/09(金) 05:17:11.99ID:???
はっきり区別できる根拠は?
0787nobodyさん2012/11/09(金) 05:19:04.13ID:???
>>778
検索エンジンを騙して無駄な検索結果を増やす行為
07887852012/11/09(金) 08:26:28.79ID:fHegqpBv
>>786
ビット列10で始まるバイトが後続バイト、それ以外が先頭バイトだと思いますが、例外でもあるんでしょうか?
0789nobodyさん2012/11/09(金) 16:54:02.12ID:SzfafX2y
>>787
いや、PC用のページとスマホ用のページで振り分けたいだけですよ
0790nobodyさん2012/11/09(金) 17:13:03.25ID:rpNskGII
mode_write つてのをつかって

@ http://mankoumai.com/test.php

でこれまでアクセスしていたんですが

A http://mankoumai.com/test

でもアクセス出来る様にしたいです。
また、@でアクセスが来た場合にはAにリダイレクトさせるにはどうしたらいいでしょうか?
0791nobodyさん2012/11/09(金) 17:37:28.37ID:???
mod_rewriteスレへ
0792nobodyさん2012/11/09(金) 23:14:28.63ID:???
マンコがうまいわけねーだろ!
0793nobodyさん2012/11/09(金) 23:18:13.73ID:VsVEo1TJ
質問です

コミュニティーサイトを作って
その中でメンバー同士がメッセージを送れる仕組みを用意したとします。

荒らしが現れたらスパムメッセージを送りまくるようになると思います。
それを防ぐためにメッセージ送信時にcaptcha認証を行うのは
一般的ですか?他に何かいい対策はありますか?
0794nobodyさん2012/11/10(土) 00:21:55.25ID:???
ログインユーザーにまでCAPTCHAを求めるとウザい

1分とか1時間に送れるメッセージ数に上限を設ける
一度に多数の人に送れないようにする
同じ内容を同じ人に続けて送れないようにする
NGワードを設ける
サイト外(のメールアドレス)には送れないようにする

とか考えたらいくらでも思い浮かぶのが普通

他のサイトがどうしてるか学ぶべき
0795nobodyさん2012/11/10(土) 01:04:32.30ID:xD0ruwyN
奇遇だな。

荒らすのが趣味な俺様が通りますね。
0796nobodyさん2012/11/10(土) 01:08:09.64ID:/09E68J7
>>794
貴重なご意見ありがとう

それらを規制するための具体的な数値でのルール決めが非常にシビアになってきますね。
0797nobodyさん2012/11/10(土) 01:23:42.70ID:???
WEB+DB PRESS って本読んでる人いる?
0798nobodyさん2012/11/10(土) 11:21:45.36ID:???
>>796
ユーザー自身に嵐をブロックさせるとか
「この情報を管理者に報告」とかで荒らされた人に報告してもらって
NGレベルが一定より上がったら管理者が目視確認して対処すれば良い
そのあと強制退会とかさ

>>797
たまに見るね、今出てるのは安全なサイト構築とかだっけ?
「安全な…」とか言われると見なきゃいけないような気がしてくるw
0799nobodyさん2012/11/10(土) 11:45:52.82ID:???
>>797
10年分のが全部入ってるDVD買ったわ
0800nobodyさん2012/11/10(土) 14:37:38.21ID:???
>>796
お前の作った産廃なんて誰も使わないのに何でそれな心配してるの?
まさか産廃を使ってもらえると思ってるの?w
ウ\゙\ァ\カは無敵だなwwwwwwwwwwwwwww
0801nobodyさん2012/11/10(土) 15:10:05.05ID:6XHTxJnV
>>798
ありがとう

>>800
現時点でもすでに3万人のアクティブユーザーがいて
その中には荒らしもいて困ってる
0802nobodyさん2012/11/10(土) 15:43:46.49ID:+S6U6CYO
phpで二つの変数に同じ値を足すときってどうしますか?
$a = "piyo";
$b = "mage";
$a .= "hoge";
$b .= "hoge";
みたいなときに、.="hoge;をまとめられますか?
0803nobodyさん2012/11/10(土) 15:50:11.79ID:???
>>802
$a & $b .="hoge";
0804nobodyさん2012/11/10(土) 15:52:15.13ID:???
>>802
マルチ乙
ウ\゛\ァ\カ
0805nobodyさん2012/11/10(土) 15:53:39.56ID:???
>>804
お前はさっきから何と戦ってるんだ?
池沼?
0806nobodyさん2012/11/10(土) 15:55:14.63ID:+S6U6CYO
>>803
それってバージョン依存な書き方だったりしますか?
僕の5.3.5環境だと結果が$a=>"piyo",$b=>"magehoge";になります
0807nobodyさん2012/11/10(土) 15:56:45.22ID:???
>>806
$a && $b に変更しる
0808nobodyさん2012/11/10(土) 15:57:43.50ID:+S6U6CYO
>>807
$a = "piyo";
$b = "mage";
$a && $b .= "hoge";
とやってもpiyoとmagehogeになります。。
0809nobodyさん2012/11/10(土) 16:30:30.10ID:???
>>808
$a || $b だとどうよ?
0810nobodyさん2012/11/10(土) 16:34:15.27ID:+S6U6CYO
>>809
$a || $b .= "hoge"; はpiyoとmageのままです
ちなみにあなたの環境では&でできたんですか?
0811nobodyさん2012/11/10(土) 17:24:20.37ID:???
>>810
いいえ
あくまで貴方を弄ぶために適当に書いてみました

ウ\゛\ァ\カw
0812nobodyさん2012/11/10(土) 23:08:00.59ID:+S6U6CYO
>>811
要するにわからないってことですか・・・・
0813nobodyさん2012/11/10(土) 23:46:58.31ID:slna0j84
$a=(object)["0"=>"zero","a"=>"aaa"];
この状態でzeroにアクセスするにはどうしたらよいのでしょうか
$a->0や$a[0]は当然エラーが出てしまいますし
foreachで順番に回すしか無いのでしょうか。

また、この状態で"1"=>"one"を追加するにもどうしたらよいのでしょうか
これもやっぱり、$a[]="one"、$a->1="one"は出来ませんし…
0814nobodyさん2012/11/11(日) 00:09:30.89ID:???
>>801
好奇心で聞くけど、3万人ユーザーいたら広告で食える?
0815nobodyさん2012/11/11(日) 00:37:11.24ID:???
>>812
PHPなんか使ってるからそんなところで無駄な時間使うんだろ

これ以上時間と労力を無駄にしたくなかったらさっさと他言語に移行しろ

人生を無駄にしたくて仕方ない場合のみPHPを使い続けろ
0816nobodyさん2012/11/11(日) 01:34:23.00ID:???
>>815
嫌いな言語のスレでうだうだ言ってるのは時間の無駄じゃないのかな?
0817nobodyさん2012/11/11(日) 01:41:38.05ID:???
>>812
出来ないことで、いつまで荒らしと遊んでるの? さっさとNG

>>813
current($a) で

$a->{0}でアクセスできるんだけど、それは $a["0"]であって、
この方法で変換した場合は、 $a[0](のようなもの)なので、ソレを直接とる記法がない。
arrayに変換してやれば戻るけど
0818nobodyさん2012/11/11(日) 06:59:58.94ID:???
>>813
PHPの数ある欠陥の一つだな
0819nobodyさん2012/11/11(日) 07:13:11.33ID:???
ことわ
0820nobodyさん2012/11/11(日) 14:06:46.12ID:A0HHXkrC
simplexml_loadのパース精度はよくない。全オプションをやってみたが。

<?php
$opt=array();
$opt['LIBXML_COMPACT']=LIBXML_COMPACT;
$opt['LIBXML_DTDATTR']=LIBXML_DTDATTR;
$opt['LIBXML_DTDLOAD']=LIBXML_DTDLOAD;
//$opt['LIBXML_DTDVALID']=LIBXML_DTDVALID;//DTD(Document Type Definition:文書型宣言)を利用することで、パーサがデータの妥当性を検証。
$opt['LIBXML_NOBLANKS']=LIBXML_NOBLANKS;
$opt['LIBXML_NOCDATA']=LIBXML_NOCDATA;
$opt['LIBXML_NOEMPTYTAG']=LIBXML_NOEMPTYTAG;
$opt['LIBXML_NOENT']=LIBXML_NOENT;
$opt['LIBXML_NOERROR']=LIBXML_NOERROR;
$opt['LIBXML_NONET']=LIBXML_NONET;
$opt['LIBXML_NOWARNING']=LIBXML_NOWARNING;
$opt['LIBXML_NOXMLDECL']=LIBXML_NOXMLDECL;
$opt['LIBXML_NSCLEAN']=LIBXML_NSCLEAN;
$opt['LIBXML_PARSEHUGE']=LIBXML_PARSEHUGE;
$opt['LIBXML_XINCLUDE']=LIBXML_XINCLUDE;
$opt['LIBXML_ERR_ERROR']=LIBXML_ERR_ERROR;
$opt['LIBXML_ERR_FATAL']=LIBXML_ERR_FATAL;
$opt['LIBXML_ERR_NONE']=LIBXML_ERR_NONE;
$opt['LIBXML_ERR_WARNING']=LIBXML_ERR_WARNING;
$opt['LIBXML_VERSION']=LIBXML_VERSION;
//$opt['LIBXML_DOTTED_VERSION']=LIBXML_DOTTED_VERSION;
@mkdir("txt");
$xmltxt=file_get_contents("http://www.dailymotion.com/rss/jp/1";);
foreach ( $opt as $key => $val) {
echo "$key\n";
$rss = simplexml_load_string($xmltxt,"SimpleXMLElement", $val);
file_put_contents( "txt/$key.txt" , print_r($rss,true) );
}
0821nobodyさん2012/11/11(日) 15:00:14.57ID:???
rssはこれか。


<?php
include_once('simplepie/autoloader.php');
@mkdir("cache");
$feed = new SimplePie();
$feed->set_feed_url("http://www.dailymotion.com/rss/jp/1";);
$feed->init();
$feed = $feed->data['child']['']['rss']['0']['child']['']['channel']['0']['child'][''];
echo "maximum of the allocated memory = " . memory_get_peak_usage(true)/(1<<20) . "M byte\n";
file_put_contents( "SimplePie.txt" , print_r($feed, true) );
0822nobodyさん2012/11/12(月) 11:41:01.71ID:IhXlrx2G
どこで聞けばいいかわからないのでここで質問させてください。
ブログサービスにはping通知のサービスがあると思いますが、
自分のドメインでそのpingを受信することはできないのでしょうか?

pingがどういう形式で送信されているのかがわかればできそうなんですが、
それがわかりません。
0823nobodyさん2012/11/12(月) 12:34:19.69ID:???
>>822
Google先生に「更新PING XML PHP」で聞けば
どういうフォーマットで送られてきているか
書いてあるサイトをわんさか教えてくれるぜ!
0824nobodyさん2012/11/12(月) 13:02:34.44ID:IhXlrx2G
>>817
ありがとうございます

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>自分のサイトのタイトル</value></param>
<param><value>自分のサイトのURL</value></param>
</params>
</methodCall>

こんな書式見つけたんですが、pingって更新した記事のURLは送ってこないのでしょうか?
事前にブログ運営者のRSSフィードURLを調べといて、更新通知があったらそっから最新記事を取得するって感じでしょうか?
0825nobodyさん2012/11/12(月) 14:21:04.70ID:???
pingも分からないゴ-ミがコーディングやっててマジでウケるw
さすがphpを選ぶだけのことはあるなw
■ このスレッドは過去ログ倉庫に格納されています