【PHP】下らねぇ質問はID出して書き込みやがれ 79
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/01/13(火) 21:48:25ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0011nobodyさん
2009/01/14(水) 01:32:54ID:???http://www.google.co.jp/trends?q=php%2Cperl%2Cruby%2Cpython%2CASP.NET&ctab=0&geo=all&date=all&sort=0
0012nobodyさん
2009/01/14(水) 15:34:44ID:???http://pc11.2ch.net/test/read.cgi/php/1230026935/998
> いやそれはお前が分からないだけだろ
> 素人の信頼性の低いblogや日記なんかを参考にするより20倍はマシ
おー、リファレンスを分かってる人がいたよ。
良かったらこの問題やってみてくれ。
http://pc11.2ch.net/test/read.cgi/php/1228709756/159
0013nobodyさん
2009/01/14(水) 18:49:34ID:???お前らってまじで日本語しゃべれない奴いるのな
マジキチとかそういうんじゃなくて本当に言葉しゃべれないの
電凸するならテンプレぐらい読んでからかけろよ
「あああああの番組だけど・・・その・・・あの・・・あ、あやまれぇぇぇぇぇ!」て第一声は吹きそうなの必死にこらえたぞ
0015nobodyさん
2009/01/14(水) 18:58:49ID:???0016nobodyさん
2009/01/14(水) 20:14:13ID:EXueNIp4【OS】Windows Vista x64
【PHPのバージョン】5.2.8
【連携ソフトウェア】MySQL 5.0.32
【XAMPPのバージョン】1.7.0
PDOを利用して開発したものをXAMPP環境下で使用すると、Apacheもろとも強制終了してしまいます。
強制終了する箇所はquery(), execute()のSQL発行時なのですが、それもSELECT文に限ったものです。
INSERT, DELETEはもちろんのこと、SHOW TABLESなど結果セットが返るものも問題なく動作します。
組み込みのmysql_*関数では、このようなことは起きませんでした。
Vista x86環境下でも同様になったのですが、解決策がありましたらご教示お願いします。
0017nobodyさん
2009/01/14(水) 20:27:49ID:???0018nobodyさん
2009/01/14(水) 20:54:11ID:1y4fkYcF【PHPのバージョン】php5.2.8
【連携ソフトウェア】mysql5.1
【質問内容】
PDOでmysqlに接続しています。
UPDATEで更新した際に、更新した件数を取得する方法を教えてください。
PDO::exec()は件数を返すようですが、パラメータのバインドを使いたいので
prepareを使用した方法を探しています。
よろしくお願いします。
0019nobodyさん
2009/01/14(水) 20:58:01ID:???0020nobodyさん
2009/01/14(水) 21:06:22ID:1y4fkYcFすばやい回答ありがとうございます。
rowCountはselect の件数を取得するものかと思っていたのですが、
そうではなかったのですね。
助かりました。ありがとうございます。
0021nobodyさん
2009/01/14(水) 21:25:27ID:ASyGg75+今PHPで入力UTF-8、出力SJISの携帯サイトを作ってるんですが
POSTから値を受け取りブラウザで表示させようとしたんですが
文字が何も表示されません・・
すいませんがよろしくお願いします。
<?
$tex = $_POST["a"];
echo mb_convert_encoding($tex,"SJIS");
?>
<form action="" method="post">
<input type="text" name="a">
<input type="submit" value="a">
</form>
.htaccessファイル↓
php_value default_charset "SJIS"
php_value output_handler mb_output_handler
php_value mbstring.internal_encoding "UTF-8"
php_value mbstring.http_input "UTF-8"
php_value mbstring.http_output "SJIS"
php_flag mbstring.encoding_translation On
0022nobodyさん
2009/01/14(水) 21:31:58ID:???とりあえず、それ試して。
short open tagは大丈夫だよね?
002321
2009/01/14(水) 21:38:32ID:???返信ありがとうございます。
半角英数はmb_convert_encoding指定するしない
両方とも表示されます。
short open tagはOnになってます。
0024nobodyさん
2009/01/14(水) 21:41:57ID:???mb_convert_encodingの第3引数に渡してみたら?
002521
2009/01/14(水) 21:53:43ID:???先程一度第3引数にUTF-8を指定してみましたが駄目でした・・
今文字コードをmb_detect_encoding($tex);と調べてみたら
ASCIIと表示されたのでmb_convert_encodingの
第3引数にASCIIと入れても駄目みたいです・・・。
0026nobodyさん
2009/01/14(水) 21:57:00ID:EXueNIp4XAMPPを使用しないで環境作ったら、何の問題もなく動作しました…。
XAMPPは良くも悪くも、手軽なものだということを痛感。
ありがとうございました。
0027nobodyさん
2009/01/14(水) 22:53:00ID:Lx64uWRL板名を教えて下さい。
0028nobodyさん
2009/01/14(水) 22:53:06ID:???まじ初心者はxamppを使うのすすめる教本とかサイトはくたばれよ
0029nobodyさん
2009/01/14(水) 22:58:07ID:???0030nobodyさん
2009/01/14(水) 23:27:45ID:???だめでした、じゃなくてさ、なんか表示されるんでしょ?
英数なら表示されるのに日本語が入ると何も表示されないの?文字化けでしょ?
「abcほげdef」とか入れてみたらどうなる?
0031nobodyさん
2009/01/14(水) 23:34:03ID:sbd7PIk9// ユーザIDとパスワードの組み合わせが正しい場合
for($i=0;$i<count($arrUser);$i++){
if($_POST["txtId"] == $arrUser[$i] && $_POST["txtPass"] == $arrPass[$i]){
header("Location:top.php");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
break;
}}
ここでIDとパスワードを入力します
しかし headerの指定が違うとでてしまいます
http://www.dotup.org/uploda/www.dotup.org10038.jpg
header("Location:相対パス指定");
と習ったのですが送信後、ジャンプさせてページに飛ばしたいんですが全く動きません
この情報だけで分かりますでしょうか?
003221
2009/01/14(水) 23:43:32ID:???abcほげdefをコピペで貼り付けたらabc?defと表記されました。
ただこの言葉以外だと例えば半角と全角を織り交ぜて入力した場合は
全角が消えて半角だけが表示されます。
もう少し頑張ってみます。
0033nobodyさん
2009/01/15(木) 00:00:10ID:iReMhog8・特定のカテゴリの記事一覧取得する(エントリタイトルとエントリ日時)
・そのカテゴリの記事の詳細を取得する
ってどうしたらいいんでしょうか?
各FWやPearは使えないという条件で参考になる情報・サイトをお願いします
phpのバージョンは5、MTは4.2です
自分でも探したんですが、いいのが見つかりません よろしくお願いします
0034nobodyさん
2009/01/15(木) 00:06:59ID:gNc+jaUVhttp://www.dotup.org/uploda/www.dotup.org10093.jpg
phpマニュアルを読んでも、break;ではなくexit;を使うと余計悪化しました
もうどうすればいいかわかりません
0036nobodyさん
2009/01/15(木) 00:16:48ID:???0038nobodyさん
2009/01/15(木) 00:29:46ID:???中身見たんだけど、特許庁サーバーへの接続手順かなぁ
だったら今回のお漏らしの最大の問題点
特許庁は大急ぎでサーバーODBCデータベースのパスワード変えないと
ODBC.mdb
*参考
mdbのパスワードは既弱性があって一瞬で解除できる
フリーのツールでも所要時間ゼロ秒
0039nobodyさん
2009/01/15(木) 01:09:04ID:???header関数はそれ以前に何かが出力されてたら動かないんだよ?
このソースの場合はheader()の前に
<html>
〜
<center>
までタグが出てるでしょ
<?php
header(〜〜);
?>
<html>
以下略
って形にしないとダメだと思う
0041nobodyさん
2009/01/15(木) 08:03:04ID:jJGEkYvb例
array("あ", "いうえ", "おかきく", "けこ");
↓
array("おかきく", "いうえ", "けこ", "あ");
そこで、配列に文字数を追加してarray_multisortしています。
うまく動いているのですがもっとスマートな方法はありませんでしょうか?
<?php
mb_language("Japanese");mb_internal_encoding("UTF-8");mb_regex_encoding("UTF-8");mb_http_output("UTF-8");
// 配列を文字数で降順に並び替えたい
$wordData = array("あ", "いうえ", "おかきく", "けこ");
// 文字数でソートする為配列に"文字数"を追加
for($i=0; $i<count($wordData); $i++) {
$setKeyword[$i][textCount] = mb_strlen($wordData[$i]);
$setKeyword[$i][word] = $wordData[$i];
}
print_r($wordData);
// 文字数で配列をソート
foreach($setKeyword as $key => $row){
$textCount[$key] = $row["textCount"];
}
array_multisort($textCount,SORT_DESC,$setKeyword);
print_r($setKeyword );
exit;
?>
0042nobodyさん
2009/01/15(木) 08:23:25ID:???return mb_strlen($b) - mb_strlen($a);
}
usort($wordData,'mb_strlencmp');
こんな感じとか。
0043nobodyさん
2009/01/15(木) 10:56:47ID:???性能ではarray_multisort()のほうが有利。特に配列が大きくなると顕著。
自分ならこういう風にまとめる。
<?php
$words = array("あ", "いうえ", "おかきく", "けこ");
$lengths = array_map('mb_strlen', $words);
array_multisort($lengths, SORT_DESC, $words, SORT_STRING);
print_r($words);
0044nobodyさん
2009/01/15(木) 11:07:18ID:iReMhog8が、php.iniは操作できません
どうしたらいいでしょうか? よろしくお願いします
0045nobodyさん
2009/01/15(木) 11:24:05ID:???0046nobodyさん
2009/01/15(木) 11:35:44ID:???0047nobodyさん
2009/01/15(木) 11:38:10ID:???0049nobodyさん
2009/01/15(木) 12:36:45ID:???となってるわけだが?
INI_ALLならini_setでできるしPERDIRなら.htaccessで出来る
0050nobodyさん
2009/01/15(木) 12:43:49ID:???0051nobodyさん
2009/01/15(木) 12:57:25ID:???0052nobodyさん
2009/01/15(木) 12:58:35ID:???0053nobodyさん
2009/01/15(木) 13:02:09ID:???んな変なところのマニュアル出すなよw
http://jp.php.net/manual/ja/ini.core.php
で、結局どれ?
5.3未満ならPHP_INI_PERDIRに見える訳だが
0054nobodyさん
2009/01/15(木) 15:16:12ID:bfe4hoTdphpでGUIが作りたいんですけどスケルトンの作り方がわかりません
おしえてください
0055nobodyさん
2009/01/15(木) 15:35:50ID:???0056nobodyさん
2009/01/15(木) 15:55:57ID:bfe4hoTd勉強熱心なもので頑張って書き込みしてみました
0057nobodyさん
2009/01/15(木) 16:12:09ID:???0058nobodyさん
2009/01/15(木) 16:56:54ID:QYLE8cY6$array01[1]["aaa"] = "2";
$array02[0]["bbb"] = "3";
$array02[1]["bbb"] = "4";
こういう配列があるのですが、これを1つの配列としてまとめたいと思います。
array_mergeを使っても上手く結合できませんでした。
どうすればいいのでしょうか?
0059nobodyさん
2009/01/15(木) 17:04:52ID:1cJi3m+C【PHPのバージョン】php5
【連携ソフトウェア】無
【質問内容】
利用を考えているレンタルサーバーのPHPが一般的なモジュール方式ではなく
CGIラッパーを採用しているとのことです。その方がだれがどれだけプロセスを
占有してるかわかりやすいからだそうです。
利用者の立場から見ますとCGIラッパーでの動作において留意すべき点はありますか?
当方素人PHPプログラマーなのでそれほど高尚なテクニックを使いこなせてるわけでは
ないのであまり関係ないかも知れませんが動作上の制約等がありましたら教えてください。
0060nobodyさん
2009/01/15(木) 17:22:19ID:???0061nobodyさん
2009/01/15(木) 17:38:00ID:???うまく、の定義が分からないけど、 array_merge_recursive() でどう?
array(4) {
[0]=>
array(1) {
["aaa"]=>
string(1) "1"
}
[1]=>
array(1) {
["aaa"]=>
string(1) "2"
}
[2]=>
array(1) {
["bbb"]=>
string(1) "3"
}
[3]=>
array(1) {
["bbb"]=>
string(1) "4"
}
}
これでダメなら、自分で関数を書くしかないんじゃないかな。
0062nobodyさん
2009/01/15(木) 17:58:17ID:VAt5f5cRためしてないから動かないかも知れないが
function abs($a, $b) {
return $a = $a + $b;
}
$ary= array($array01,$array02);
array_reduce($ary, "abs");
006344
2009/01/15(木) 18:01:24ID:???皆さん色んな意見くれてありがとうございます
参考に.htaccessで設定したところ、うまくいきました ありがとう
006458
2009/01/15(木) 18:09:04ID:???$array[0]["aaa"] = "1";
$array[0]["bbb"] = "3";
$array[1]["aaa"] = "2";
$array[1]["bbb"] = "4";
こういうふうにまとめたいんです。
やっぱり、foreachで一度すべて出力して
新たな配列に代入する方法しかないのですかね・・。
>>62
Cannot redeclare abs() というエラーが出ました
0066nobodyさん
2009/01/15(木) 18:18:28ID:???006759
2009/01/15(木) 18:40:31ID:1cJi3m+C> land.toですね
アハハ、わかりましたか(*´∀`)
CGIラッパーをうたうレンタルサーバーはあまり見たことがなかったので気になって質問した次第です。
ちなみにCGIラッパーの場合でも、html中に<?php ?>タグでPHPプログラムを仕込ませることは可能でしょうか?
それとも完全に実行ファイル形式としてのみ運用できるということですか?
006858
2009/01/15(木) 18:41:55ID:???0069nobodyさん
2009/01/15(木) 18:45:56ID:???数値添字にインデックス以上の意味を持たせようという設計がまずいかと。
ユーザーIDとか別の意味があるなら文字列で格納してみたら?
が、array_walk_recursiveでできるでしょう。
0070nobodyさん
2009/01/15(木) 18:50:36ID:???$array02とかはないわw
やめたまえそんな使い方
0071nobodyさん
2009/01/15(木) 19:04:18ID:???格納した数値を取り出して、画面に表示する方法がわかった。
<?php
$dsn = 'sqlite:C:/aaa'; //データーベースの定義情報
$pdo = new PDO($dsn);//データーベースをオープンしてハンドルゲット
$sql = //SQL文
"SELECT count//フィールド名指定
FROM bookmark//テーブル名
where id=1";//id=1のレコードを指定
$entries = $pdo->query($sql);//SQLクエリー実行
$entry = $entries->fetch() ;//よくわからんがデーターを取得してる?
print $entry["count"];//連想配列なのでキーを指定して表示
?>
0072nobodyさん
2009/01/15(木) 19:05:19ID:???0073nobodyさん
2009/01/15(木) 19:05:59ID:???0074nobodyさん
2009/01/15(木) 19:06:28ID:???データーベース sqlite3
データーベース名 aaa
テーブル名bookmark
テーブル構造
id | count
1 | 20
データーベース接続方法 PDO
プリペアードステートメント 今回は使ってない
0075nobodyさん
2009/01/15(木) 19:07:33ID:???ちゃあんとプログラムは書けるってこと。
ざまあみろ。
0076nobodyさん
2009/01/15(木) 19:17:40ID:???$array01[0]["aaa"] = "1";
$array01[1]["aaa"] = "2";
$array02[0]["bbb"] = "3";
$array02[1]["bbb"] = "4";
function intMerge(&$arrayTo, $key, &$arrayFr)
{
$arrayTo = array_merge($arrayTo, $arrayFr[$key]);
}
$result = $array01;
array_walk($result,"intMerge", $array02);
print_r($result);
0077nobodyさん
2009/01/15(木) 19:23:34ID:???プログラマーはまず「否定」から入る。
これは俺が接した人間、利用した掲示板全てで同じ行動だった
それを覚えておけば質問するのも怖くないよ^^
0078nobodyさん
2009/01/15(木) 19:26:12ID:???ところがアメリカ人のプログラマーはそうではない。
ジャップは死ねってこと。
ジャップは死ね!
ジャップのプログラマーは死ね!
ただし東大のプログラマーは親切になんでも教えてくれる。
だから東大のプログラマーだけは生きて良し。
0079nobodyさん
2009/01/15(木) 19:27:37ID:???0080nobodyさん
2009/01/15(木) 19:29:24ID:R8RK6Tzt0081nobodyさん
2009/01/15(木) 19:37:55ID:R8RK6Tzt1が食べ物、2が電化製品、3が本類、4が人名を置いてます
「food.dat」
1,オレンジ
2,テレビ
3,ミステリー小説
4,橋本大樹
これをジャンル別に分け、
1のジャンルは配列$ary1へ、2のジャンルは配列$ary2へ
3のジャンルは配列$ary3へ、4のジャンルは配列$ary4へそれぞれ格納したいと思います
foreachで回してifで振り分ければできるのですがもっと効率の良い書き方をしたいです
お手数をおかけいたしますがどなたかご教授お願いいたします
0082nobodyさん
2009/01/15(木) 19:56:00ID:???0083nobodyさん
2009/01/15(木) 20:07:58ID:???http://wiredvision.jp/news/200901/2009011518.html
0084nobodyさん
2009/01/15(木) 20:08:55ID:???___________________
こうじゃね?
0085nobodyさん
2009/01/15(木) 20:09:27ID:???0087nobodyさん
2009/01/15(木) 20:24:03ID:???警告
「PDO コンストラクタからの例外をアプリケーシ
ョン内でキャッチしない場合、 zend エンジンは
スクリプトの実行を終了し、バックトレースを表
示します。 このバックトレースを見れば、デー
タベースへの接続の詳細がわかってしまいま
す。 その中にはユーザ名やパスワードも含ま
れます。 (catch 文を使用して) 明示的に例外
をキャッチするか、 あるいは set_exception_ha
ndler() を使用して 暗黙的に例外をキャッチす
るようにしましょう。 」
-------------------------------------------------
↑この仕様って、結構困るんだけど。
0088nobodyさん
2009/01/15(木) 20:24:57ID:???0089nobodyさん
2009/01/15(木) 20:27:55ID:???009081
2009/01/15(木) 21:00:32ID:???どなたか助けてください
0091nobodyさん
2009/01/15(木) 21:05:50ID:???ジャンルって何?もしかしてIDのこと?
ファイル名がfoodってどういうこと?
ジャンル・名前なの?ジャンル|データなの?
あと>>1
0092nobodyさん
2009/01/15(木) 21:10:10ID:GvZc4PNy取得するときは、かならずfetchしないとダメなの?
009381
2009/01/15(木) 21:11:20ID:uz1526ADファイル名は食べ物を使うから付けただけで深い意味はないです
ジャンルはIDのことです
food.txtの中身は
1行目→1,オレンジ
2行目→2,テレビ
3行目→3,ミステリー小説
4行目→4,橋本大樹
5行目→2,ラジオ
6行目→4,坂本竜馬
こんな感じでデータは不規則に追加されていきます
0094nobodyさん
2009/01/15(木) 21:16:40ID:???http://d.hatena.ne.jp/sotarok/20081121/1227251508
0095nobodyさん
2009/01/15(木) 21:21:06ID:???こんな感じでいいかい
// food.dat の代わり
$uri = 'data:text/csv;charset=UTF-8;base64,MSzjgqrjg6zjg7PjgrgNCjIs44OG44Os4'
. '4OTDQozLOODn+OCueODhuODquODvOWwj+iqrA0KNCzmqYvmnKzlpKfmqLkNCjEs44Ki44OD4'
. '4OX44OrDQoyLOODrOOCs+ODvOODgOODvA==';
$table = array();
$fp = fopen($uri, 'r');
while (($cols = fgetcsv($fp)) !== false) {
$table[(int)$cols[0]][] = $cols[1];
}
fclose($fp);
echo file_get_contents($uri), PHP_EOL, var_export($table, true);
// ジャンル別にローカルスコープへ展開
// foreach ($table as $genre => $items) {
// $var = 'ary' . $genre;
// $$var = $items;
// }
// var_dump($ary1, $ary2, $ary3, $ary4);
0097nobodyさん
2009/01/15(木) 21:35:45ID:uz1526AD$file = file("food.txt");
foreach($file as $v) {
$a=explode(",",$v);
switch($a[0]) {
case 1:$ary1[]=$v;break;
case 2:$ary1[]=$v;break;
case 3:$ary1[]=$v;break;
case 4:$ary1[]=$v;break;
}
>>95さんのやり方すごいですねっ!勉強になりました
ありがとうございました
0098nobodyさん
2009/01/15(木) 21:38:42ID:???0099nobodyさん
2009/01/15(木) 21:43:33ID:uz1526AD0100nobodyさん
2009/01/15(木) 21:45:38ID:???0102nobodyさん
2009/01/15(木) 21:55:50ID:???0103nobodyさん
2009/01/15(木) 22:25:58ID:???PHPの flock() はアドバイザリロックなので
読み手も書き手も適切なロック(LOCK_SH,LOCK_EX)を取らないと意味を成さないのよね
なのでロックは必須
0105nobodyさん
2009/01/15(木) 23:54:00ID:bes4Fp8w文字の部分はちゃんと表示されます
外部スタイルシートを読み込んでいてDWではちゃんとプレビューされるんですが・・・
phpで作るサイトは全部includeしないとだめなんですか?
phpでサイトを構築するのは初めてでよくわかりません
0106nobodyさん
2009/01/16(金) 00:03:49ID:???生成されたHTMLか、読み込んでいるCSSが悪い。
「ソースを表示」からHTMLソースをHTMLファイルとして保存して、サーバにアップロードしてみろ。同じ現象が起きる。
0108nobodyさん
2009/01/16(金) 00:21:40ID:???────
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>無題ドキュメント</title>
</head>
<body>
<div id="wrap">
<div id="head">
<h1>my site</h1>
</div>
</div>
</body>
</html>
0109nobodyさん
2009/01/16(金) 00:22:01ID:???────
*{
margin:0;
padding:0;
}
#wrap{
width:800px;
height:600px;
margin:30px auto;
background-color:#FFFFFF;
}
#head{
width:800px;
height:80px;
background-color:#336633;
}
備考
xamppを使用、ハローワールドのテストは成功、
ディレクトリはxampp内のhtdocs/mysite/index.php , style.css
■ このスレッドは過去ログ倉庫に格納されています