【PHP】下らねぇ質問はID出して書き込みやがれ 89
at PHP
[前50を表示]
600:nobodyさん
09/10/24 22:39:54
>>599
で、何ができないの?PHP?本買え
601:nobodyさん
09/10/24 22:39:57
>>599
そのまんまじゃね?何が問題なんだ?
602:nobodyさん
09/10/24 22:40:40
全部作らせる気かww
最近の若者は安易だなぁ
603:nobodyさん
09/10/24 22:45:01 aM0DiAaq
くだらなすぎてごめんなさい・・・
604:nobodyさん
09/10/24 22:45:53
くだらないというか何が(どこが)できないのかが分からんのだよ
605:nobodyさん
09/10/24 22:50:44 aM0DiAaq
アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。
例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、
青を選んだら青色が好きな人の性格について書いてあるページです。
アバウトすぎてごめんなさい。
606:nobodyさん
09/10/24 22:51:31 aM0DiAaq
今こんな感じで書いているところです。。
<html>
<head><title>心理テスト</title></head>
<body>
<h1>メンタル編</h1>
<p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか?
<?php
// スクリプト名取得
$script = basename(__FILE__);
// メンバー名配列
$member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド",
"イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶");
// 投票がある場合
if ($_POST['COLOR'] > 0) {
// 投票者番号
$no = $_POST['COLOR'];
// MySQLに接続
$db = mysql_connect("localhost", "root", "root");
// DB選択
mysql_select_db("graduation", $db);
// insert文実行
mysql_query("insert into ninki values(null, {$no},
now())", $db);
// DB切断
mysql_close($db);
}
?>
607:nobodyさん
09/10/24 22:52:32 aM0DiAaq
<p><font color="red"><?= $msg ?></font></p>
<form method="POST" action="<?= $script ?>">
<p><input type="radio" name="COLOR" value="1">赤いルビー</p>
<p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p>
<p><input type="radio" name="COLOR" value="3">ゴールド</p>
<p><input type="radio" name="COLOR" value="4">イエロートパーズ</p>
<p><input type="radio" name="COLOR" value="5">緑のヒスイ</p>
<p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p>
<p><input type="radio" name="COLOR" value="7">紫水晶</p>
<p><input type="radio" name="COLOR" value="8">白の水晶</p>
<p><input type="submit" value="投票"></p>
</body></html>
こんな感じです。
ごめんなさい。
608:nobodyさん
09/10/24 22:56:06
>>607
switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}
あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ
609:nobodyさん
09/10/24 22:58:11
case 1:
ね":"を忘れずに
610:nobodyさん
09/10/24 23:01:10 aM0DiAaq
>>608
>>609
やってみます
情けない質問に答えてもらってありがとうございます
611:nobodyさん
09/10/24 23:05:20
情けない質問wwww
612:nobodyさん
09/10/24 23:24:44 TvoLhocc
switch内のbreak;のインデントってたまに悩むけどどうしてますか?
俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608みたいに書くとcase処理内な感じがしない違和感
613:nobodyさん
09/10/24 23:34:28
>>612
その書き込みエスケープされただけだお
case $a:
break;
が多いけどおれも結構曖昧だ
614:nobodyさん
09/10/24 23:35:29
逆だ
case $a:
break;
615:nobodyさん
09/10/24 23:41:58
switch ($a) {
case 0:
do_something();
break;
case 1:
do_something();
break;
default:
do_something();
break;
}
どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね
616:nobodyさん
09/10/24 23:42:52
下らねぇ回答はID出さないでここに書き込みやがれ 90
617:nobodyさん
09/10/25 00:28:25
次スレの季節か
618:nobodyさん
09/10/25 00:56:35
switch文で気になったのでメモ
switch('a'){
case 'a'; //末尾が ;
}
と
switch('a'){
case 'a': //末尾が :
}
は等価
619:nobodyさん
09/10/25 05:29:05 TWuysydg
$test = " 1c 2c 3c!";
$search = "/([^0-9])([0-9])c([^0-9])/";
$replace = "$1c$2$3";
echo preg_replace($search, $replace, $test);
これで、期待する出力は
c1 c2 c3!
実際の出力は
c1 2c c3!
質問は、
・なぜこのような動作になるのでしょうか?
・どうすれば解決できるでしょうか?
後、欲しいアイデアとして
・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい
(ただし"11c"のような形の場合は変化させないでほしい)
620:nobodyさん
09/10/25 05:53:15
explodeで配列にわけて
substrで文字を抜き出したのを結合すえばええ
621:nobodyさん
09/10/25 10:22:02
認定回答者採用試験は今日までですので頑張って回答してください
622:nobodyさん
09/10/25 11:14:26
>>619
$test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";
623:nobodyさん
09/10/25 13:01:49
トリもIDも出さずに試験官気取りとな?
624:nobodyさん
09/10/25 13:03:49
>>623
お前鬱病だろ
625:nobodyさん
09/10/25 21:45:40
phpでシングルトンって意味あるの?
リクエスト終わったらメモリ開放されるんでしょ?
626:nobodyさん
09/10/25 22:19:54
2行目は正解。
1リクエストの中だけでも必要なときはあるさ。
627:nobodyさん
09/10/25 22:38:37 Ltpwqrvc
mod_rewriteを使ってクリックカウントをとりたいのですが
以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?
例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する
//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2
//count.php側
header("Location: URLリンク(www.example.com)");
628:nobodyさん
09/10/25 22:42:08
readfile使えばいいと思うよ
629:627
09/10/25 22:54:09 Ltpwqrvc
>>628
やってみましたがだめでした・・・。
630:nobodyさん
09/10/25 23:07:22
count.phpがabc01.jpgを出力するんだぜ。
631:nobodyさん
09/10/25 23:15:10
リライトログ見てみたら?吐いてなかったら吐かせて
632:627
09/10/26 00:20:09 8+sjsIrs
>>630-631
アドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。
633:627
09/10/26 00:33:00 8+sjsIrs
>>628
readfileも必要だったみたいです。
ありがとうございました。
634:nobodyさん
09/10/26 05:27:50
質問させてください。
<html>
<body>
<?php include("./hoge.php");?>
</body>
</html>
で閲覧に問題はないのですが、
ソースを見ると
<html>
<body>
<html><body></body></html>
</body>
</html>
と2度使われ重複している状態です。
hoge.phpには<html><body></body></html>などの記述はしておりません。
問題の箇所等ご指摘願います。
635:nobodyさん
09/10/26 05:31:55
hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと
それだけではなんともいえない
636:nobodyさん
09/10/26 05:40:09
>>635
ありがとうございます。
hoge.phpの中身はモバイル版AdSenseコードのみです。
637:nobodyさん
09/10/26 05:48:48 n4efgg6U
質問です。MagpieRSSを使っています。
日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。
$rssurl = array ();
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(rss.asahi.com)";
foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);
foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;
krsort($rssarray);
echo "$linkstr";
638:nobodyさん
09/10/26 05:52:16
>>637
$linkstrは全て想定通りになってるの?
639:nobodyさん
09/10/26 05:55:31 n4efgg6U
>>638
はい、順序以外は期待通りの実行結果です。
640:nobodyさん
09/10/26 06:00:30
じゃkrsortの問題ですね
どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか?
ちなみに第二引数にソートフラグを指定して挙動を変えることができる
URLリンク(www.php.net)
今回の場合は全て文字列だから関係ないかもしれないけど
641:nobodyさん
09/10/26 06:09:43 n4efgg6U
RSSの取得を下のようにしたとして
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合)
10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ
(長いので削ってます)
このような結果が出ます。
日付でソートをかけているつもりですが、まったくされていません。
$rssurl配列の上から順に表示されています。
642:nobodyさん
09/10/26 06:10:21
>>636
echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど
643:nobodyさん
09/10/26 06:11:55
>日付でソートをかけているつもり
使う関数まちがってるんじゃね?
krsortって逆順ソートだよ
644:nobodyさん
09/10/26 06:15:55
日付だから逆順であってんでねーの?
645:nobodyさん
09/10/26 06:17:41
いやいや
ただ単にキーを逆順にするソートってこと
ユーザー定義のソートをしたいのならusort()とかじゃないと
646:nobodyさん
09/10/26 06:18:06 n4efgg6U
$rssurl[] = "URLリンク(mainichi.jp)"; //まんたんウェブ
$rssurl[] = "URLリンク(mainichi.jp)"; //エンタメ
$rssurl[] = "URLリンク(mainichi.pheedo.jp)"; //ニュース速報(総合)
$rssurl[] = "URLリンク(mainichi.jp)"; //スポーツ
10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合)
10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ
例がわかりにくかったので書き直しました。
647:645
09/10/26 06:19:49
あ、ごめん。
よくよんでなかったw
>日付でソートをかけているつもりですが、まったくされていません。
ってかいてたからてっきり
データ見る限りだとkrsortでよさそうだね
648:645
09/10/26 06:20:38
とか書いた瞬間にデータの日付ルールが変わった件
649:nobodyさん
09/10/26 06:22:04 n4efgg6U
usortにしたらエラーがでました。
Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30
>>648
26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。
650:nobodyさん
09/10/26 06:25:26
>usortにしたらエラーがでました。
マニュアルみようぜ
URLリンク(www.php.net)
krsort($rssarray);を
usort($rssarray);にかえただけじゃだめ
第2引数入れないと
651:nobodyさん
09/10/26 06:26:20
それぞれどんな$linkstrなの?
652:nobodyさん
09/10/26 06:34:30 n4efgg6U
>>650
すいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。
>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル
です。
653:nobodyさん
09/10/26 06:41:45
>>652
ごめん、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)
}
こちらで試してみたら想定どおりにソートされてる気がするけども
654:nobodyさん
09/10/26 06:43:43
usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね
$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?
655:645
09/10/26 06:48:17
なんか話をややこしくしてすまんかった
krsortの使い方を勘違いしてたようだ
>>653でよさそう
656:nobodyさん
09/10/26 06:50:28
オマエラ馬鹿じゃね?
$rssarrayをソートかけてんのに$linkstr表示してっからだろ
657:nobodyさん
09/10/26 06:50:51
>>637
krsort($rssarray);
echo "$linkstr";
froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな
658:nobodyさん
09/10/26 06:56:25 n4efgg6U
>>653
phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。
>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。
>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。
659:nobodyさん
09/10/26 07:00:40 n4efgg6U
foreachを閉じた後
krsort($rssarray);
for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}
これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!
660:nobodyさん
09/10/26 07:01:41
echo "$linkstr";
の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。
$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。
661:nobodyさん
09/10/26 07:07:28
終わった後に言っても仕方ねぇだろ無能。
オマエラ馬鹿すぎ。
662:nobodyさん
09/10/26 07:23:29
煽るのすきだね
リアルでどういうやつなのかぜひ見てみたいわ
663:nobodyさん
09/10/26 07:36:34
>>662
的外れな回答する奴よりはマトモだよ
664:nobodyさん
09/10/26 10:20:50
それはない
665:nobodyさん
09/10/26 10:41:51
クッキーにパスワード保存するのはあれだよね。次回から自動でログインとかどうすればいいんだろう
666:nobodyさん
09/10/26 10:50:47
>>665
>>!
667:nobodyさん
09/10/26 10:58:01
>>665
何かユニークIDを発行してそれを保存
668:nobodyさん
09/10/26 11:15:48
>>665
なにか問題でも?
669:nobodyさん
09/10/26 11:27:59
他人の端末のクッキーコピって来たら、
俺が自動ログインで、そいつの振りして利用できる?
670:nobodyさん
09/10/26 11:33:33
できるよ
671:nobodyさん
09/10/26 11:34:10
そもそも他人に簡単に起動を許す、または誰でも簡単に利用できるようなPCのセキュリティに問題アリ
672:nobodyさん
09/10/26 11:44:57
パスワードだけは暗号化すれば良さそうだね
673:nobodyさん
09/10/26 11:49:41
暗号化が簡単ならね
674:nobodyさん
09/10/26 11:54:38
クッキーなんか暗号化必要ないんじゃない?
>>673
暗号化なんて簡単じゃん
675:nobodyさん
09/10/26 11:57:30
簡単ならおk
676:nobodyさん
09/10/26 12:18:54
そもそもクッキーコピーできるような状況なら、そのPCで他人がブラウザ使ってもログイン可能って
ことだしなあ。
677:nobodyさん
09/10/26 12:30:15
そもそも自動ログインなんて許すのは金の絡まないサイトとか
個人情報があまり意味ないサイトとかだよね。
ひまわり動画とか
678:nobodyさん
09/10/26 16:44:56
>>677
そういう問題か? 糞だな^^;
679:nobodyさん
09/10/26 17:53:40 +hgb+ZZq
一応>>1にMySQL等は別スレとありますが、php+MySQLに対してのスレがなかったので、此方で宜しかったでしょうか?
スレチでしたら誘導お願いします。
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が実行されます。
原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。
680:nobodyさん
09/10/26 18:00:11
>>678
677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか
681:nobodyさん
09/10/26 18:08:17
>>679
サーバサイドとクライアントサイドがごっちゃになってないか?
「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。
682:nobodyさん
09/10/26 18:09:49
>>679
そのHOSTからmysqlで同じSQLを手で入れるとどうなるよ
トランザクションの使い方も間違ってる
683:nobodyさん
09/10/26 18:17:35
>>679
PHPの中身はともかくとしても、
PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){
}
}
になります。
684:nobodyさん
09/10/26 19:14:03
function A1(){
if(confirm('ごまだれですか?')){
window.alert('内容を変更しました。')
}
}
抜けてた
685:nobodyさん
09/10/26 21:38:32
>>683で答えでてるじゃん
686:nobodyさん
09/10/26 22:16:19
初心者相手に悪いけど、これは吹いたww>>679
687:nobodyさん
09/10/26 22:27:35
mysqlの問題と思ってる時点でアレだな
688:nobodyさん
09/10/26 23:39:47
「ごまふあざらあし」が気になってプログラムが進みません!
689:nobodyさん
09/10/27 00:54:28
クライアントへhtmlを送る時に、ボタンと、押した時にサーバーサイドで実行する
クエリを書いておく事が出来る。
というフレームワークのアイデアを頂きました。
クレームワームの名前は「ごまふあざらあし」にしようと思います。
690:nobodyさん
09/10/27 10:58:21
ごまだれですか?
691:nobodyさん
09/10/27 11:16:23
いえ、「ごまふあざらあし」です
692:nobodyさん
09/10/27 11:34:04
いっそPHPonJavascript HTTP通信で。
693:nobodyさん
09/10/27 11:44:23
PHP側で実行する内容が、htmlソースから丸見えになるんで良くないなw
694:nobodyさん
09/10/27 15:59:34
>>693
SQLをクライアントで構築して送信する前システムを思い出した
最悪だな
695:nobodyさん
09/10/27 19:25:48
"name":"名無し","body":"あいうえお"
このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は
正規表現でひとつずつ抜き出すほかにありますか?
696:nobodyさん
09/10/27 19:26:58
>>695
explode
697:nobodyさん
09/10/27 19:33:13
>>696
できました!
ありがとうございます
698:nobodyさん
09/10/27 19:39:41 73GIvY2U
サーバ変数のQUERY_STRINGのPOST版を取得したいのですがどのようにしたら取れますか?
また、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?
699:nobodyさん
09/10/27 19:44:58
意味が分からん
$_REQUEST
700:nobodyさん
09/10/27 19:59:04
>>698
何もしなくても良いのではないだろうか。
701:nobodyさん
09/10/27 19:59:55
>>698
POSTされた生のデータが欲しいって事かい?
parse_str(file_get_contents('php://input'), $f);
var_dump($f);
702:nobodyさん
09/10/27 21:21:52
fopen("php://memory", "r+");
すげえ
703:698
09/10/27 21:41:14
>>701
すばらしい。ありがとうございます。
704:nobodyさん
09/10/28 01:05:41 EMbPGL3Y
simplexmlについての質問です。
simplexml_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が使えないのでしょうか?
解決策をお教えいただきたいです。
705:nobodyさん
09/10/28 01:09:43
>>704
$qの中身の問題だろそれは
706:nobodyさん
09/10/28 01:12:57 EMbPGL3Y
>>705
ありがとうございます!
$q = $_GET["q"]+1-1;
と試してみるとうまくいきました。
ホントにお恥ずかしい限りです・・・
707:nobodyさん
09/10/28 01:16:08
型違うと検索してくれないんだ?
708:nobodyさん
09/10/28 01:17:19
$q = (int)$_GET["q"];
でおk
709:nobodyさん
09/10/28 01:18:34
includeって必要なときにだけ呼び出したほうがいいの?
負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。
710:nobodyさん
09/10/28 01:20:18
えっ
711:nobodyさん
09/10/28 01:27:19
>>709
>>1
712:nobodyさん
09/10/28 02:52:06
Javaのimportのようなもんだと思ってるんだろう
ただJavaの場合コンパイラが最適化してくれるので問題ないが
PHPはインタプリタなので最適化のしようがないという
つまり全部includeなんてしたらそりゃ遅くなる
713:nobodyさん
09/10/28 05:46:33
>>712
なるほど、ありがとう。必要なときにincludeしたほうが良いってことね
714:nobodyさん
09/10/28 09:18:20
>>695-697
文字列中に,も出てくるかもしれないから
json_decode()を使ったほうがよくない?
715:nobodyさん
09/10/28 10:42:00 v0axKvNX
セッションの開始をつげるsession_start()って
セッションを使用する場合は必ずつけなければならないのですよね?
これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?
716:nobodyさん
09/10/28 10:43:21
コントロールじゃね?
717:716
09/10/28 10:45:50
コントロールですか?
ありがとうございます
早速組み方を考えて見ます
718:nobodyさん
09/10/28 10:47:23
bootstrapだろ
719:679
09/10/28 14:53:16 op4mA5/p
返答遅くなりました。
そうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。
この場合は、dbedit.phpのようなものを別途つくり
<?php
include("dbedit.php");
A1();
?>
という風にすればいいのかな?
しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば
それの振り分けはどう実装したらいいでしょうか?
ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。
720:nobodyさん
09/10/28 15:23:46
>>719
まずjavascriptなしでやることを考えてみ。
721:nobodyさん
09/10/28 15:30:07
ちょっと答え方まちがったかな。
まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?
722:nobodyさん
09/10/28 15:43:14
>>719
A1()って>>679を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw
>>720の通りにまずJavaScriptなしで動くようにしてみたら?
サーバー側でpostされた内容によってSQL発行するだけだよ
723:nobodyさん
09/10/28 18:25:52
>>679はもう諦めてこれプログラムできる人にやってもらったほうが世のため人のため>>679のためと思うのはおれだけか?
724:nobodyさん
09/10/28 18:34:44
いきなりいろいろ手をつけすぎだな
javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな
725:nobodyさん
09/10/28 18:35:06
A1()で「くろごま」
A2()で「しろごま」
A3()で「ごまふあざらあし」
を処理する気まんまんの>>679にWeb100.0
726:nobodyさん
09/10/28 23:02:06
>>679
歳幾つ?
727:nobodyさん
09/10/29 00:12:37
phpとmysqlを同時に説明してる本とか売ってるし それ見た方がいいよね
それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも
概念が足りてない
728:nobodyさん
09/10/29 03:46:52
test
729:nobodyさん
09/10/29 09:54:12 xBLZE2eU
【OS】cent
【バージョン】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」の要素を削除するという感じです。
--続く--
730:729
09/10/29 09:56:09 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>
となる事が目的です。
どうぞよろしくお願いします。
731:nobodyさん
09/10/29 12:08:53
>>730
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();
732:729
09/10/29 23:49:16
>>731
出来ました!
どうもありがとうございます。
確かにforeachだと更に良いかも知れませんね。でも感謝です。
733:nobodyさん
09/10/30 06:12:51 5l/tuOOs
以下のようなメールアドレスのうち「@の前部分」を、文字数分だけ*に置換したいのです。
taro@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);
...
でも美しい方法とは思えません。
定石、または美しい方法はありますか?
734:nobodyさん
09/10/30 08:26:53
>>733
たとえば
$text = "taro@example.com";
echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);
735:nobodyさん
09/10/30 10:41:53
例えば
$text = "taro@example.com";
$array = explode('@', $text);
echo str_repeat('*',strlen($array[0])) . '@' . $array[1];
736:nobodyさん
09/10/30 16:17:27
例えば
$text='taro@example.com';
echo str_repeat('*', strpos($text,'@')).strstr($text,'@');
737:nobodyさん
09/10/30 17:16:58 5l/tuOOs
>>734-736
ありがとうございます。e修飾子とかはじめて認識しました。
Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、
>>734の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。
精進します。
738:nobodyさん
09/10/30 20:21:02 k7DoHVtB
2chの大量規制があったとかのせいか、ここも勢いがないね
phpのソースコードそのものを取り込んで
そのコードを解析する
みたいな手段ってありませんか?
739:nobodyさん
09/10/30 20:25:31
どう解析するの?
単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、
それだけやったって面白くないよね、手間なだけで。
何をしたいのかが良く分からん。
740:nobodyさん
09/10/30 22:48:05 pyIKqVVx
class test
{
private $ar,$tes;
public function __construct()
{
$this->ar = array('tes');
(ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい)
echo $this->tes;
}
}
$this-> に続く変数名を変数の値で表す方法はありますか?
宜しくお願いします。
741:nobodyさん
09/10/30 22:52:15
日本語で
742:nobodyさん
09/10/30 23:25:37 pyIKqVVx
上のコードで$this->tesに、例えば"b"を代入したいとき、
$this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。
743:nobodyさん
09/10/31 00:17:51
$var = 'tes';
echo $this->$var;
こんな感じで
744:nobodyさん
09/10/31 00:38:36
>738
runkit
URLリンク(jp2.php.net)
745:nobodyさん
09/10/31 07:26:05
>>743
ああ、一回代入すればいいのですね
思いつきませんでした。ありがとうございます!
746:nobodyさん
09/10/31 09:17:44 5b/pi/nw
質問です。
アップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに
ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、
if(copy($tmpFile, $lastFile)){unlink($tmpFile);}
という感じの処理をすると思います。
しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか?
「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか?
そもそも、上のif文でのチェックは必要なんでしょうか…
条件成立・不成立をどこまでフォローすべきか悩んでいます。
747:nobodyさん
09/10/31 15:10:42
move_uploaded_file 使った方がええんじゃないか?
748:nobodyさん
09/10/31 15:13:55
コピーするのがそのサイト内部処理として必須であるなら(まあそうだろうけど)、
それに失敗したらアップロード処理失敗のエラー返すしかなかろ。
749:nobodyさん
09/10/31 15:30:20
エラーが発生したときに可能な限り元の状態に戻す設計にした方が良いな
コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか
750:nobodyさん
09/11/01 23:38:51
>>740
$this->{$this->ar[0]} = "何らかの値";
751:nobodyさん
09/11/02 18:13:40 uSMOoO6C
画像とhtmlを同一のファイルにしたいんですが、
phpでmhtmlを出力するほうほうはありませんか?
752:nobodyさん
09/11/02 18:43:28
>>751
OSは?
753:nobodyさん
09/11/02 18:58:04
>>751
URLリンク(www.hedgerwow.com)
754:751
09/11/02 18:58:15
>>752
Linuxです。サーバーの設定も自由に変更できます。
755:751
09/11/02 19:01:23
>>253
ありがとう。
756:nobodyさん
09/11/03 00:57:00 OxH3Rb8V
質問です、
PHPの言語仕様として確認したいのですが、
1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、
レスポンスを返した時点でメモリ破棄する。
そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール
などという考え方は基本ない。であっていますか?
757:nobodyさん
09/11/03 02:25:30
言語仕様(標準ライブラリ)の範疇で言えば、そう。
たいていの言語は、別々に起動された、親子関係
でないプロセス間でソケットを共有する方法は、
言語仕様にはないと思う。
758:nobodyさん
09/11/03 05:32:26
関係ない質問してごめん。
SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね?
それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの?
あと、phpでSpeedyCGIみたいシステムないの?
759:nobodyさん
09/11/03 10:19:58
DBコネクションプールといえばpgpoolとかあるけど。
MySQLならSQLrelayとか。
760:nobodyさん
09/11/03 10:39:36
phpはモジュールで動かしてる場合が多いから・・・
761:nobodyさん
09/11/03 21:21:41 ppv8Lxeq
ちょっと質問。
wikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど
知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから
シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので
ちゃんと的確に分けられる方法教えて。
762:nobodyさん
09/11/03 21:23:10
携帯依存文字でYES・NOでもやってろ
763:nobodyさん
09/11/03 21:34:29
わざわざUA偽装してアクセスするのは携帯用ページが見たいからでしょ
だから普通にUAで振り分ければいいとおもうが
764:nobodyさん
09/11/03 21:38:57
>>761
ケイタイ用のIPを常に更新して、IPでキャリアを判別するサイトのサービスを始めるのだ!
765:nobodyさん
09/11/03 23:00:04 Hf2P9qWB
phpのApacheの設定が全くできません!Vistaです。本に書いてある通りにしても、ブラウザに乗せるとダウンロードダイアログが出ます
助けてください
766:nobodyさん
09/11/03 23:08:14 ppv8Lxeq
確かに携帯用のページが見たくて偽装するんだろうし、別に携帯用ページをPCで見られて困ることはないよ。
だけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、
携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。
妥協してユーザーエージェントでやるとするといくつあるの?
ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何?
ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?
767:nobodyさん
09/11/03 23:42:05
俺はIPでやってるけど、ホスト名でもいいんじゃないの振り分け
768:nobodyさん
09/11/03 23:44:16
PEAR::Net_UserAgent_Mobileは?
769:nobodyさん
09/11/04 04:13:04
>>759
トンクス。
でも SQLRelay いれたら遅くなったって意見が多くてちょっとガッカリ
770:679
09/11/04 09:18:30
規制ががが
>>720
・・・申し訳ない。
以前あったレスからJavascriptは使わないと決めて
元々記述したJsコードを全部削除してPHPに実装しなおしていましたが
報告忘れてました
>>721
A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。
むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。
>>722
一応削除はしてます。
>>723
諦めたらそこで終わりじゃないですか??
>>724
はい。実はJavaはやっていたのですが
どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも
771:679
09/11/04 09:19:55
>>726
まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。
いかんせん会社が大きく無いのでしょうがないです。
>>727
本・・ですねえ。
でも今月はCiscoの本やらいっぱい買ってしもたorz
経費で落ちそうなら考えてみます。
今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。
次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ
その先で上書き処理、という流れで、やっていくつもりです。
772:nobodyさん
09/11/04 09:50:46
>>765
それ、Apacheの問題であってPHPのじゃないじゃん。
<httpd.conf>
AddType application/x-httpd-php .php
PHPIniDir [PHP.iniのあるディレクトリ]
LoadModule php5_module [php?apache*.dllへのフルパス]
書いたらApacheの再起動。
773:nobodyさん
09/11/04 13:15:10 +cyJ/kJv
あのさぁ、まずはちょっと聞いてくれ。
ドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。
そうしないとそこがアップロード用のファイル保存フォルダになっているので
PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。
かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。
.htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。
で、特定のフォルダにだけPHPを使わせない機能ないの?
もしくはアパッチでドキュメントルート以外のフォルダを作り、
C:/root_A(PHP可能)
C:/root_B(PHP不可)
として
http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな?
バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。
774:nobodyさん
09/11/04 13:18:32 +cyJ/kJv
今書いててふと疑問に思ったんだけど、レンタルサーバーって複数の人が使ってて
同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?
775:nobodyさん
09/11/04 13:22:13
FOR($i=0;;$i++){
PRINT 'マンコ';
}
初めて作ったプログラムがこれ。
776:nobodyさん
09/11/04 13:26:07
>>773
apacheのDirectory設定でできるよ
777:nobodyさん
09/11/04 13:31:39
>>774
一つはパーミッション。
削除権限はそのファイルが含まれているディレクトリのパーミッションによるが
777とかしてたら消せる。
でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので
phpのSafeModeを使う。
これは、実行ファイルのオーナー(実行時のユーザーではない)が
他のオーナーのファイルをいじれなくする仕組み。
778:nobodyさん
09/11/04 16:27:43 +cyJ/kJv
>>776-777
ありがとう。ちょっとググってみるよ。
779:nobodyさん
09/11/04 17:03:15
そういや、拡張子で制御は把握しきれないから・・・とか書いてるけど
基本的にhttpdは拡張子で実行するか決めてるんだから
拡張子で制限すればいいはずだよ。
780:nobodyさん
09/11/04 17:37:09
>>773
phpファイルはアップロード禁止にしたらいいんじゃない?
どうしてもアップロードしたい場合はZIPって手もあるし
781:nobodyさん
09/11/04 18:05:34
>>773
Options -ExecCGI -Includes -MultiViews
php_flag engine off
こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず
782:nobodyさん
09/11/05 02:39:02 bdU2dbgu
URLリンク(example.com)
というURLでアクセスしたら
URLリンク(example.com)
の結果を返すにはどうしたらいいですか?
783:nobodyさん
09/11/05 02:43:08
mod_rewrite
784:nobodyさん
09/11/05 02:56:01 bdU2dbgu
>>783
ありがとう
785:nobodyさん
09/11/05 09:23:02
FOR($i=0;;$i++){
PRINT 'パイズリ';
BREAK;
}
二番目に作ったプログラムがこれ。
786:nobodyさん
09/11/05 10:17:21
for ($i = 0; i <= 10000; $i++) {
print "まんこ\n";
}
print 'な? 9999の次でも1に戻るってことは無いだろ?';
787:nobodyさん
09/11/05 10:31:55
あたまおかしい
788:nobodyさん
09/11/05 12:50:44
やっぱり大量規制でいいや。
789:nobodyさん
09/11/05 13:16:33
てst
790:nobodyさん
09/11/05 15:22:19 17l6YWCO
ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。
index1.php
↑インクルード
user_func.txt
↓インクルード
index2.php
でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。
負荷を無くすにはどうしたらいいでしょうか?
個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。
最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
791:nobodyさん
09/11/05 15:33:59
>>790
実際、どの程度の負荷がかかってるのさ?
一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
792:nobodyさん
09/11/05 16:22:18 17l6YWCO
>>791
えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの?
知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい?
最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど
HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。
CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
793:nobodyさん
09/11/05 16:39:49
>>792
気になるならdataスキーム形式にして埋め込めばいいよ
794:nobodyさん
09/11/05 16:55:33
>>792
普通は一度ファイルを読み込めば、次回はメモリを参照する。
readで毎回必ずHDDを読んでいたら大変な事になるよ。
CPU使用率がわかってて、DISK周りの負荷は調べてない?
Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
795:nobodyさん
09/11/05 16:59:36
>>792
ギガビットは過信しないほうがいい
LANカードやHUBがしょぼかったら無意味
転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
796:nobodyさん
09/11/05 19:35:22
>>792
世の中にはキャッシュと言うものがあってだな・・・
てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
797:nobodyさん
09/11/05 20:31:20 17l6YWCO
>>793-795
OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。
ルータやLANケーブルはそれなりのやつを使ってるけど。
実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな?
何を改善すればいいか分からん。
>>796
スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。
あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4809日前に更新/231 KB
担当:undef