【PHP】下らねぇ質問はID出して書き込みやがれ 89
■ このスレッドは過去ログ倉庫に格納されています
0001●
2009/10/11(日) 21:18:54ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0651nobodyさん
2009/10/26(月) 06:26:20ID:???0652nobodyさん
2009/10/26(月) 06:34:30ID:n4efgg6Uすいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。
>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル
です。
0653nobodyさん
2009/10/26(月) 06:41:45ID:???ごめん、krsortに$linkstr関係なかったね
$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);
array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども
0654nobodyさん
2009/10/26(月) 06:43:43ID:???$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?
0656nobodyさん
2009/10/26(月) 06:50:28ID:???$rssarrayをソートかけてんのに$linkstr表示してっからだろ
0657nobodyさん
2009/10/26(月) 06:50:51ID:???krsort($rssarray);
echo "$linkstr";
froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな
0658nobodyさん
2009/10/26(月) 06:56:25ID:n4efgg6Uphpは昨日触ったばかりなのでじっくり参考にさせて頂きます。
>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。
>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。
0659nobodyさん
2009/10/26(月) 07:00:40ID:n4efgg6Ukrsort($rssarray);
for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}
これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!
0660nobodyさん
2009/10/26(月) 07:01:41ID:???の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。
$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。
0661nobodyさん
2009/10/26(月) 07:07:28ID:???オマエラ馬鹿すぎ。
0662nobodyさん
2009/10/26(月) 07:23:29ID:???リアルでどういうやつなのかぜひ見てみたいわ
0664nobodyさん
2009/10/26(月) 10:20:50ID:???0665nobodyさん
2009/10/26(月) 10:41:51ID:???0669nobodyさん
2009/10/26(月) 11:27:59ID:???俺が自動ログインで、そいつの振りして利用できる?
0670nobodyさん
2009/10/26(月) 11:33:33ID:???0671nobodyさん
2009/10/26(月) 11:34:10ID:???0672nobodyさん
2009/10/26(月) 11:44:57ID:???0673nobodyさん
2009/10/26(月) 11:49:41ID:???0675nobodyさん
2009/10/26(月) 11:57:30ID:???0676nobodyさん
2009/10/26(月) 12:18:54ID:???ことだしなあ。
0677nobodyさん
2009/10/26(月) 12:30:15ID:???個人情報があまり意味ないサイトとかだよね。
ひまわり動画とか
0679nobodyさん
2009/10/26(月) 17:53:40ID:+hgb+ZZqスレチでしたら誘導お願いします。
Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。
function A1(){
if(confirm('ごまだれですか?')){
<?php
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error());
mysql_query("commit");
?>
window.alert('内容を変更しました。')
}
}
としていますが、DBを覗いてみたところ、アップデートされていませんでした。
ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。
原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。
0680nobodyさん
2009/10/26(月) 18:00:11ID:???677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか
0681nobodyさん
2009/10/26(月) 18:08:17ID:???サーバサイドとクライアントサイドがごっちゃになってないか?
「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。
0683nobodyさん
2009/10/26(月) 18:17:35ID:???PHPの中身はともかくとしても、
PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){
}
}
になります。
0684nobodyさん
2009/10/26(月) 19:14:03ID:???if(confirm('ごまだれですか?')){
window.alert('内容を変更しました。')
}
}
抜けてた
0687nobodyさん
2009/10/26(月) 22:27:35ID:???0688nobodyさん
2009/10/26(月) 23:39:47ID:???0689nobodyさん
2009/10/27(火) 00:54:28ID:???クエリを書いておく事が出来る。
というフレームワークのアイデアを頂きました。
クレームワームの名前は「ごまふあざらあし」にしようと思います。
0690nobodyさん
2009/10/27(火) 10:58:21ID:???0691nobodyさん
2009/10/27(火) 11:16:23ID:???0692nobodyさん
2009/10/27(火) 11:34:04ID:???0693nobodyさん
2009/10/27(火) 11:44:23ID:???0695nobodyさん
2009/10/27(火) 19:25:48ID:???このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は
正規表現でひとつずつ抜き出すほかにありますか?
0698nobodyさん
2009/10/27(火) 19:39:41ID:73GIvY2Uまた、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?
0699nobodyさん
2009/10/27(火) 19:44:58ID:???$_REQUEST
0701nobodyさん
2009/10/27(火) 19:59:55ID:???POSTされた生のデータが欲しいって事かい?
parse_str(file_get_contents('php://input'), $f);
var_dump($f);
0702nobodyさん
2009/10/27(火) 21:21:52ID:???すげえ
0704nobodyさん
2009/10/28(水) 01:05:41ID:EMbPGL3Ysimplexml_load_fileで読みこんだObjectから
$q = $_GET["q"];
echo $xml->item[$q]->name;
としたいのですが、何も表示されません。
echo $xml->item[0]->name;
だと正しく表示され
$q = 0;
echo $xml->item[$q]->name;
でも正しく表示されます。
$q = $_GET["q"];
echo $q;
echo $xml->item[$q]->name;
とした場合は、$qだけが表示されました。
simplexmlでは$_GETが使えないのでしょうか?
解決策をお教えいただきたいです。
0706nobodyさん
2009/10/28(水) 01:12:57ID:EMbPGL3Yありがとうございます!
$q = $_GET["q"]+1-1;
と試してみるとうまくいきました。
ホントにお恥ずかしい限りです・・・
0707nobodyさん
2009/10/28(水) 01:16:08ID:???0708nobodyさん
2009/10/28(水) 01:17:19ID:???でおk
0709nobodyさん
2009/10/28(水) 01:18:34ID:???負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。
0710nobodyさん
2009/10/28(水) 01:20:18ID:???0712nobodyさん
2009/10/28(水) 02:52:06ID:???ただJavaの場合コンパイラが最適化してくれるので問題ないが
PHPはインタプリタなので最適化のしようがないという
つまり全部includeなんてしたらそりゃ遅くなる
0715nobodyさん
2009/10/28(水) 10:42:00ID:v0axKvNXセッションを使用する場合は必ずつけなければならないのですよね?
これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?
0716nobodyさん
2009/10/28(水) 10:43:21ID:???0717716
2009/10/28(水) 10:45:50ID:???ありがとうございます
早速組み方を考えて見ます
0718nobodyさん
2009/10/28(水) 10:47:23ID:???0719679
2009/10/28(水) 14:53:16ID:op4mA5/pそうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。
この場合は、dbedit.phpのようなものを別途つくり
<?php
include("dbedit.php");
A1();
?>
という風にすればいいのかな?
しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば
それの振り分けはどう実装したらいいでしょうか?
ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。
0721nobodyさん
2009/10/28(水) 15:30:07ID:???まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?
0722nobodyさん
2009/10/28(水) 15:43:14ID:???A1()って>>679を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw
>>720の通りにまずJavaScriptなしで動くようにしてみたら?
サーバー側でpostされた内容によってSQL発行するだけだよ
0723nobodyさん
2009/10/28(水) 18:25:52ID:???0724nobodyさん
2009/10/28(水) 18:34:44ID:???javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな
0725nobodyさん
2009/10/28(水) 18:35:06ID:???A2()で「しろごま」
A3()で「ごまふあざらあし」
を処理する気まんまんの>>679にWeb100.0
0727nobodyさん
2009/10/29(木) 00:12:37ID:???それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも
概念が足りてない
0728nobodyさん
2009/10/29(木) 03:46:52ID:???0729nobodyさん
2009/10/29(木) 09:54:12ID:xBLZE2eU【バージョン】php5.2.10
SimpleXMLElementに関する質問です。
mlから特定の属性を持った要素を削除するにはどうすれば良いのでしょうか?
例を挙げると、
『sample.xml』
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book id="00001">
<title>aaa</title>
<author>Emily</author>
</book>
<book id="00002">
<title>bbb</title>
<author>John</author>
</book>
<book id="00003">
<title>ccc</title>
<author>Mike</author>
</book>
</library>
とした場合、idが「00002」の要素を削除するという感じです。
--続く--
0730729
2009/10/29(木) 09:56:09ID:xBLZE2eUいろいろ調べたところ、
$xml = new SimpleXMLElement('sample.xml', null, true);
unset($xml->book[0]);
で削除は出来るのようですが、配列で何番目という指定ではなくid「00002」の要素を指定して削除し、
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book id="00001">
<title>aaa</title>
<author>Emily</author>
</book>
<book id="00003">
<title>ccc</title>
<author>Mike</author>
</book>
</library>
となる事が目的です。
どうぞよろしくお願いします。
0731nobodyさん
2009/10/29(木) 12:08:53ID:???foreachで出来た方いたら教えてください。
$xml = new SimpleXMLElement('sample.xml', null, true);
for ( $i = 0 ; $i < count($xml->book);$i++) {
if ( $xml->book[$i]["id"] == " 00002") {
unset( $xml->book[$i] );
}
}
echo $xml->asXML();
0733nobodyさん
2009/10/30(金) 06:12:51ID:5l/tuOOstaro@example.com
これだと4文字決め打ちになってしまいます。
preg_replace('/[a-z0-9\.\-\_]+@/i', '****@', $text);
いまのところシンプルに書ける方法で思いつくのは、
長い文字数から順に置換していく方法です。
forなど使えばシンプルには書けそうです。
preg_replace('/[a-z0-9\.\-\_]{10}@/i', '**********@', $text);
preg_replace('/[a-z0-9\.\-\_]{9}@/i', '*********@', $text);
...
でも美しい方法とは思えません。
定石、または美しい方法はありますか?
0734nobodyさん
2009/10/30(金) 08:26:53ID:???たとえば
$text = "taro@example.com";
echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);
0735nobodyさん
2009/10/30(金) 10:41:53ID:???$text = "taro@example.com";
$array = explode('@', $text);
echo str_repeat('*',strlen($array[0])) . '@' . $array[1];
0736nobodyさん
2009/10/30(金) 16:17:27ID:???$text='taro@example.com';
echo str_repeat('*', strpos($text,'@')).strstr($text,'@');
0737nobodyさん
2009/10/30(金) 17:16:58ID:5l/tuOOsありがとうございます。e修飾子とかはじめて認識しました。
Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、
>>734の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。
精進します。
0738nobodyさん
2009/10/30(金) 20:21:02ID:k7DoHVtBphpのソースコードそのものを取り込んで
そのコードを解析する
みたいな手段ってありませんか?
0739nobodyさん
2009/10/30(金) 20:25:31ID:???単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、
それだけやったって面白くないよね、手間なだけで。
何をしたいのかが良く分からん。
0740nobodyさん
2009/10/30(金) 22:48:05ID:pyIKqVVx{
private $ar,$tes;
public function __construct()
{
$this->ar = array('tes');
(ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい)
echo $this->tes;
}
}
$this-> に続く変数名を変数の値で表す方法はありますか?
宜しくお願いします。
0741nobodyさん
2009/10/30(金) 22:52:15ID:???0742nobodyさん
2009/10/30(金) 23:25:37ID:pyIKqVVx$this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。
0743nobodyさん
2009/10/31(土) 00:17:51ID:???echo $this->$var;
こんな感じで
0744nobodyさん
2009/10/31(土) 00:38:36ID:???runkit
http://jp2.php.net/manual/ja/book.runkit.php
0746nobodyさん
2009/10/31(土) 09:17:44ID:5b/pi/nwアップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに
ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、
if(copy($tmpFile, $lastFile)){unlink($tmpFile);}
という感じの処理をすると思います。
しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか?
「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか?
そもそも、上のif文でのチェックは必要なんでしょうか…
条件成立・不成立をどこまでフォローすべきか悩んでいます。
0747nobodyさん
2009/10/31(土) 15:10:42ID:???0748nobodyさん
2009/10/31(土) 15:13:55ID:???それに失敗したらアップロード処理失敗のエラー返すしかなかろ。
0749nobodyさん
2009/10/31(土) 15:30:20ID:???コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか
■ このスレッドは過去ログ倉庫に格納されています