【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0502nobodyさん
2008/06/13(金) 14:05:36ID:EDleoE9aそうですね すいません
スパム行為によって利益をあげることを目標としているスパマーは嫌いですけど
技術を身につける上での通過点としてスパム行為の知識を持っておくのはアリかなと思い、質問させてもらったのですが
こういう質問はもっとひっそりとしたところでやるべきだったのかもしれません
すいません
0503nobodyさん
2008/06/13(金) 17:41:51ID:???ここでSQLの設定ができずに登録が先に進まないんですが仕様ですか?
0504nobodyさん
2008/06/13(金) 18:43:20ID:???よくある質問(何も無いけど)を見て、もしわからなければ
お問い合わせ(エラーになるけど)で質問したらいいかも
0506nobodyさん
2008/06/13(金) 21:01:00ID:???>SQLの設定ができずに
とだけ言われても返答のしようも無いですよ。
同じものを取得して実際にインストールしてみろとでも?
なにをやって、どういうエラーが出ていて、そのソースにはこういた記述があって・・・
ぐらいは書いた上で質問してもらえると助かります。
0507nobodyさん
2008/06/14(土) 00:14:23ID:???(2) http://example.com/?bar のように、
とフォーム入力側で実現することは可能でしょうか?
<form method="get" action="./index.php">
<input type="text" name="foo" value="" />
<form>
GETでinputに値を渡して、
URLを(2)のように表示させたいのです。
.htaccessだとうまく実現できずに困っています。
0508nobodyさん
2008/06/14(土) 00:31:48ID:???0509nobodyさん
2008/06/14(土) 00:33:52ID:???0511nobodyさん
2008/06/14(土) 00:41:18ID:???foo=も消したいのか・・・
JavaScriptでURL作るなりしないと、formを普通にsubmitするだけじゃ無理じゃね?
0512nobodyさん
2008/06/14(土) 03:03:01ID:???<?php
//大雑把だけどむりやりブッ飛ばして
if(isset($_GET['foo'])){
header('Location: '."./?".$_GET['foo']);
}
//取得する?って事かな
if(isset($_GET)){
print_r($_GET);
}
?>
<form method="get" action="./">
<input type="text" name="foo" value="">
<input type="submit" value="送信">
</form>
0513nobodyさん
2008/06/14(土) 04:21:01ID:SvNsf5RjAサーバーに置いてあるa.logファイルをBサーバーから書き換えるには
何を使えばいいでしょうか?
fopen("ftp://アノニマス:パスワ@ftp.a.ne.jp/headline.log","w");
とすると、FTP server reports 553 /headline.log: Permission denied
と言うエラーが出ます。
headline.logファイルの属性は、777と666で試しました。
結果は変わらずです。
使う関数を間違えているのでしょうか?
0514nobodyさん
2008/06/14(土) 04:25:52ID:???0515nobodyさん
2008/06/14(土) 04:27:27ID:???0517nobodyさん
2008/06/14(土) 04:56:10ID:UEa+HjFVシステム). OS:Linux Vine4.2 HTTP:Apache2.2.3 PHP 5.2.6
操作1) PHPをApacheに組み込み、test.phpにアクセス(*1
. 情報が表示されたのでPHPの正常動作を判断
操作2) 自鯖のHTTPディレクトリにファイル(/var/www/html/rss/rssv.php)を作成(*2
操作3) 自鯖の公開ページにソースを記述(*3
が、RSSは表示されず、ソースを張った場所には何も表示されず
*2)のいじった場所はShift_JISで上記の結果。改変後は「ページが表示できません」エラー
*1) <?php
phpinfo();
?>
*2) <?php
require "XML/RSS.php";
$code = "UTF-8"; /*←ここいじった*/
(ry
*3) <iframe src="./rss/rssv.php?u=http://(´・ω・`).com&n=3" (ry></iframe>
何処かおかしいところがあればご教授下さい。
マニュアル他解説サイトなどを手がかりにしましたが、
自鯖公開ページとPHPは同じエンコーディングじゃないとまずいのではと思い、
その部分を変更してみましたが目標に至れず質問しますた。
0518nobodyさん
2008/06/14(土) 08:55:45ID:???0519nobodyさん
2008/06/14(土) 10:01:05ID:???どうすれば改善できるでしょうか
0522nobodyさん
2008/06/14(土) 10:38:31ID:???素早い回答ありがとうございました
ですが知識の乏しい自分にはどうしてもわかりませんでした
もう少しわかりやすくお願いできないでしょうか
0525518
2008/06/14(土) 11:19:12ID:aruCSElJもしかしてこういうことですか?
2ちゃんねるそのものが初心者なもので
一応マニュアルやリファは読んだのですが
わからなかったのでここにきました
0529nobodyさん
2008/06/14(土) 11:40:11ID:???0530nobodyさん
2008/06/14(土) 11:52:08ID:???0531nobodyさん
2008/06/14(土) 14:21:20ID:QTSkypnpは何て言っているんですか??
0532nobodyさん
2008/06/14(土) 14:45:47ID:???0533513
2008/06/14(土) 15:00:41ID:SvNsf5Rjありがとうございます
fopen("ftp://アノニマス:パスワ@ftp.a.ne.jp/headline/headline.log","w");
wwwフォルダだったので新たにheadlineフォルダを作ってそこのパーミッションを
766でやってみました。ファイルのパーミッションは666です。
次はFTP server reports 553 /headline/headline.log: No such file or directory
となりました。ファイルのパスなどは間違えていないのですが…
0535513
2008/06/14(土) 16:44:49ID:SvNsf5Rjサクラのレンタルでも調べられますか?
あと、別にFTPに拘ってるわけでもなく複数のサーバー使ってるので
それらの情報をヘッドライン.logとして書き込めれば何でもいいのですが…
オススメの関数とかありますか?
ちなみにソケットとか言うのはサーバー側が使えません。
関係ないかもしれませんが。
0536nobodyさん
2008/06/14(土) 17:27:37ID:???sakura共有なら普通にftp関数使ってユーザでログインすればいいんじゃない?
たしかftpはインスコされていたと・・・
http://www.php.net/manual/ja/function.ftp-put.php
0538nobodyさん
2008/06/14(土) 17:53:13ID:???うちのsakura共有でやってみた。以下でいけたぽい
unlink("ftp://ゆーざID:パスワード@ホストIP/home/ゆーざID/www/test.txt");
$fp = fopen("ftp://ゆーざID:パスワード@ホストIP/home/ゆーざID/www/test.txt", "w");
fputs($fp, date("Y-m-d H:i:s"));
fclose($fp);
sakuraのユーザID、パスを使う
ファイルがある場合は先に削除しないとエラーになる(上書きできないみたい)
ホストIP以降のパスはフルパス
0539535
2008/06/14(土) 18:04:15ID:SvNsf5Rjマジですか…
先にファイルのデータを読み取ってそれに追加したいのですが…
とりあえず試してみます
0540535
2008/06/14(土) 18:11:15ID:SvNsf5Rjしかし、メチャクチャ遅いのですが…
さらに書き込み終わった後、すぐにエラーでIEが閉じてしまいました…
0541nobodyさん
2008/06/14(土) 23:11:31ID:???PHPでCSVのデータを表示できる事は出来たのですが
その各項目をテーブルに収めたいのです。。
echo を使うと大変で(汗 Smartyを使うしかないのでしょうか?
0542nobodyさん
2008/06/14(土) 23:17:41ID:???<table summary="hoge">
<tbody>
<?php foreach($array as $val): ?>
<tr>
<td><?php echo $val[0]; ?></td>
<td><?php echo $val[1]; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
こういう書き方じゃダメ?
0543nobodyさん
2008/06/14(土) 23:22:53ID:???最近では非推奨らしいけど、ショートタグとか言われてる記述があるよ。
<?php echo $hoge; ?>
↓
<?=$hoge?>
0544nobodyさん
2008/06/15(日) 00:11:54ID:???0545nobodyさん
2008/06/15(日) 00:22:00ID:???0546nobodyさん
2008/06/15(日) 01:55:32ID:???0547nobodyさん
2008/06/15(日) 02:27:18ID:qXYgnKYOはどうゆうエラーですか??
0549nobodyさん
2008/06/15(日) 03:01:05ID:???0550nobodyさん
2008/06/15(日) 15:02:23ID:T2nrQoQeたまに、
Fatal error: Allowed memory size of xxxxxx bytes exhausted
を吐くのですが、エラーログにファイルパスを吐いてくれません。
php.iniの設定がまずいのでしょうか?
他のerrorはファイルパスを吐きます。
どうすれば、ファイルパスを吐かせることが出来るか、
ご教示下さい。よろしくお願いします。
出来ない場合のプランとしてob_startと、$php_errormsg
ob_get_contents()、$_SERVERなどを使ってログ出しを
しようかなと思っています。
0552nobodyさん
2008/06/15(日) 16:46:24ID:PnCbQKDpif(eregi("$value$",$host))
としているのですが仮に
ZQ068252.ppp.dion.ne.jpと言うIPがあるとして
valueに「.ppp.dion.ne.jp」と書くと規制するのですが
「ZQ068252.」の部分で規制しようとするとスルーします
どうしてでしょうか?
0553nobodyさん
2008/06/15(日) 16:58:36ID:???を
if(eregi($value,$host))
にすればok
0554552
2008/06/15(日) 17:01:46ID:PnCbQKDp最後の$はこれ以降文字があったらダメ!
みたいな設定ですかね?
とにかくありがとうございます。
0555nobodyさん
2008/06/15(日) 17:06:34ID:???0556552
2008/06/15(日) 17:06:46ID:PnCbQKDp弾くようになってしまったのですが…
それ以外何も弄っていません
0558552
2008/06/15(日) 17:17:35ID:PnCbQKDp$が行の最後で^が行の最初と書いてました…
現在も捜索中ですが「.ppp.dion.」の中間文字列など
文字列がマッチするって言う表記がありません…
調べて見ますが一言で片付くならご教授お願いします
0559nobodyさん
2008/06/15(日) 17:18:25ID:???どんだけ自己中心的なのw
0560552
2008/06/15(日) 17:21:42ID:PnCbQKDp"\/$value\/"で大丈夫でしょうか?
今から実験してみますがw
0561552
2008/06/15(日) 17:25:27ID:PnCbQKDp…つwww
ダメじゃん orz
0562nobodyさん
2008/06/15(日) 17:32:37ID:???http://pc11.2ch.net/test/read.cgi/php/1168450843/
0563nobodyさん
2008/06/15(日) 17:33:47ID:???ではじくなら
$value = "/ZQ068252\..+\.dion/";
if(eregi($value,$host)) {/*やりたいこと*/};
で、どう?検証してないから駄目かもですが。
0564nobodyさん
2008/06/15(日) 17:49:14ID:???0565nobodyさん
2008/06/15(日) 17:50:19ID:???0566nobodyさん
2008/06/15(日) 21:13:30ID:4qgDFbgLecho session_id();
というページを閲覧し、web developper(firefoxのアドオン)で
HTTPレスポンスヘッダを閲覧しても、
クッキーを設定しているフィールドが見えません。
ヘッダの、
クッキーを設定しているフィールドを見ることができるアドオンがあれば
おしえてください。
どういう生ヘッダで書かれているのかみたいんです
0567nobodyさん
2008/06/15(日) 21:55:17ID:???0568nobodyさん
2008/06/16(月) 01:33:53ID:d68qAwtQセッションクッキーを、
setcookieで上書きしたいのですが、
セッションと同名のクッキーをsetcookieで発行しても、上書きできず、
クッキーフィールドが二行になってしまいます。
セッションクッキーのフィールドを上書きする方法はないものでしょうか?
0569nobodyさん
2008/06/16(月) 03:18:40ID:???$foo = new hoge;
$bar = $foo->as_strings;
print $bar;
exit;
この場合は、正常に動作するのですが、
$foo = new hogeHoge;
$bar = $foo->as_strings;
print $bar;
exit;
class hogeHoge{
function __construct() {
}
}
0570569
2008/06/16(月) 03:21:15ID:???include_once("hogeclass.php");
$foo = new hoge;
$bar = $foo->as_strings;
print $bar;
exit;
上の例は、正常に動作するのですが、
下の例では、失敗します。
$barに何も値が入りません。
$foo = new hogeHoge;
$bar = $foo->as_strings;
print $bar;
exit;
class hogeHoge{
function __construct() {
...省略
}
...省略
}
PHPファイルで、クラスを直接扱いたい場合は
どのようにすればよろしいでしょうか?
注意点あるいは参考サイト、資料などを教えて頂けますと幸いです。
0571nobodyさん
2008/06/16(月) 03:58:25ID:???http://jp.php.net/oop5
0572nobodyさん
2008/06/16(月) 11:57:07ID:???で、例えば「あ1い」から4バイトとろうとすると文字化けしてしまう。
うまいこと文字化けせずに出せるような関数ありますか?
なければ文字化けせずにとれるうまい方法を教えてほしいのですが。
0573nobodyさん
2008/06/16(月) 12:47:09ID:???世界最高のハッカーでもそれは無理な相談だ。
2文字じゃなく4バイトなんだよな?
4バイト目がマルチバイトの一部の場合は、
3 or 5バイト取得したいってわけでもないんだよな?
この意味が分からんなら、ちょっとバイトについて勉強してこい。
この意味が分かるなら、人に伝達する努力をしろ。
0574nobodyさん
2008/06/16(月) 12:48:35ID:???それよりバイトしろ。
0575nobodyさん
2008/06/16(月) 12:51:05ID:???0576nobodyさん
2008/06/16(月) 13:01:42ID:???0577nobodyさん
2008/06/16(月) 13:08:57ID:???0578nobodyさん
2008/06/16(月) 13:55:38ID:???0580nobodyさん
2008/06/16(月) 14:05:46ID:???0582nobodyさん
2008/06/16(月) 14:10:54ID:???0583nobodyさん
2008/06/16(月) 14:29:35ID:???普通にふぃっちするだけなんだけど。
0585nobodyさん
2008/06/16(月) 15:01:09ID:???$sql = "select * from users order by id ";
$stmt = Db::singleton()->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
$stmt->execute();
var_dump( $stmt->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 3) );
var_dump( $stmt->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 1) );
こんな感じ
普通にIdが1・2・3という順番でくる
0586nobodyさん
2008/06/16(月) 15:29:45ID:???ぐぐったら上から3つ目くらいに出てきた
0587nobodyさん
2008/06/16(月) 16:49:42ID:NSiUFpCpなにか良いアイデアはないでしょうか?
このとき、多次元配列の深さ(?)はマチマチです。
たとえば、
$hoge = array(
'a' => 'a1',
'b' => array(
'b1' => 'b1',
'b2' => array(
'b2_1',
'b2_2'
)
)
);
このような配列があるとき
print(in_array('b2_1', $hoge));
で、trueが返ってくるようにしたいのです。
自分なりに考えたのは
foreachで回して、もし配列だったらさらにforeachで回す、
というような方法なのですが、
もうすこしスマートなやりかたがあったら教えていただきたいのですが・・・
アドバイスお願いします。
0588nobodyさん
2008/06/16(月) 17:10:05ID:???0589nobodyさん
2008/06/16(月) 17:14:43ID:???function recursive_in_array($str, $arr){
$ret = false;
foreach($arr as $v){
if(is_array($v)) $ret = recursive_in_array($str, $v)?true:$ret;
else $ret = $v==$str?true:$ret;
}
return $ret;
}
0590587
2008/06/16(月) 17:25:50ID:NSiUFpCparray_walkという関数は知っていましたが
array_walk_recursiveという関数もあったのですね!
これをうまく使えばなんとかなりそうです。
>>589
あらかじめ関数を作って、配列が見つかったらもう一度関数を呼び出す、
ということですね!
たしかにこれならスマートにできますね!
ほんとうにみなさんの知識や発想にはいつも驚かされます。
ありがとうございました!
0591nobodyさん
2008/06/16(月) 18:28:20ID:???$target = 'b2_1';
array_walk_recursive( $hoge, create_function( '$value,$key', 'if( $value == $target ) print "true";' ) );
眠くて、全然思考がまとまらんのに、なぜこんなことやってんだろ?w
0592nobodyさん
2008/06/16(月) 19:51:28ID:pwDo5eRwPDOを使った、総レコード数を出すにはどうしたらよいでしょうか?
rowCount()は知っているのですが、これもいまいち使えません。。。
ちなみに、ページ切り替え処理をやるために、総レコード数を出そうとしています。
宜しくお願いいたします。
0594nobodyさん
2008/06/16(月) 20:23:25ID:pwDo5eRwありがとうございます。
ただ、
$SQLtxt = "SELECT COUNT(*) FROM table_name;";
$ss = $dbh->query($SQLtxt);
print "レコード数:$ss<BR>";
上記でもダメだったのですが、
数値化するために何かする必要はありますか?
0595nobodyさん
2008/06/16(月) 20:25:17ID:???0597nobodyさん
2008/06/16(月) 20:42:31ID:pwDo5eRwありがとうございます。できました!
向学ののために知りたいのですが、fechでも可能なのでしょうか?
$dbh = new PDO($host, $user, $pass);
$SQLtxt = "SELECT COUNT(*) FROM table_name;";
$ss = $dbh->fech($SQLtxt);
print "レコード数:$ss<BR>";
上記で実行したところ、fetchの行がエラーとなりました。。。
このあたり、prepareとか使えば、このあたり処理が速くできそうですね。
0598nobodyさん
2008/06/16(月) 20:42:54ID:IjgN4Ncjテキストファイル(実態はhtmlのソース)の中から、
<img src=".*">となっているところのみを抜き出して表示したいのですが、
if (preg_match_all("/<img src=.*>/si", file_get_contents("hoge.txt"), $matchs)) {
foreach ($matchs as $value) {
echo $value . "<br>\n";
&nsbp;}
}
という風な感じだと、
最初に現れる<img src=から、最後に現れる</html>まで全てmatchしてしまいます。
<img src=.*>のものだけを取り出すにはどのように改良したらよいか教えてください。
<img src="example0.jpg"><br>
<img src="example1.jpg"><br>
<img src="example2.jpg"><br>
このようにしたいです。
■ このスレッドは過去ログ倉庫に格納されています