【PHP】下らねぇ質問はここに書き込みやがれpart16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
過去スレは>>2
0070nobodyさん
2006/02/06(月) 19:28:44ID:???全然マニュアル見ないで質問してるだろオマエ
0074nobodyさん
2006/02/06(月) 19:42:51ID:yVSQC/2Iすみません、間違えました。
<?php
if (isset($_SERVER["HTTP_ACCEPT"])) {
$HA = explode(",", $_SERVER["HTTP_ACCEPT"]);
if (in_array("application/xhtml+xml", $HA)) {
header("Content-Type: application/xhtml+xml; charset=utf-8");
} else {
header("Content-Type: text/html; charset=utf-8");
}
} else {
header("Content-Type: text/html; charset=utf-8");
}
header("Content-Style-Type: text/css; charset=utf-8");
header("Content-Script-Type: text/javascript; charset=utf-8");
?>
これで、5・12・13行で>>66のようなエラーが出ます。
しかも text/htmlが送られてくるし…
0075nobodyさん
2006/02/06(月) 19:52:25ID:???0079nobodyさん
2006/02/06(月) 20:41:13ID:???どれが質問者か分からない俺逆エスパー
0080nobodyさん
2006/02/06(月) 21:15:30ID:???>headers already sent
であると指摘しているのだが
0082nobodyさん
2006/02/06(月) 23:28:55ID:???マニュアルもロクに読めないやつらが質問するのがくだ質だろ。
0083nobodyさん
2006/02/06(月) 23:50:09ID:???008568
2006/02/07(火) 00:10:07ID:???コードが変わってもアドバイスは同じ。
いきなりそのファイルにアクセスして
そのエラー表示なら
余計な空白、改行などが入っているのだろうと思われる。
0086nobodyさん
2006/02/07(火) 01:11:11ID:???<?
function kansai($text){
$text=str_replace("ありがとうございました","おおきに",$text);
}
?>
上記の内容のosaka.incというファイルを作成し
外部ファイルからosaka.incをrequire_once print(kansai($text)) とやると 中に入っていたはずの文字列が全て消えてしまいます。
どこがおかしいのでしょうか?使う関数が間違っているのでしょうか?
0087nobodyさん
2006/02/07(火) 01:17:12ID:vK7c16Ac0088A子
2006/02/07(火) 02:06:08ID:Ru+YG/77xamppを導入したら、今まで動いていたソースが動かなくなりました。
具体的な不具合は、掲示板の投稿ボタンを押しても登録されませんし、
表示の更新も行われません。
おそらくクライアントよりサーバーへデータが送信されていないと思われます。
原因と推測される設定ファイルなどをお教えして頂ければ嬉しく思います。
質問に不備がありましたら再度投稿させて頂きます。
よろしくお願いします。
0089A子
2006/02/07(火) 02:09:29ID:Ru+YG/77データベースへの接続は成功しています。
コンソールよりテーブルに対してはデータを追加できます。
0090nobodyさん
2006/02/07(火) 02:18:04ID:???前の環境とやらがレン鯖とかで設定ファイルが見れないなら、phpinfoでも可。
この先はエスパーに任せた
0092A子
2006/02/07(火) 02:40:27ID:Ru+YG/77Onと設定されています。
0095nobodyさん
2006/02/07(火) 13:57:44ID:???0096nobodyさん
2006/02/07(火) 14:16:54ID:???0098nobodyさん
2006/02/07(火) 16:22:32ID:???趣味[ ](変数はhobby)というテキストボックスに[野球,漫画,旅行]と入れたとします。
結果表示のプログラムで
$kekka=array($hobby);
print"$kekka[0]";
と記載したら、「野球」が出ると思ったのですが、そのまま「野球,漫画,旅行」とでます。
どうすれば配列として$hobbyのデータを扱う事が出来るのでしょうか?
0099nobodyさん
2006/02/07(火) 16:31:59ID:W5Ufji/6あるサブドメイン配下の「*.php」はPHP4とみなし、
あるサブドメイン配下の「*.php」はPHP5とみなすようにって、
できますか?
できるとしたら、どうすればよいのでしょうか?
よろしくお願いいたします
0100nobodyさん
2006/02/07(火) 16:42:29ID:???それぞれのドメインを別のサーバーに割り振るようにDNSを設定しちゃって、
別々のマシンで動かしちゃうとかはダメ?
010499
2006/02/07(火) 17:14:43ID:???php4とphp5がみにいくphp.iniを別個に用意することはできないでしょうか?
0106nobodyさん
2006/02/07(火) 17:54:04ID:???PHPのコンパイル時にかっちり指定してもいいし、
CGI版なら普通な設定ならば、違うものを読みにいくでしょ?
0107nobodyさん
2006/02/07(火) 18:34:21ID:???ここでいいのか判らないけど、質問します
現在ロリポップでmovable type(SQLite)を運営していますが
さくらのプレミアムプランへの移行を考えています
この場合、例えば設定を書き換えた上で
ダウンロードしたファイルをそのまま丸ごとアップして
パーミッションさえ設定すればデータは復旧できるのでしょうか?
それとも、インストールから一通りの手順を踏む必要があるのでしょうか
0108nobodyさん
2006/02/07(火) 18:44:11ID:z2Ed5501ttp://www.php.net/manual/ja/ref.fdf.php
を読み、Adobeのサイトで FDF Toolkit というのを
ダウンロードしようとしましたが、住所氏名電話番号使用目的など
たくさん書いて、Adobeの人に承認されないとダウンロードできません。
ttp://partners.adobe.com/public/developer/acrobat/fdf/topic.html
なので誰かください。
# FDF Toolkit for Windows (ZIP: 2.2MB) [FDF Toolkit access approval required]
FPDFはあまりに煩雑すぎてイヤです。
0110nobodyさん
2006/02/07(火) 18:52:34ID:???簡単なメール送信フォームを作成したのですが、メール送信後に
511 Headers specify no receipients.
というエラーメッセージが出ます。
mb_language("ja");
mb_internal_encoding("sjis");
も指定してます。どうしたら出ないように出来るのでしょうか?
0113nobodyさん
2006/02/07(火) 20:49:13ID:???そのメール内容は送信相手にちゃんと届いてますか?
そのエラー訳したら
「ヘッダーは受取人を全く指定しません」
ってなったけど。あとreceipientsではなくrecipientsだと思う
0114nobodyさん
2006/02/07(火) 21:25:39ID:QxUNaPeItest/&test2/&test3/&
という文字列から&の直前のスラッシュのみをすべて取り除きたいのですが
正規表現に詳しい方がいたらやり方を教えてください。
0115nobodyさん
2006/02/07(火) 21:25:43ID:xKyeolaWmethodがPOSTになっているフォームの内容をPHPで送信したいんですが、どうやれば良いんでしょうか?
例えば、ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
そのあと、戻って来たページ(html)を読み込みたいんです。
fopen()でURLを指定する事も出来ませんよね。
よろしくお願いします。
0116nobodyさん
2006/02/07(火) 21:34:21ID:???&の直前のスラッシュって条件なら、
正規表現使わなくても
$text = test/&test2/&test3/&;
$text = str_replace("/&", "/", $text);
でできないかな。
的外れならスマン
0117nobodyさん
2006/02/07(火) 21:34:54ID:???だった
0120nobodyさん
2006/02/07(火) 21:41:49ID:???(
[0] => あああ
[1] => いいい
[2] =>
[3] => ううう
[4] => えええ
)
から、空の要素を削除して
Array
(
[0] => あああ
[1] => いいい
[2] => ううう
[3] => えええ
)
にするにはどうすればよいのでしょうか。
0121nobodyさん
2006/02/07(火) 21:44:53ID:???0122nobodyさん
2006/02/07(火) 21:50:12ID:QxUNaPeIおお!!ビンゴです!!
わたしが難しく考えすぎていたみたいです。
どうもありがとうございました。本当に助かりました。
0127nobodyさん
2006/02/07(火) 23:29:30ID:xKyeolaWなるほど、参考になりました。
どうもありがとうございました。
0128nobodyさん
2006/02/08(水) 01:14:09ID:???あれってGDでも出来るんですか?
普通の文字ならまだしも、無駄にふにゃふにゃしてますよね。
何かフォントでもあるんでしょうか。
0129nobodyさん
2006/02/08(水) 01:27:12ID:???0130nobodyさん
2006/02/08(水) 02:03:14ID:???GDでできなくはないけど結構面倒くさいと思う。
元のフォント自体があんな風になってるわけじゃなく、フォントから生成した画像に対して
ピクセル単位にデータの位置をずらしていく、いわゆる画像フィルタ処理のライブラリを
用意しておいて、それを通して加工した画像を表示させてる感じ。
PHP+GDでもピクセル単位での読み出しと出力はできるので頑張れば同じような
画像加工も可能だとは思うけど、一発でそういう変換ができるわけじゃない。
自分で頑張って座標変換の計算をするような演算式を書く必要あり。
ま、画像の加工と言っても基本的には座標位置の変換だけなので、
画像変換処理の中では比較的楽な部類ではあると思うけどね。
(左右ずらしだけじゃなく回転や歪みが入ってくると計算が面倒になってくるけど)
0131nobodyさん
2006/02/08(水) 02:13:16ID:???0132nobodyさん
2006/02/08(水) 02:18:08ID:xBsMO0LFそういうのを作ってくれるCGIがあったはずなので
それ探して使えば?
0133nobodyさん
2006/02/08(水) 02:30:02ID:xmigkNJp0134nobodyさん
2006/02/08(水) 02:40:34ID:T0ghpS/6どうしたらいいのかなぁ。
<?php
include("jcode-LE.php");
if ($fp = @fopen("http://www.yahoo.co.jp", "r")) {
while (!feof($fp)) $data .= mb_convert_encoding(fgets($fp, 1024), "SJIS", "EUC-JP");
fclose($fp);
}
$match_all = preg_match_all("%<a href=\"http://rd.yahoo.co.jp/toppage/topics/(.+?)\">(.+?)</a>%is", $data, $item);
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc1\" target=\"_blank\">トピックス</a>\n";
echo "<ul>\n";
for ($i=0; $i< $match_all; $i++) {
$url = "http://dailynews.yahoo.co.jp/fc/". $item[1][$i];
$title = $item[2][$i];
$title = strip_tags($title);
echo "<li><a href=\"". htmlspecialchars($url) ."\" target=\"_blank\">". htmlspecialchars($title) ."</a></li>\n";
}
echo "</ul>\n";
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc2\" target=\"_blank\">一覧</a>\n";
?>
0135nobodyさん
2006/02/08(水) 02:49:53ID:???0137nobodyさん
2006/02/08(水) 05:28:53ID:???php|architectまたはPHPプログラマーズマガジンの2003年2月号で
「Building a Turing Test with PHP and the GD Library
(PHPとGDライブラリでチューリングテストを試みる)」
http://www.asial.co.jp/magazine/backnumber/200302/
という記事がある。自分で作るなら参考にすると良い。
やってるのは描画位置ずらしと違う色の線を重ねるパターンだけだけど。
他に回転や複数フォントの組み合わせもやると、更に高度になるけど
スクリプトローダー相手にはそこまでしなくても、まあ大丈夫。
あと探せばライブラリは何個かあるよ。
0138nobodyさん
2006/02/08(水) 05:33:22ID:???つ http://www.linkclub.or.jp/~ma3ki/webutil/jpgraph/howtomake-jpgraph.html#antispam
0139nobodyさん
2006/02/08(水) 08:40:33ID:???0140nobodyさん
2006/02/08(水) 09:44:40ID:???>ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
sessionとかcookieとか使ってみたらどうよ。
0141シャットダウン2世@初心者
2006/02/08(水) 09:50:48ID:HTXUrlQxレスサンクスです。SQL5を再インストールしたら(汗)
PHPで書いた文でWebページにテーブルが表示されるようになりました。
いろんなバージョンをいじくってたら、ポートが3307になってたり
したけど、今はSQL5ひとつだけのポートは3306になっている模様。
3つほどさらに質問があるんですが、
1、PHPの設定はSJISにしてるんですが、とってきたレコードが文字化けします。
2、PHPのプログラムで接続、クローズしてもW2kのサービスで反映されてません。
ブラウザでは「connect DB」とか「close DB」とか
ちゃんと表示されているのに。
3、「insert into …」で新しい行を書き込んだら、
ブラウザでは「書き込みました」と出るのに、Mysqlで見てみるとレコードが
入ってません。
オレのPCには魔物が天狗がひそんでいるんでしょうか。
0142nobodyさん
2006/02/08(水) 10:02:29ID:???そこでsessionやcookieきたのにワラタwwwwww
>>126 がいってる通りPEARのHTTP_Requestを使うのが一番楽い。
コードで記述すると以下みたいな感じになる。
$req = new HTTP_Request("URI");
//POSTを定義
$req->setMethod(HTTP_REQUEST_METHOD_POST);
//実際に渡すPOSTデータをセット
$req->addPostData("foo", "var");
//リクエスト
$req->sendRequest();
//ヘッダー取得
$header = $req->getResponseHeader();
//レスポンスコード取得
$code = $req->getResponseCode();
//リクエスト後のHTMLを取得
$body = $req->getResponseBody();
詳しくは以下参照
ttp://pear.php.net/manual/ja/package.http.http-request.php
そういやHTTP_RequestのsetProxyメソッドを使用した際に
timeout処理の部分にバグがあったから手直しした事があるな。
0143nobodyさん
2006/02/08(水) 10:13:59ID:???まず1に関して
何をSJISにしてるんだ?
内部コード?出力コード?
まぁどっちにしろ、MySQL側の文字コードとPHP側の文字コードがあっていないからそういう事態が発生する。
2に間して
MySQLの終了が出来ないと言ってるのか?
もしそうならば勘違いしている。
PHP側がMySQLを起動終了させるわけではなく、アクセスのオープン、クローズをしているわけだ。
3に関してはコードを見ないとなんとも言えないな。
0146nobodyさん
2006/02/08(水) 11:58:52ID:???特に変更する必要がある点などあるのでしょうか?
4で動いていれば基本的に5でも問題なく動作するのでしょうか?
0147nobodyさん
2006/02/08(水) 12:09:46ID:???>>1
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
0149nobodyさん
2006/02/08(水) 15:55:23ID:zajb1emBpear upgrade pear
したら、
requires package 'PEAR' >= 1.3.3
とメッセージが出てアップグレードできません。
確かにインストールされてる PEARは1.3.1 です。
アーカイブをダウンロードしてきて、
手動で pear/PEAR ディレクトリを書き換えてしまっていいのでしょうか?
0150nobodyさん
NGNGポストされるファイルのサイズを制限したいんですが
どうしたらいいですか?
0152nobodyさん
2006/02/08(水) 18:21:31ID:???<?
$max_size = 1024 * 100;
$kb = $max_size / 1024;
if($_FILES["hoge"]["size"] > $max_size){
exit("アップロードされたファイルは最大ファイルサイズ(".$kb."KB)を超えています。");
}
?>
0153nobodyさん
2006/02/08(水) 18:23:28ID:0zkvAuO5phpのコードに出てくる「 => 」の意味は何ですか?
貰ってきたコードに出てきました。
数字=>"ファイル名"みたいになってます。
0156nobodyさん
2006/02/08(水) 18:35:32ID:???ini_set関数でも設定は変えられるわな。
場合によっては、upload_max_filesizeだけでなく、post_max_sizeも変える必要もあるかと。
>>152
これって、実際にPOSTされた後でしか実行できないよね?
0157149
2006/02/08(水) 18:36:25ID:zajb1emB0158nobodyさん
2006/02/08(水) 18:37:04ID:0zkvAuO5うひょー。どうもです。
=>を使えば、順番にかかわらず配列の中身をコントロールできますね。
すげー。わかりやすいし。
ありがとうございました。
0159nobodyさん
NGNGどうもありがとうございます。
>>151
あ、.htaccessでもできるんですか。
それは知りませんでした。
てっきりphp.iniでしかできないのかと思ってました。
>>152
その方法でやってみたんですが、
>>156のとおり
アップロードされた後にチェックする感じになってしまいましたorz
>>156
phpスクリプトの中からも変えられるんですね。
できるだけphpスクリプトの中だけやりたいので
それで行こうと思います。
0160nobodyさん
2006/02/08(水) 18:43:25ID:o/oLkGrK$cnt1〜$cnt100まで、今のところ100個の変数にそれぞれ数値が格納されています。
コレを「一番大きいもの」を見つけるにはどうやったらいいのでしょうか?
正規表現でこういうのとかあるんですか?
それとも比較して1つ1つ気の遠くなるような作業をするんですか。。。orz
どうやればいいのか分からないので、アドバイス下さい。
0163150
NGNGなんかうまくいきませんでした。
で、なんでだろうとググったりしてみたら
>>156の方法が有効なのはPHP 4.2.3 までらしいです。
それ以降のバージョンでは
upload_max_filesizeとpost_max_sizeが
PHP_INI_PERDIRという分類になってて
.htaccessとかphp.iniからしか変更できないっぽいです。
なのでphpスクリプトから制限するのは諦めて
.htaccesで制限する方向でやってみようと思います。
0164nobodyさん
2006/02/08(水) 19:27:48ID:???あれ?upload_max_filesizeってPHP_INI_SYSTEM|PHP_INI_PERDIRじゃなかったっけ?
0165nobodyさん
2006/02/08(水) 19:28:50ID:???0166nobodyさん
2006/02/08(水) 19:38:24ID:???push(@cnt, ${"cnt$_"}) foreach(1..100);
$max = (sort(@cnt))[-1];
だからPerlでもあんまりかわらんと思う
0167nobodyさん
2006/02/08(水) 19:46:15ID:???0168156
2006/02/08(水) 20:00:58ID:???うぉ、すまんかった。
パラメータによって有効無効があるのは知っていたけど、いちいち確認してなかった…
htaccessからでも、<FilesMatch>ディレクティブか<FilesMatch>ディレクティブを使えば、
ファイルごとに設定を変更できるよ。
0169nobodyさん
2006/02/08(水) 20:05:19ID:???ここまでやんなきゃ大したことないって。ふつーふつー
0170150
NGNGありがとうございます。
一応うまくいきました。
でもちょっと気になることがあるんですが、
upload_max_filesize を10Kにして、さらに
<input type="hidden" name="MAX_FILE_SIZE" value=100000000000>
というタグを入れてブラウザに知らせるマックスファイルサイズを大きくした上で
100Mbyteのファイルをアップロードしようとすると、
upload_max_filesize が10Kなのにもかかわらず
ブラウザはずいぶんと長い時間送信し続けるようになります。
そして最終的にアップロード失敗や成功の画面ではなく
投稿フォームの初期の画面に戻ります。
スクリプトは実行されていないみたいで
テンポラリファイルのサイズを調べることができません。
これってブラウザが勝手に送りつけてるだけで
サーバー側は upload_max_filesize 以上受け取っていないと考えて良いんでしょうか?
読みにくい文章ですみません(・・;
■ このスレッドは過去ログ倉庫に格納されています