【PHP】下らねぇ質問はID出して書き込みやがれ 124
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/11/20(火) 18:02:45.99ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 123
http://kohada.2ch.net/test/read.cgi/php/1348583995/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0721nobodyさん
2012/12/27(木) 12:59:42.11ID:???0723nobodyさん
2012/12/27(木) 14:14:38.32ID:???具体的に何がしたいのか分からないけど、もし他人のサイトから何か読み取ろうとしてるんだとしたら、
PHP Simple HTML DOM Parserとかの方がいいと思うぞ?
0724718
2012/12/27(木) 14:17:28.32ID:2W1mTkakすみません、私の認識がおかしいんだと思います
ttp://php.net/manual/ja/function.file-get-contents.php
ドキュメントには文字列に読み込む、とありますが、これは引数のfilenameというドキュメント(私が読み込ませたいのはhtml)
の内容そ整形せずそのままreturnして$htmlへ格納するという事になるんでしょうか
だとすると確かにそれをechoするとtest.htmlがそのまま出力されるので正常動作になります
>>719の処理では、%htmlへ格納したxmlしたいhtmlファイルの内容を文字列として格納し、
それをDOM生成クラスDOMDocumentのloadHTMLメソッドへ渡し、その情報を元に
loadHTMLにてxmlツリーを$xmlへ格納し、fwriteでtest.xmlへ書き込む、という動作を意図しているものと
認識しているのですが・・・
もしかして全然違う事やってますか?
0725718
2012/12/27(木) 14:19:17.57ID:2W1mTkak自分のサイトのトップページがindex.htmlなのですが、このhtmlを結構更新するのですが
その更新したhtmlの内容をxml化して、それを他の人のブログなどのRSSリーダーで表示してもらいたいのです
0726nobodyさん
2012/12/27(木) 14:20:52.67ID:???0728718
2012/12/27(木) 14:29:38.74ID:2W1mTkak>>726
マジですか・・・
もしかして一年二年やらないとできないような難易度の処理になるのでしょうか?
できれば早いうちに実装したいので、他の方が書いて公開しているサンプルコード的なのが
ないかと検索してみたらそれっぽいのを見つけ、それをほぼそのまま使用させて頂いたのが>>719なのです
もし私がやろうとしている事が可能になるようなサンプルコード、もしくはクラスや関数をご存知であれば
ご教授頂きたいのですが、ないですよね・・・・
0729nobodyさん
2012/12/27(木) 14:34:38.65ID:???まずは何を出力すればいいかを知れよ
0730nobodyさん
2012/12/27(木) 14:44:59.69ID:???0731718
2012/12/27(木) 14:49:55.86ID:I8WvgqA0magpieRSSの記述はサンプルコードが落ちてたので、それをほぼそのまま使わせて頂いてますので
なんとか自動更新にできました
0732nobodyさん
2012/12/27(木) 14:52:04.03ID:???0733nobodyさん
2012/12/27(木) 14:57:30.59ID:???0734718
2012/12/27(木) 15:07:40.25ID:I8WvgqA0他のサイト(知り合いとか)になるのか、自分のになるのかは分かりませんが、そんな感じです
今まだ適当なサーバでテストしてるだけなので、特に何かを配信しているとかはないです
やろうとしている事の参考になるサイトとかでもいいので教えて頂ければ嬉しいです
0735nobodyさん
2012/12/27(木) 16:45:02.21ID:???0736nobodyさん
2012/12/27(木) 16:50:48.51ID:LMdLghLx(
[0] => 果物,りんご,赤い
[1] => 果物,みかん,黄色い
[2] => 飲み物,リアルゴールド,黄色い
)
お伺いいたします。
phpの配列名$arrayが上記のようになっていて、値が「飲み物」で
マッチしたものの答えを[黄色い]と出力したい場合は、
どのように書けばよいでしょうか。
配列になれなくて、かれこれ2時間立ち止まってます><
0737nobodyさん
2012/12/27(木) 16:53:04.87ID:???0738nobodyさん
2012/12/27(木) 17:14:31.82ID:???foreach ($array as $value) {
list($a, $b, $c) = explode(",", $value);
if ($a == '飲み物') {
echo $c;
}
}
0739718
2012/12/27(木) 17:18:53.83ID:I8WvgqA0>>737
そういうの(fc2であればURL+/?xmlで表示されるもの)は見て、どういう構造になってるかは知っています
ただ、どうすればそれをphpにより生成できるのか、が分からないです
例えば、そういう適当なxmlをDLしてきて、手動でその中身を自分の好きなように変えて
表示させる、という事はできます
しかし、index.htmlは数時間おきに自動更新されるので、それをその度に
手動でxmlへ<item>や<link>や<title>などを書き換える事はできないので・・・
wordpressとかは使えないのでしょうか(関係ないですかね)
今色々見てるのですが
0740nobodyさん
2012/12/27(木) 17:25:45.87ID:???0741nobodyさん
2012/12/27(木) 17:31:04.24ID:???出力するだけだ
0742nobodyさん
2012/12/27(木) 17:31:22.51ID:???0743nobodyさん
2012/12/27(木) 17:34:07.60ID:???まさか何かのライブラリに頼りっきり?
0744718
2012/12/27(木) 17:57:38.53ID:I8WvgqA0xml=データ形式
rss=xmlというデータ形式で書かれた文書みたいなの
と認識してますが・・・
>>743
はい・・・
magpieRSSに任せています
0745nobodyさん
2012/12/27(木) 17:58:57.45ID:???http://toro.2ch.net/test/read.cgi/tech/1331930031/336
0746718
2012/12/27(木) 18:02:26.19ID:I8WvgqA0すみません、何日もレスがなかったので動いていないスレかと思い
こちらにも投稿してしまいました
消えます、すみませんでした
0747sage
2012/12/27(木) 18:12:03.13ID:LMdLghLxご教示いただき誠にありがとうございます!
心お優しい方に助けられ、また一つ学習できました;;
そして私自身大きな間違いに気付いたのですが、配列は以下の形式でした><
Array
(
[0] => 果物
[1] => りんご
[2] => 赤い
)
Array
(
[0] => 果物
[1] => みかん
[2] => 黄色い
)
Array
(
[0] => 飲み物
[1] => リアルゴールド
[2] => 黄色い
)
この場合で同じ答えを出す方法ってありますでしょうか??
たびたびのご質問で恐縮ですが、なにとぞよろしくお願いしますm(__)m
0748nobodyさん
2012/12/27(木) 18:24:03.03ID:???if ($value[0] == '飲み物')
echo $value[2];
0749736
2012/12/27(木) 19:09:21.20ID:jYOWBrau即レス誠にありがとうございます!
おかげさまで求めていた形式にたどり着けそうです。
ノンプログラマには配列の思考が難しいですが、おかげさまで頑張れそうです^^
0750nobodyさん
2012/12/27(木) 19:44:02.52ID:???まぁ、2ちゃんは低学歴が多いから仕方ないけど。
0752nobodyさん
2012/12/28(金) 02:48:10.56ID:mgwe0miJその一時保存ファイルである$_FILES["upfile"]["tmp_name"][$i]をブラウザに表示することって可能ですか?
二通り試してみたんですが文字化けしてできませんでした。
(1)
for($i=0; $i<count($_FILES["upfile"]["tmp_name"]); $i++){
$image = file_get_contents($_FILES["upfile"]["tmp_name"][$i]);
header("Content-type: image/jpeg");
echo $image;
}
(2)
for($i=0; $i<count($_FILES["upfile"]["tmp_name"]); $i++){
$image=ImageCreateFrmJPEG($_FILES["upfile"]["tmp_name"][$i]);
ImageJPEG($image);
}
0753nobodyさん
2012/12/28(金) 02:51:30.43ID:???0754nobodyさん
2012/12/28(金) 03:05:57.73ID:mgwe0miJ0755nobodyさん
2012/12/28(金) 03:08:08.15ID:???0756nobodyさん
2012/12/28(金) 03:16:03.83ID:???0757nobodyさん
2012/12/28(金) 03:30:51.68ID:mgwe0miJでもprint "$image";をすると、きちんとリソースIDが格納されてました。
なので俺もプログラム自体は問題ないと思います。
もしかしたらブラウザかレンサバに問題があるのかもしれないですね。。
ちなみにブラウザはfirefoxです
0758nobodyさん
2012/12/28(金) 03:35:03.15ID:???広告が自動で挟まれたりしてるのでは?
0759nobodyさん
2012/12/28(金) 03:50:57.78ID:mgwe0miJheader("Content-type: image/jpeg");
を追加したら見れるとのことなんですがcan't modifyみたいなエラーが出てきました
おかしいと思って新規ファイルにphp部分だけコピペして再度リンクさせるとなんとか表示できました
ちなみに広告は挟んでません。普通のhtml文書にphpを挟んでる感じです。
0760nobodyさん
2012/12/28(金) 03:53:16.66ID:mgwe0miJphpだけでやっちゃうと見栄えが簡素で殺風景になってしまいます…
0761nobodyさん
2012/12/28(金) 03:55:01.01ID:???HTML中に出したいならスクリプトを別出しにすれば?
0762nobodyさん
2012/12/28(金) 04:06:36.73ID:mgwe0miJだとすると、特に他にheader関数を呼び出したりはしてないんです。
いまいち良くわからないです
0763nobodyさん
2012/12/28(金) 04:08:44.46ID:mgwe0miJ0764nobodyさん
2012/12/28(金) 04:09:32.52ID:???0765nobodyさん
2012/12/28(金) 04:19:27.49ID:mgwe0miJ0766nobodyさん
2012/12/28(金) 04:19:40.56ID:???なんか
?>
<?PHP
なんか
みたいなこといなってるか、BOMとかいう落ちは無いの?
0767nobodyさん
2012/12/28(金) 04:28:59.78ID:mgwe0miJ<!doctype html>
<html><!-- InstanceBegin template="/Templates/base.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta charset="UTF-8">
<!-- InstanceBeginEditable name="doctitle" -->
<title></title>
<!-- InstanceEndEditable -->
<style type="text/css">
</style>
<link href="main.css" rel="stylesheet" type="text/css">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div class="basic" id="header">
</div>
<div id="navi">
<ul>
<li><a href="main.php">〜〜〜</a></li>
・
・
・
</ul>
</div>
<!-- InstanceBeginEditable name="contents" -->
<?php
なんか
?>
</body>
なにか問題ありそうですかね?
0768nobodyさん
2012/12/28(金) 04:39:36.54ID:???文中は無理。PHPモード以外ではtext/htmlが自動出力される。
766の人が言っているのは、単体の画像出力用スクリプト中に空白が入っていてtext/htmlヘッダが出力されているケースで、767とは違う。
てか、HTML中に画像埋め込んだとして、そのHTMLファイルのヘッダは何にするつもり?
0769nobodyさん
2012/12/28(金) 04:51:47.82ID:mgwe0miJそれと式書くときとか=の両側に一つ空白入れるようにしてるんですがその空白もダメってことですか?
HTMLファイルのヘッダを何にするとはなんですか?
一応ここのスクリプトが完成すればすべて完成なつもりなんですけど
0771nobodyさん
2012/12/28(金) 04:55:34.09ID:???0772nobodyさん
2012/12/28(金) 05:04:30.60ID:mgwe0miJ0773nobodyさん
2012/12/28(金) 05:11:08.69ID:mgwe0miJありがとうございました
0774nobodyさん
2012/12/28(金) 05:18:45.61ID:???0775nobodyさん
2012/12/28(金) 06:55:37.52ID:???0776nobodyさん
2012/12/28(金) 10:48:17.25ID:???HTMLのサイズがバカでかくなるけど
0777nobodyさん
2012/12/28(金) 11:20:35.61ID:???0778nobodyさん
2012/12/28(金) 11:51:15.78ID:???0779nobodyさん
2012/12/29(土) 18:08:39.67ID:DQDV95vyを装飾してdate("Y/m/d H:i",strtotime($status->created_at));
のような感じに変換したいのですがどこかが間違っていてうまくいきません
正しい記述を教えて下さい
0780nobodyさん
2012/12/29(土) 18:11:35.00ID:???$oStatus->created_atじゃないのか?
0781nobodyさん
2012/12/29(土) 18:17:43.45ID:DQDV95vyそこをそう治しても真っ白になってしまい表示されません
0782nobodyさん
2012/12/29(土) 18:19:50.71ID:DQDV95vyecho "<p>・\n".$sText." ".$oStatus->created_at." </p>\n";
こうです
日付を Y/m/d H:i の形式に変換したいのですがうまくいきません
0783nobodyさん
2012/12/29(土) 18:23:01.24ID:???これの実行結果を言わないとどうにもならんわ
ようは$sText.と$oStatus->created_atの中身がどういう値が入ってるのか
0784nobodyさん
2012/12/29(土) 18:32:29.68ID:???0785nobodyさん
2012/12/29(土) 18:32:37.68ID:DQDV95vyツイッターのapi使ってやってるもので
該当スレ見当たらずここでまた質問してしまってすみません
日付の実行結果はFri Dec 28 23:44:03 +0000 2012 みたいになります
stextの値は自分のつぶやき内容です
基礎知識がほぼなく見よう見まねでやってるものですみません
0786nobodyさん
2012/12/29(土) 18:34:24.33ID:DQDV95vy//twitteroauth.phpをインクルードします。ファイルへのパスはご自分で決めて下さい。
//同じディレクトリにファイルがある場合は以下でOKです。
require_once("twitteroauth.php");
//Consumer keyの値をTwitterAPI開発者ページでご確認下さい。
$consumerKey = "----------------------------";
//Consumer secretの値を格納
$consumerSecret = "-------------------------";
//Access Tokenの値を格納
$accessToken = "------------------------------";
//Access Token Secretの値を格納
$accessTokenSecret = "-------------------------";
//OAuthオブジェクトを生成する
$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
//home_timelineを取得するAPIを利用。TwitterからXML形式でデータが返ってくる
$vRequest = $twObj->OAuthRequest("http://api.twitter.com/1/statuses/user_timeline.xml","GET",array("count"=>"30"));
//XMLデータをsimplexml_load_string関数を使用してオブジェクトに変換する
$oXml = simplexml_load_string($vRequest);
//foreachでオブジェクトを展開
foreach($oXml->status as $oStatus){
$iStatusId = $oStatus->id; //つぶやきステータスID
$sText = $oStatus->text; //つぶやき
$iUserId = $oStatus->user->id; //ユーザーID
$sScreenName = $oStatus->user->screen_name; //screen_name
$sUserName = $oStatus->user->name; //ユーザー名
echo "<p>\n".$sText." <br>".$oStatus->created_at."</br> </p>\n";
}
?>
参考になるかわかりませんが一応全部だとこう記述してます
consumer keyなどの値は今は-------に置き換えてます
0788nobodyさん
2012/12/29(土) 18:38:15.49ID:DQDV95vyそれだけだとちゃんと表示されます
自分の組み込み方が悪いみたいですね
どこだかがさっぱり…
0789nobodyさん
2012/12/29(土) 18:43:00.34ID:???> timestamp
> オプションのパラメータ timestamp は、 integer 型の Unix タイムスタンプです。
>timestamp が指定されなかった場合のデフォルト値は、 現在の時刻です。
>言い換えると、デフォルトは time() の返り値となります。
ってかいてんじゃん
>Fri Dec 28 23:44:03 +0000 2012
これがinteger型のUnixタイムスタンプに見えますか?
というわけでまずこれをUnixタイムスタンプに変えてください
0790nobodyさん
2012/12/29(土) 18:43:36.58ID:???みたいに?
みたいにじゃなくて、ちゃんと書けよ?
Friのあとにカンマないの?
0791nobodyさん
2012/12/29(土) 18:44:01.33ID:???0792nobodyさん
2012/12/29(土) 18:44:37.13ID:DQDV95vyカンマはありません この通りです
0793nobodyさん
2012/12/29(土) 18:47:31.64ID:???echo date("Y/m/d H:i", strtotime("Fri Dec 28 23:44:03 +0000 2012")); //2012/12/29 08:44
本当にstrtotime($status->created_at)がFri Dec 28 23:44:03 +0000 2012なら問題無いように思えるが
0794nobodyさん
2012/12/29(土) 18:52:13.60ID:???0795nobodyさん
2012/12/29(土) 18:52:44.87ID:???0796nobodyさん
2012/12/29(土) 18:54:11.38ID:DQDV95vyecho date("Y/m/d H:i", time());
これだけだとちゃんとこの形式で今の時刻で表示されるんですけど
ツイート時の時刻を表示させるので
echo date("Y/m/d H:i", time());に $oStatus->created_at を組み込むとおかしくなるんです
".$oStatus->created_at." は Fri Dec 28 23:44:03 +0000 2012 となります
0797nobodyさん
2012/12/29(土) 18:54:41.84ID:DQDV95vy入ってないです
0798nobodyさん
2012/12/29(土) 19:01:01.94ID:DQDV95vyこれだとすべてのツイートの時刻が現在時刻で
echo date("Y/m/d H:i", time(.$oStatus->created_at.));
だとページ真っ白
echo date("Y/m/d H:i", time(".$oStatus-.">created_at));
これでもすべてのツイートの時刻が現在時刻になってしまいます
0799nobodyさん
2012/12/29(土) 19:02:25.85ID:DQDV95vy三番目のは間違いです正しくはこれですべてのツイートの時刻が現在時刻でした
0800nobodyさん
2012/12/29(土) 19:10:45.03ID:???echo date("Y/m/d H:i", time( . $oStatus->created_at . ));
ここのピリオドいらない
後apiの/1/〜.xmlはもう使うな。
0801nobodyさん
2012/12/29(土) 19:12:04.35ID:???echo date("Y/m/d H:i", strtotime($oStatus->created_at));
これでいけるだろ
0803nobodyさん
2012/12/29(土) 19:17:29.82ID:DQDV95vyこれでいけました ありがとうございました!
あとこの日付の下に<hr style="border:none;border-top:dashed 1px #CCCCCC;height:1px;color:#FFFFFF">
を挿入したいのですがこれもやろうとすると真っ白になってしまい…
教えて頂けると嬉しいです
0804nobodyさん
2012/12/29(土) 19:19:50.52ID:???0806nobodyさん
2012/12/29(土) 19:24:14.22ID:DQDV95vyecho "<p>\n".$sText." <br> ここ </br> </p>\n";
}
?>
に
date("Y/m/d H:i", strtotime($oStatus->created_at))
を入れると真っ白になってしまいます
<hr>を入れたい箇所はdateの行の下です
前後の行は>>786の通りです
0808nobodyさん
2012/12/29(土) 19:38:57.47ID:???0809nobodyさん
2012/12/29(土) 20:46:59.54ID:8IgiEK0o中の人がファイルパスを展開するときに、単にc5(\)をパスセパレータとしてパスを切ってるからってこと?
\user\home\申請書.pdfだと\usr\home\申\請書.pdfみたいな
これだと中の人を騙さない限り回避策はない??
0810nobodyさん
2012/12/29(土) 21:10:50.76ID:???0811nobodyさん
2012/12/29(土) 23:28:16.68ID:???0812nobodyさん
2012/12/30(日) 00:13:22.98ID:???5Cが円記号
file_get_contentsが日本語ファイル名を正しく処理できるかの話
0813nobodyさん
2012/12/30(日) 00:45:54.49ID:???1つだけいいこと教えてあげる
”真っ白になる”ってのは通常起こり得ない
普通はエラーメッセージが出て修正箇所がわかりやすくなる。
たぶんレンサバにさくら使ってるんだと思うけど
さくら PHP エラーでぐぐってエラー出してみればいいよ
0814nobodyさん
2012/12/30(日) 00:56:08.52ID:???真っ白になることぐらいよくあるよ
display_errors
display_startup_errors
による
開発中は表示したほうがいい
0815nobodyさん
2012/12/30(日) 04:00:45.03ID:???PHPのインストール先で.$hoge.なんて引数渡して
syntaxエラーも出ず真っ白になる確率なんて1桁%
日本じゃさくらのシェアが多いから多く感じるだろうけど
あれはCGI版PHPだったり色々他と比べても特殊
0816nobodyさん
2012/12/30(日) 04:10:23.02ID:vfz9Ho+10817nobodyさん
2012/12/30(日) 04:32:24.82ID:???const 未定義って、そんな状況想像できないんだが
0818nobodyさん
2012/12/30(日) 04:36:05.12ID:???0819nobodyさん
2012/12/30(日) 04:57:26.16ID:???0820nobodyさん
2012/12/30(日) 07:34:13.52ID:???■ このスレッドは過去ログ倉庫に格納されています