1 :
nobodyさん :
2006/02/16(木) 03:19:52 ID:xwXojaq/ PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/ ※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等
>>2-10 辺り
2 :
nobodyさん :2006/02/16(木) 03:20:44 ID:xwXojaq/
3 :
nobodyさん :2006/02/16(木) 03:22:12 ID:YjyBJiPI
4 :
nobodyさん :2006/02/16(木) 03:22:39 ID:xwXojaq/
【FAQ】 1. ブラウザに何も表示されないんだけど・・・ → error_reporting、display_errors、log_errors 2. include/requireに?a=b&c=dのようなパラメータつけたい → できません 3. $a1,$a2,$a3...はどうしたら? → 可変変数・・・というかむしろ配列使え 4. echo "$arr['hoge']['fuga']"; がうまくいかない → {おっぱい括弧}でくくれ 5. echo?print? → echoはコンマ区切りで書ける。printは関数。パフォーマンスは気にするな 6. 値渡し・参照渡しのパフォーマンス → これまた気にするな 7. csvやtsvを扱いたい → まずはfgetcsv 8. ファイル入出力関数(fopen等)でリモートファイル扱う際の限界 → fsockopenでソケット通信で解決 9. 一定時間ごとに何かしたい → cron、タスクスケジューラ 10. 画像処理一般 or GDの限界 → ImageMagick 11. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください 12. クッキーの情報をユーザから隠したい → セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
5 :
nobodyさん :2006/02/16(木) 03:23:13 ID:YjyBJiPI
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。 1. ハードウェア、OSのバージョン等には一字一句触れない。 2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。 3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。 目の前で生じている現象をそのまま具体的に書くなどもっての外。 事実より俺様の脳内解釈を優先すべし。 4. 独り言文体で必勝。 「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」 5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。 6. もう試したことを得意げに指摘してくる奴には、厳しく対応。 「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」 "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。 7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。 「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」 示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので 絶対に避ける。 8. 情報は小出しに。 「エスパーきぼんぬ」 補足 上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。 そのような悪い質問に対して答えられるのは, 質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ, という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。 まちがっても「エスパーの方,回答お願いします」なんて痛い質問するな。つーかカエレ。
6 :
1 :2006/02/16(木) 03:27:12 ID:YjyBJiPI
7 :
nobodyさん :2006/02/16(木) 03:34:43 ID:YjyBJiPI
<? function next_comb(& $flags) { $n = count($flags); $k = 0; for ($i = $n - 1; $flags[$i]; $i --, $k ++) if ($i <= 0) return false; for (; ! $flags[$i]; $i --) if ($i <= 0) return false; $flags[$i] = false; for ($i ++, $k ++; $k > 0; $i ++, $k --) $flags[$i] = true; for (; $i < $n; $i ++) $flags[$i] = false; return true; } function flags2list($flags) { $result = array(); foreach ($flags as $i => $flag) if ($flag) $result[] = $i; return $result; } $n = 5; $k = 3; $flags = array(); for ($i = 0; $i < $k; $i ++) $flags[$i] = true; for (; $i < $n; $i ++) $flags[$i] = false; echo implode(", ", flags2list($flags)), "<BR>"; while (next_comb($flags)) echo implode(", ", flags2list($flags)), "<BR>"; print_r($flags); ?> 全スレに教えて頂いた、5C3のコードなのですが、 "a","b","c","d","e"の中から5c3する場合はどのようにすればいいのでしょうか?
>>8 echo implode(", ", flags2list($flags)), "<BR>";
while (next_comb($flags)) echo implode(", ", flags2list($flags)), "<BR>";
print_r($flags);
を
$array = array("a","b","c","d","e");
do {list($a,$b,$c)=flags2list($flags);
echo $array[$a].", ".$array[$b],", ".$array[$c]."<br>";
}while (next_comb($flags));
に書き換え
で、どうかな?
10 :
nobodyさん :2006/02/16(木) 11:50:21 ID:i4nUjG/9
質問させてください。 imap_xxx関数使ってPOP3でメール受信をしようとしてるのですが so-netのメールだけ受信できません。 imap_openでエラー(Couldn't open stream)になります。 もちろん通常のメーラではそのアカウントで受信できますし PHPでも他に@niftyや自分で立てているメールサーバからは 受信できました。 パケットを調べたところ CAPAコマンドを送ったあとにso-netのサーバから 「PIPELINING TOP UIDL APOP」を受信したあと なぜかQUITを送ってしまいます。 どなたか分かるかたはいらっしゃいましたら お願いします。
imapはso-netが嫌いなのかな。
so-netに尋いてみたら? まああの会社だとまともな回答は期待でき無そうだが…。
そもそもPHPの質問じゃない気がするんだが
so-neとBiglobeのPOPサーバーはなんか設定が変だという噂だけどね。 PDAでも接続できないケースが報告されてるよ。 so-netのFAQにPocketPC向けのメーラー設定方法とか記載されてるけど その辺は参考にならんのかな。
15 :
10 :2006/02/16(木) 16:30:00 ID:???
みなさんありがとうございます 他に成功しているサーバとの違いは POP3の「CAPA」コマンドに対してso-netからの応答に 「USER」が含まれてないようです。 これが悪いことなのかは分かりませんが そのせいでimap_openが次のコマンド(USER)を投げることを あきらめているような気がします。 Outlookから接続した際のパケットを見ると 「CAPA」コマンドは投げずに「USER」コマンドを投げてるので imap_openでも同じようにできれば接続できそうな気もしますが 方法が分かりません。 とりあえず暇を見て so-netに問い合わせてみようと思います。
>>15 so-netのPOPと思われるサーバ叩いてみたけど
CAPAコマンドに対してはUSER/PASSコマンドで認証が済んでからしか、
レスポンスを返さないようにみえるよ。
でも認証が済んでから、その後にUSER/PASSコマンドは発行しないから
本来CAPAに対してUSER capabilityが返えされるべきであっても
それが返答なくても関係なく動作は出来るんじゃないかなと思わなくもない。
厳密に動作してQUITしてるとしても責められはしないが。
ただソース見てみたけど、imap_open()での実際の処理は
完全にc-clientライブラリにお任せな感じなので、
IMAP関数を使う限り、どうにかできるものではなさそう。
PEARのメール関数を使った方が、クライアント側で対処するなら
自由度が高いと思う。
17 :
16 :2006/02/16(木) 18:30:05 ID:???
PEARにメール"関数"はないワナ。 で、PEARのMail_IMAPクラスは結局imap_open()使うので一緒だった。
>>9 さん
ありがとうございます。
お陰様で出来たのですが、いざ組み込む時にずっと考えているのですが、どうしても先に進まなくなってしまいました。
<?
function next_comb(& $flags) {
$n = count($flags); $k = 0;
for ($i = $n - 1; $flags[$i]; $i --, $k ++) if ($i <= 0) return false;
for (; ! $flags[$i]; $i --) if ($i <= 0) return false;
$flags[$i] = false;
for ($i ++, $k ++; $k > 0; $i ++, $k --) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
return true;
}
function flags2list($flags) {
$result = array();
foreach ($flags as $i => $flag) if ($flag) $result[] = $i;
return $result;
}
$n = 8; $k = 4; $flags = array();
for ($i = 0; $i < $k; $i ++) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
$array = array("1000","1500","1300","1200","1800","1600","1100","1400");
$x =($array[0]+$array[1]+$array[2]+$array[3]+$array[4]+$array[5]+$array[6]+$array[7])/2;
do {list($a,$b,$c,$d)=flags2list($flags);
$y = $array[$a]+$array[$b]+$array[$c]+$array[$d];
$z = $x-$y;
$z = abs($z);
echo $array[$a].", ".$array[$b].", ".$array[$c].", ".$array[$d].", ".$z."<br>";}
while (next_comb($flags));
?>
19 :
続きです。 :2006/02/16(木) 19:36:39 ID:xEsbRgL0
8つの数字を設定して、8C4で、8つの合計を2で割ったものから、8C4の4つの数字の合計を差分を出して、 その絶対値を$zとしたのですが、この$zが一番少ない組み合わせを出したいのです。(はじめに出てくるのがいいのです。) 上の場合だと、$zが50の時一番少ないのですが、組み合わせを書き出した時、上から3つ目ではじめに50と出ているので 「1000 1500 1300 1600」 という組み合わせを結果としてだしたいのです。 $zの値が入っている配列を作る事が出来れば、出来るだろうと思い、 新たな配列変数を作って、forループで毎回の$zの値を代入していこうとは思ったのですが、どうも上手く動作せず悩んでいます。 分り難い&何度も質問してしまい申し訳無いのですが宜しくお願い致します。
php初心者です。Authモジュールに関して質問させていただきます。 本家pearの方にのっていた、最も簡単な認証スクリプトを実行してみましたが Fatal error: Class 'DB' not found in /Applications/MAMP/bin/php5/lib/php/Auth/Container/DB.php on line 127 という表示がフォームの送信後にでてしまいます。何が原因なのでしょうか?環境は、macのpantherでMAMPを使っています。 ・ちなみに以下のように実行しました(上記URLと同じです) <?php require_once "Auth/Auth.php"; function loginFunction() { echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">"; echo "<input type=\"text\" name=\"username\">"; echo "<input type=\"password\" name=\"password\">"; echo "<input type=\"submit\">"; echo "</form>"; } $dsn = "mysql://名前:パスワード@localhost/テーブル名"; $a = new Auth("DB",$dsn,"loginFunction"); $a->start(); if($a->getAuth()) { echo "hello"; }
Pearが入ってないから。
質問ですが、phpによるファイルの作成と、ファイルの上書き、 どちらがサーバーに負担が掛かるものなのでしょうか。
>>22 1000回くらい回すコード書いて、時間計ってみたら?
上書きといっても、内容全部消した場合と追記した場合で違うだろうし。
レポキボン
26 :
nobodyさん :2006/02/16(木) 22:16:36 ID:VwfjUIGO
>>23 >>24 ありがとうございます。
ほとんどphpの知識がないものでレポはできなくて申し訳ないですが、
上書きに変更した途端鯖堕ちしたので、自分のせいかとあせりました。
今は問題なく稼動してるので大丈夫そうです。
27 :
nobodyさん :2006/02/17(金) 01:54:56 ID:qKPXZPko
windowsNTで、Apache_2.0.52、PHP5、MySQL4.0.21は 問題なく動作するのでしょうか。 (レス違いでしたら誘導お願いします)
します。
29 :
nobodyさん :2006/02/17(金) 03:43:23 ID:eyDUdvZm
テンプレートに $aaa など変数を書いてfread()で呼び出すとエラーが発生してしまうんですが 問題なく実行させるいい方法はないでしょうか phpのブログとかでテンプレに変数を直接書き込まれているのを見たのですが 自分がやってみるとエラーが出てしまうんです
>>30 勝手にエスパー補足してみよう。
最終的な出力結果を
$body
かなんか、適当な変数に入れて出力している。
$body=fread('template.php');
で取り込むとして
template.phpの中身が
<html>
<head>
<title>$site_title</title>
</head>
<body>
</body>
</html>
とかだったりすると
<title>$title_title</title>
がそのまま出力されて困る。
という趣旨の質問ではないかと思う。
34 :
18 :2006/02/17(金) 12:40:07 ID:qUshKop+
>>32 さん
宿題では無くて、自作のコードに必要なのですがどうしても出来なくて悩んでいたのですが
取りあえず、出力結果を別のテキストファイルに保存し、別にそのテキストファイルを読み込んで配列に格納するという
事でやっと出来ましたorz
アドバイス及び、コードを教えて下さった方々本当にありがとうございました。
35 :
nobodyさん :2006/02/17(金) 14:55:08 ID:eyDUdvZm
>>30 以下がソースです
01.phpの中身↓
<?php
$aaa = "正常に動作しました";
include "a.txt";
?>
a.txtの中身↓
$aaa
>>31 上記のようにしてみましたがうまく行きませんでした
>>33 まさにその通りなんです。説明が下手でしみません
うまく行かないということは記述が間違っているということなんですが
どこがどう間違ってるかわからないんです
Apacheのログをphpで整形させるプログラムを作っているのですが下記の様な処理をするに当り、 スマートな方法がなかなか思い浮かばずに悩んでいます。 /~aaaa/bbb/ccc.html /~aaaa/ddd/e.html /~aaaa/f.html /~aaaa/g.jpeg 上記のような形式のログが一行ごとに並んでいまして、「/~X/」のXに該当する部分だけを取り出そうと考えています。 そこで最初の/~は正規表現でnullに置き換えましたが/以降をどう処理するかで困っています。 宜しければお知恵をお貸し下さい。
37 :
36 :2006/02/17(金) 15:41:07 ID:???
質問したついでに回答していきます;
>>35 a.txtがtxtファイルだから直に出力されてるんじゃないでしょうか?
変数として動かしたいのであれば<? ?>を書いてphpとして処理させないと変数としては取り扱ってもらえないと思います。
>>35 a.txt
<html>
・
・
<?php echo $aaa?>
・
・
</html>
>>36 $path = "/~aaaa/bbb/ccc.html";
preg_match("|/~([^/]+)|", $path, $match);
$user_dir = $match[1];
40 :
nobodyさん :2006/02/17(金) 16:07:05 ID:EA7FpTYe
MacOSX10.3.9を使って自宅サーバを運営しています。 phpをやりたいのですが、 (1) phpが始めからインストールされているそうなのですが、 どうやったら使えるようになるのでしょうか。 (2) phpはどうやって勉強したらいいのでしょうか?
おまいがマック板の皮先くんなら放置したいところだが・・・ 1. httpd.confの設定をするだけで使える事は使える。 2. ドキュメント。サンプルを見ながらでも結構勉強できる。
42 :
40 :2006/02/17(金) 16:22:16 ID:???
>>41 ありがとうございます!!
俺様のスキルならphpの習得も早そうなので
アドバイス通りのことをやってみます。
ここはunixのスキルアップに役に立つスレなのでまた来ますね。
htmlにphpコードを入れる。 それをphpが動いていない環境でブラウザ(IE)で開くと、 <?php なんたら ?> の部分が見事コメントアウトされて、 phpコードが表示されずにいい感じに表示されるんだが、 <?php $obj->method(); ?> というコードを入れると、->の部分で終わりとみなされて、 phpが動いていない環境でブラウザで開くと、 method(); ?> が表示されてしまう。 お客さんが直接ローカルでIEでみたり、HTMLエディタで編集させようというときに困るかなぁと。 まあ、ブラウザの仕様にもよるんだろうけど、オブジェクトのメソッドは 必ず呼ぶものとして、なんかいい方法無い?
>>45 Smarty使ったんだけど、公開するindex.phpに結局こういうコードが入ってしまわない?
<?php
require(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('name','Ned');
$smarty->display('index.tpl');
?>
まあ、お客さんが入力するコンテンツをデータベースとかに保存すればいいんだけど、
小規模レベルのやつなので、テンプレートで、サイト全体のデザイン。
たとえば左にメニューがあって・・・とかで、
コンテンツは、index.php 自体に入れたい。つまりこういうことをしたい。
<?php
require(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('name','Ned');
?>
ここにお客さんがHTMLエディタで入力
<?php
$smarty->assign('contents','〜お客さんが入力したHTMLをどうにかして変数にもってくる〜');
$smarty->display('index.tpl');
?>
携帯でリファラを消して飛ばしたいんですが、 header("Refresh: 0; URL=".$jump); これでドコモはいけるんだけど、AUでいけないんです。 メタで飛ばすのもAUは無理です。 AUでなんとかリファラ消して飛ばせませんか?
48 :
36 :2006/02/17(金) 17:58:44 ID:???
つLocation
やっべ名前欄戻ってなかったorz ちなみに先ほどの正規表現で無事解決できました・・・dクスでした。 今度はログが大きすぎてタイムアウトして・・・もごもご・・・あ、スミマセンチラシの裏に書いときます それにしてもログファイルて小まめに整理しないと後で酷い目にあうねorz
>>46 なんかすごい間違った使い方してる気がするんだが…
お客さんにはindex.tplを編集してもらえばいいんでない?
***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
すっきりする希ガス
知ってると思うがテンプレートファイルから別のテンプレートをインクルード
もできるから、テンプレート使ってサイト全体のデザインと部品コンテンツ
分けて作成できるよ。
>>51 > なんかすごい間違った使い方してる気がするんだが…
うん。自分でもそう思っている。
SEO的なところからindex.php?main 見たいにサイト全体を一つのphpで処理したくないんだよね。
(だから実際にはphpファイルでも拡張子htmlで動くようにしています。)
mod_rewriteはなんか複雑だし、レンタルサーバーによっては入ってなさそうだし。
そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?
> ***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
> すっきりする希ガス
いま一応そうしているんだけど、将来、俺はシステム面だけ作りたいし、デザイン方面は
デザイナーに任せたいし、中身はお客さんでも修正できるようにしたいし。どうしたもんかなぁ。
別にSmartyは使わないは使わないでもいいんだけど、この話は横道。
本来の解決したい問題はこっち→
>>44 。
>>44 <!-- <?php $obj->method(); ?> -->
54 :
51 :2006/02/17(金) 20:14:04 ID:???
>>52 >そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?
んー
なんとなく言わんとすることはわかるが…
そういうもんだと割りきってしまってるからなぁ…
そもそもテンプレートエンジンって1ページ表示の際のロジックをPHPで、
画面構成をテンプレートで、と分けるのが目的だしね。
若干苦しいが、独自でHTML中に埋め込まれる変数をトークンに対応付けておいて、
サーバに配置する際には必ずsedとかでトークン→PHP変数の置換を行う、とか…
55 :
nobodyさん :2006/02/17(金) 21:42:19 ID:+wY6r5/H
>>53 <!-- <?php echo ' --' , '>'; $obj->method(); echo '<', '!--'; ?> -->
編集するときだけJavaScriptで消すとかは?
phpでサーバにあるファイルのリネームをしようとコードを書いてます。 $dirName = $_POST['dirName']; $lastNum = $_POST['lastNum']; $fileName = "$dirName/$lastNum.dat.gz"; $fileName2 = d."$fileName"; $ret = copy($fileName,$fileName2); unlink ($fileName); 今あるファイル名の先頭に「d」とつけたいのですが 上記のようなコードを書いても期待通りに動きません。 ファイル名、ディレクトリ名は外部からPOSTしています。 アドバイスをよろしくお願いします。
>>35 01.phpの中身をこうしてみ
<?php
$aaa = "正常に動作しました";
echo preg_replace('/(\$)(\w+)/e', '$GLOBALS[$2]', file_get_contents("a.txt"));
?>
>>58 > $fileName2 = d."$fileName";
↓
$fileName2 = "d$fileName";
>>59 >>61 ありがとうございます!
うまく動作しました。
renameのほうが鯖負担は少なそうですね。
いまだにphpのストリングス結合の法則が分からん・・
>>61 $fileName2 = "d".$fileName;
そのくらいマニュアル読めよな・・・
>>62 お前が分かってないのは結合じゃなくて文字列そのもの
66 :
35 :2006/02/18(土) 01:26:15 ID:4SCbmboD
abcdefghijkl... 3文字ずつ分割して配列にする方法を教えてください。 [0] => abc [1] => def [2] => ghi [3] => jkl
>>67 これぐらいしか思いつかん、スマン
for ($n = 0; $n < strlen ($a)/3; $n++)
$b[$n] = substr ($a, $n*3, 3);
>>67 $a='abcdefghijklmn';
$b=preg_split('/(.{1,3})/', $a, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($b);
>>67 php5なら
$str = "abcdefghijkl";
$arr = str_split($str, 3);
PHP5ってまたいっぱい関数増やしてんだなー
基本的にインタプリタだから関数で一発処理の方がいいからね
PHPでPerlにあるqq()ってのはありますか? $abc = qq(<A href="a">).$def.qq(</A>); みたいなことしたいんですけど、ヒアドキュメントだと 見づらくなっちゃうので、すっきりかける方法がないかな〜と。
>>73 俺は知らないなぁ。
"(<A href=\"a\">)$def(</A>)";
とやるか
"(<A href='a'>)$def(</A>)";
とやるな。
>>73 つか、普通にシングルクォートで括れば?
$abc = '<a href="a">' . $def . '</a>' ; (いまさら大文字は無いだろ…)
その辺ってPHPはPerlに比べると不便だよねー。 \"にしろ . での連結にしろ煩わしいし見づらいし間違っても気づきにくいし。 俺はヒアドキュメント使っちゃう派。
>>76 それはお前がPerlに慣れてるからじゃないか?俺はqqとか気持ち悪いから使わないが
はじめは慣れてないと気持ち悪いものですよ。 いやあperlほど不便なものはない。。
perlの$_とか好きなんだけどなぁ。
>>78 大量のエスケープ記号を挟むよりずっと美しい記法だと俺は思うがなぁ。
そろそろスレ違いだと俺は思うがなぁ。
83 :
nobodyさん :2006/02/19(日) 04:24:56 ID:SHjAEm2n
print"<img src="sky.jpg" width="" height="" alt="">"; ↑この文章のところでエラーになってしまうんですが なにかいい方法ないですか?
>>83 わざと荒らしてるのか?つい直前でその話をしてるとこだろが。
>>83 こうしろ
?>
<img src="sky.jpg" width="" height="" alt="">
<?php
この書き方ができるのはPHPのいいとこだよな
それはロジックと区別がつきにくいからということで、コーディング規約で禁止になってる…
いいじゃない 釣りにマジレス しなくても
つphp-mode.el
2006/02/19(Sun) 00:00:00 現在この様な形式でJSTでログに記録しています。 これをGMTで Sun, 19 Feb 2006 00:00:00 GMT と変換したいのですが簡単な方法ありませんでしょうか。 こんな事なら最初からunixtimeでログとっておけば簡単だったのに・・・
仕様書って言われてもどれのことか分からんので適当に「MovableType 仕様書」でググってみた。 そうやって見つけた仕様書では、 パラメータとして title, excerpt, url, blog_nameを使う事ができ、 url だけが必須、とあった。
>$ping.="Content-Type: application/x-www-form-urlencoded\r\n"; なのにurlencodeされていないのは気にしなくてもいい?
94 :
91 :2006/02/19(日) 18:34:03 ID:???
>>87 じゃあ、これならOK?
if(条件) {
?><img src="sky.jpg" width="" height="" alt=""><?php
}
>>91 仕様書も読まないで想像で回答しちゃうけど、
POST 〜
User-Agent: 〜
Content-type: 〜
ときて
name=value&name=value&name=value...
とくるなら、それって前者がPOSTメソッドのヘッダ送信で、後者がクエリーデータだろ。
ならヘッダとデータの間に1行の空行が必要なはず。
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="\r\n";
$ping.="title=Foo+Bar&url=
http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo ";
でいけねー?
98 :
90 :2006/02/19(日) 22:37:05 ID:???
>>97 ありがとうございました。解決できました。
2006/02/19(Sun) 00:00:00 で (Sun) とかが入っていても見事に変換できるのですね
99 :
91 :2006/02/20(月) 00:36:09 ID:???
urlencode() 空行を入れる のいずれも駄目でした…。 思いついてUTF-8に変換してみたりもしたのですが やはり同じ症状です。 はてさて…
PHPに関係ないね。
まだどっちとも言えないと思うが
関係のなさで言えば、 perlを実行するためのパーミッションを教えてくださいぐらい関係の無い質問だな。 遠からず近からず。 要するにこっちで質問されるとウザい。
こういう時のためにWebProg質問スレがある訳だが。
むしろくだ質があるよな
PHPと関係ない質問はくだ質でもお断り
>>103 私の手には負えません
ごめんなさいって素直に書けよw
>>107 すまん。
俺にはお前は扱いきれなかったようだ。
構いきれずに悪かったな( ´,_ゝ`)
109 :
nobodyさん :2006/02/21(火) 01:23:25 ID:csEvNJQp
指定された時刻・時間に現在表示されているHTMLから別なHTMLに変更させる作業を行いたいのですが 調べてみると出てきません。教えて神様
ユーザIDが入った配列を使って、それぞれのユーザネームを返すSQLを書きたいのですが 以下のように書くしかないですか? SQLを何回も叩くので遅くなりそうなのが心配です。 foreach ( $user_ids as $user_id ) { $sql = "SELECT user_name FROM users WHERE user_id = ".$user_id; $result = $DB->GetRow($sql); }
>>109 タイマーかけるということ?
時間判定で表示させるページ内容を変更するか、
cronを使うか。
どちらかになると思う。
>>110 IN使っちゃどうかね
$sql = "SELECT user_id,user_name FROM users WHERE user_id IN ('".implode("','",$user_ids)."')";
113 :
91 :2006/02/21(火) 08:49:54 ID:???
発想をまるっきり変えて解決しました。 ありがとうございました。 (解決策はスレ違いといわれそうなので、このままで)
>>112 IN使ってもいINですか?
なんつったりしてなゲハハハ
>>109 現在表示されてるHTMLを定期的にリフレッシュさせればいいんじゃない?
>>115 試してみて結果を教えてくれ。
昔から思ってるけど、あんまくだ質とこのスレの違いって無いよな。 どっちも同じぐらいのレベルの話するし。
>>109 PHPに限定しない(というより関係ない)質問だし
うん、たいていの質問はくだらん
>>113 それは
「俺はやり方わかったけどお前らには教えてやんねーぜ、バーカ」
と近い発言になってるという事に気付いてください。
解決しても、解決策を出すのが質問スレでのマナーでしょう。
知りたい人は沢山いるわけだから。
>>122 本当に解決したか、それ以前に本人の書き込みかすら怪しいんだから相手にしても意味がない
124 :
nobodyさん :2006/02/21(火) 18:02:42 ID:ihX6B4Hf
htmlファイルに <?php print"test"; ?> ってやったら出力されます?
>>124 printと"の間にはスペース入れたほうが良いと思う。
そういや引数の最初のキーに%5Bが入ると%5Eか何かに変わるバグは PHPのフォーラムかどこかに投稿されてるのかな?
128 :
nobodyさん :2006/02/21(火) 21:21:49 ID:y3MPaFDb
もちろんとか来たよ
何かしらは出力されるだろ ブラウザ上で見える内容かどうかはともかく
array_combine とかの逆ってあるの?
>>131 array_keysとarray_values
「出力されます?」って質問なんだから
>>128 も間違ってない
"ブラウザへは"出力されるんだから。
大抵のブラウザは無効なタグとして処理し、ブラウザ上には表示しないと思うが。
「phpとして処理されますか?」なら
>>125 だけどな。
早い話が質問内容が悪(アバウト)すぎる
まぁ正論だけど、php質問スレッドだからなぁ・・
「htmlファイルに」って言ってるし
>>137 > phpでダメなら他の方法
スレ違い乙
>>137 可能だから、取り合えずそのサーバのアカウントを教えてくれ。
そのくらいはハック済みなんだろ?
PHPのWebシステムでモジュールを入れることで機能を追加させるように したいのですがこの場合どういう風に構築すればよいのでしょうか?
>>139 アカウントをクラックするのもクラッキングの内だろ。自分でやれ。
最近、メ欄に無駄な空白入れてくる奴いるね。 ウザッ
145 :
nobodyさん :2006/02/22(水) 11:47:32 ID:YzTdS2nd
windows server 2003でIIS6.0を使用してます。 PHP4.4.2をインストールし、nucleusでblogを作成したところ、 「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」 とアプリケーションログに記録され、表示できなくなりました。 どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか? また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか? よろしくお願いします。
file_get_contents() & getimagesize()
filesize
>のファイルサイズを取得する方法を教えてください。 自分で答え言ってるな。 >148が答え。 満足したら帰れ。
予知能力発動
この後、
>>147 は
「では、外部のファイルを取得する方法を教えてください」
と書き込もうとするであろう。
ところが、この予言の書を目にして、書込みを躊躇う。
>>151 しかし斜め上を行く147の次の書き込みは、こうであった。
「では、僕は何をどうしたらよいのでしょうか」
# HTTPヘッダもあてにならんしな<ファイルサイズ
ま、マニュアルにそのものずばりの情報があるわけだが(使えるかどうかは知らん) つ[http_filesize]
>>154 HEADでContent-Length拾ってるだけのようだ
あるdirectoryに存在するファイルをリンクつきで一覧表示させたいのですが、
とりあえずopendir関数使ってここまではできました。
ttp://oresama.hopto.org/~sheel/phptest/directory.php ソースは↓です。
<?php
//open directory
$dir=@opendir("phpdirectory") or die("failed to open the directory");
while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
}
closedir($dir);
?>
あとはこれにリンクをつけたいのですが、
<LI><A HREF="file1">file1</A>
のようにタグをつけるにはどうしたらいいのでしょうか?
え?釣り?
釣りだな
159 :
156 :2006/02/22(水) 14:43:38 ID:???
え? 釣りじゃありませんよ・・・orz 当方、phpを始めたのは今日が初めてで、 自宅サーバでやっとこさphpが使えるようになったのが今日なのです。 全くのphp初心者なので、超基本的なことだったらすみませんが、 教えていただくと助かります・・・orz
160 :
156 :2006/02/22(水) 14:45:22 ID:???
>>156 echo $file ."<BR>";
を
echo '<LI><A HREF="' . $file . '">' . $file . "</A>\n";
>>159 PHPを始めたのが今日なのか、
プログラミングの世界に触れたのが今日なのか?
どっちでもいいけど、
まずは、
>>1 にあるマニュアルで、一つずつ命令文を調べてご覧。
せっかく始めたんなら、聞く前にまずは自分で考えてみなよ。
> phpを始めたのは今日が初めて 初めての日に(しかも数時間で)こんな所に来たらイカンよ。 まずは本を買うかやさしい猿でもわかる参考サイトを探して 自分でやりなさいな。
165 :
161 :2006/02/22(水) 14:51:35 ID:???
まちがえた echo '<LI><A HREF="./phpdirectory/' . $file . '">' . $file . "</A>\n";
166 :
156 :2006/02/22(水) 14:59:15 ID:???
>>161 あ、ありがとうございます!!
さっそくやってみます。
>>162 初めてやったのがプログラミングというかスクリプティングで
shellscript(bash)です。bashに関してはまぁ初心者は脱したくらいの
レベルになりました。(bash歴一年くらい)
したがってphpもifとかforとか結構似たようなのが出てくるので
そこまで苦痛ではありませんが、ちょっとbashと較べると
わかりづらい感じはしています。
最初はSSIで無理やりディレクトリを表示させることをやってみました。
こんな感じでできるようになったのですが、↓
ttp://oresama.hopto.org/~sheel/directory/ 「phpの方が簡単」
というアドバイスをいただきましたのでphpに挑戦しているところです。
>>163 そうですね。いろいろと猿でもわかるサイトを物色している最中です。
金はないので本は買えません・・・orz
167 :
156 :2006/02/22(水) 15:00:16 ID:???
168 :
156 :2006/02/22(水) 15:14:57 ID:???
>>165 ありがとうございますた!できますた!
本来、directory.phpと同じディレクトリに存在する
ファイルかフォルダを一覧表示させたかったのですが、
「自分と同じディレクトリ」を差すメタキャラがphpでは
わからなかったので、しょうがなくそれは後回しにして
わざわざ下位のディレクトリ「phpdirectory」をつくって
試していたのでした。
試しにbashでいうところの「.」を試してみると、なんと
phpでも「.」は「現在のディレクトリ」を差すようですね。
ついでに本当はファイルだけでなく、ディレクトリも表示されるように
if文を削除してみたら案の定正解でした。
ttp://oresama.hopto.org/~sheel/phptest/directory.php しかし今度は新たな問題が出てきました。
bashを使った方法ではlsコマンドで「.htaccess」ファイルを
非表示にする方法があったのですが、phpではありますか?
169 :
156 :2006/02/22(水) 15:18:03 ID:???
今回学んだ最大の点といえば、 phpは<とか>とかをバックスラッシュで エスケープする必要がないみたいなので こういう点がweb programmingに向いてるんでしょうね。 もっと勉強してみなさんに教えられるくらいにはやくなりたいと思います。
>>168 .169
ん〜〜〜〜なにか微妙に的外れな事で妙に感動しているようだが・・・
まぁ、頑張ってくさい。
覚えは悪くないみたいなのでPHPの基礎をきちんとやったほうが自分のため。 自分で本を探して数千円を投資するかしないかでかなり習得のスピードが違うと思う。 まあサイトでもいいだろうけど
>>168 >bashを使った方法ではlsコマンドで「.htaccess」ファイルを
>非表示にする方法があったのですが、phpではありますか?
って、"."で始まるファイル名は表示しないって事じゃなくて?
ならファイル名の一文字目に"."のあるファイルは表示しないって処理を加えればいい
どっちにしろ一から勉強しないと自作は出来なさそう
phpの文法が分からないのに人のソース見ても上達するのかな・・
174 :
156 :2006/02/22(水) 15:50:00 ID:???
>>172 ああ、さっき一度php.iniは置いたのですが、
それはsafe_modeをOFFにしたかったからなんですけど、
どうもこのサーバは元もとOFFだったようで
だったら必要ないのかな、と思って削除しちゃいましたよ。
また置いときましょうかね。
デフォルトのままでいいのでしょうかね。
ま、またあとで編集すればいいのですし、とりあえず置くだけ置いときますよ。
それにしてもphpっていちいちディレクトリごとにphp.iniを置く必要があるんでしょうかね。
いやそんな記述がphp.iniにさっきみたとき書いてあったんで。
>>171 実を言うと本は読めないのですよ・・・orz
数学とか英語は偏差値90越えは普通でしたが、
国語だけは偏差値30くらいでした。池沼クラスです・・。
>>173 そうそう、「.」で始まるファイルを非表示にしたいのですが、
これは確かにbashで培ったスキルをもってすれば意外と簡単カモデスネ。
^.とかかな、とにかくphpの正規表現調べてやってみますね。
>>170 ありがとう。がんがります!
>>174 んまぁ、bashとか全然毛色の違う物の経験則に引きずられるのなら、
いっそ、passthru()とかでls叩いて、戻り値を整形したら?
本が読めない人間に、言語の習得は非常に困難だと思ふ
ってか、文学本か何かと間違っていないか?
176 :
156 :2006/02/22(水) 16:24:13 ID:???
正規表現はここを参考にして
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm ↓こんな感じにしてみましたが、ifのところがやっぱりおかしいんですかね・・。
うまくいきません。
ちなみにphpってエラーが起こると「何行目がおかしい」ってちゃんと表示するので便利ですね!
$dir=@opendir(".") or die("failed to open the directory");
while($file = readdir($dir)) {
if (($file)!="^¥..*"){
echo '<LI><A HREF="' . $file . '">' . $file . "</A>¥n";
}
}
closedir($dir);
>>175 lsを使ってdirectory表示させる方法はSSIですでに実現できています。
phpを学ぶひとつの例としてdirectory表示に挑戦しているのです。
ちなみに、言語を学ぶのには、英語と同じで、まずは実際の例文にいっぱい触れるのが
一番だと思いますよ。
文法から入っちゃうとかえって学ぶ速度が遅くなります。経験的に。
例文を読んでみて、「これってどういう意味なのかな?」って逆引的に
正書などで学ぶのが王道です。
>>174 2ch暦何年?
いい加減ウザいよ。
空気読めてない事ぐらいは察しろよ。
それができないなら質問スレでなりふり構わずレスするな。
178 :
156 :2006/02/22(水) 16:25:04 ID:???
今から夜勤なのでそろそろ行きますね。 みなさんのおかげでphpのなんたるかの触りくらいはわかるようになってきました。 またご指導よろしくお願いします。
179 :
156 :2006/02/22(水) 16:26:52 ID:???
>>177 2ch歴は3年くらいでしょうか。
空気を読むのはおまえよりは100倍くらい上だと思いますよ。
空気を読めてないのは自分だけってのがわからないみたいだね。
2chはまだまだ177のような初心者をいちころでだませるので楽しいですね。
じゃ、こんどこそ夜勤に言ってきます。
177はくやしかったら捨てぜりふのひとことでも吐いててねw(ぷげら
>>176 君はPHPよりPerlの方が向いてるかもしれない。
あれはsh他のコマンドラインスクリプトの発展したものだから文化が近いと思うよ。
PHPは見た目が少しPerlに似てる程度で考え方の基本はC言語に近い。
182 :
nobodyさん :2006/02/22(水) 16:40:43 ID:stieJNuS
最近PHP使わされてるんですが、PHPって、 たとえば関数がオブジェクトをかえすときに、 function foo() { return new Bar(); } foo()->baz(); みたいな関数呼び出しはできないんでしょうか? なんか文法エラーって怒られるんですが… PHP4です
>>179 一気に萎える('A`)
> 数学とか英語は偏差値90越えは普通でした
そいつは尋常じゃない数値だね。
英文で書かれた参考書の方が君にはあってるっぽいよ。
それと
if (($file)!="^?..*"){
の"^?..*"はマッチパターンであってereg関数なり使わないと。
ピリオドが2つ続いているのは良く分からないけどね。
偏差値90ってそうとう母集団が偏ってた予感。 全国テストとかなら満点とっても取れないよなぁ。
>>183 Perlなら if($file =~ /^\..*/) でいけるな。
あと、^\..* の正規表現の意味が分からないって、お前の方がやばくないか?
まぁ、後半の .* は別に要らないと思うけどさ。
もうなにやら、突っ込みどころ満載な人間が降臨して
嵐のように書き込んで、風のように去っていったって感じですね…
>>176 >言語を学ぶのには、英語と同じで、まずは実際の例文にいっぱい触れるのが一番
間違ってはいないと思うけど、君、例文とか無視だろ。
例文どおりにやって、どうやったらそんな正規表現マッチが書けるんだか???
ネット上の例文の多くは文責の無い物が混じった玉石混交
その中から正確な情報を適切に拾い出すにも基礎知識が必要になるでしょ。
その基礎知識を身につけるのに書籍とかマニュアルがイイよ、と言われても、
本が読めないとか、言って聴く耳持たず。
終いには、悪態ついて去っていくマナーの悪さ。
>>177 もバカだけど、3年も2ch見ていて、煽りにいちいち反応するなよ。
188 :
182 :2006/02/22(水) 16:56:43 ID:???
>>187 …なぜ?
意味解らん。
普通にプログラミング言語を設計(というかBNF)すれば、
半自動的に出来るようになりそうなもんですが…
>>188 PHP4のオブジェクト指向は後付の設計でオブジェクト指向向きの構造になってないから
>>185 いやいや、正規表現の意味が分からないんじゃなくて
このケースでは不要じゃないかな?と思って書いただけだよ。
>>190 実際には意味がなくても冗長な正規表現を書いちゃうことくらいよくあることだ
192 :
182 :2006/02/22(水) 17:02:47 ID:???
orz ボスにかけあってPHPから脱出します ちなみに5では可能でしょうか?
とりあえず、丸っきりの素人で書籍も読む気がない、というのであれば くだらない質問スレ行き確定ってことでいーんじゃないか。
>>176 の後半を読んで、ゆとり教育の弊害を痛感した。
例文から入ってわからんところは全部人に聞く。 確かにはためーわくだが効率はいいかもしれんなwwww
>>176 ・・・・王道
裸の王様にならないようにね。
/~sheel/モノは放置の方向でお願いします。
サブドメが俺様
>>179 周囲の人間をもう一度よく見渡してみましょう。
空気読むのってなかなか難しいことですよ
ただし、
>>177 も空気読んでないように思えますが。
空気読むのは日本人の悪い特徴ニダ
空気嫁=ダッチワイフ
空気婿は無いのかな?
挿れるとバリの部分が相当痛いぞ。 中を傷つける恐れあり。
209 :
156 :2006/02/22(水) 23:38:40 ID:???
韓国人みたいな人が帰ってきたな。
もう春厨がわいたのか?
ADOdbを利用しています。 $DB->getRow($sql); の結果のインデックスが数値のものと文字列のものが二重で 出てくるのですが、文字列インデックスのものだけにする方法はありますか?
>>213 文字列にキャストする。
$result = (string)$src;
もしくは関数を利用する。
strval ($src);
これ使えるか知らんけど、
settype ($src, typename);
typenameは文字列で"string"にすると文字列を返す。
一応マニュアル見てくれ。
>>213 事前に
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
でモードを設定
>>214 何の話だそりゃ
>>215 サンスコ!でけた!
直前だとこれでもいける
$DB->SetFetchMode(ADODB_FETCH_ASSOC);
217 :
156 :2006/02/23(木) 04:47:14 ID:???
>>183 ereg!!!
こんな表現をいちいち使わないといけないのですね。
ちょっと戸惑いを感じましたが俺様のスキルの高さのためか、
おまいらのせいかよくわからんけどなんとかやりたいことが
できるようになりましたよ!!!
<現在のディレクトリ内のファイルとディレクトリを
まるでApacheのFancyIndexのように一覧表示する。
ただし「.」(ピリオド)で始まるファイルorディレクトリは表示しない>
<?php
//open directory
$dir=@opendir(".") or die("failed to open the directory");
while($file = readdir($dir)) {
if ( !ereg ( "^¥.", $file)) {
echo '<LI><A HREF="' . $file . '">' . $file . "</A>¥n";
}
}
closedir($dir);
?>
218 :
156 :2006/02/23(木) 04:51:31 ID:???
>>219 ありがとうございまし!
なんとかできますたね!
おれさまのスキルだよ!
ttp://oresama.hopto.org/~sheel/phptest/directory.php PHPってのはbashと違って
・echoのあとにただ以下のように羅列していくだけでいい(下記参照)
・>とか、<とかをエスケープする必要がない
・エラーが起こるとブラウザ上で何行目がエラーか表示してくれる
っていう利点がてんこ盛りですね。
ますますphpにのめり込んでしまいそうです。
echo '<LI><A HREF="' . $file . '">' . $file . "</A> " . sprintf("%u", filesize($file)) . " " . date ("F d Y H:i:s",filemtime($file));
なんだこいつ きもいな
>>221 それはお前が作ったんじゃないだろ
ただ設置しただけ
単なる能無し
156は放置の方向でってなってるじゃん。こいつ出てくると 荒れるんだって。
>>156-160 辺りでは
謙虚な初心者だと思って幾つか回答もしたんだが、
はっきり言って、今は後悔しているorz
久しぶりに香ばしい奴が湧いてるなw
俺は昔から177はやってくれる子だと思ってたよ。
230 :
nobodyさん :2006/02/23(木) 11:32:08 ID:cRiHYjaV
指定されたファイル名が無い場合に それを作って保存してくれる関数って無いでしょうか
231 :
nobodyさん :2006/02/23(木) 11:34:22 ID:NhHoHXRn
PHPを使ってMySQLを操作しています SQLのinsert文やupdate文を用いてテーブルを更新 insert into テーブル名 (名前) values ('値') //自分の例 このような場合、「値」の部分に「'」が入っていると(例:TE'ST)実行に失敗するのですが よい回避方法はありますでしょうか? htmlentities($name, ENT_QUOTES);で文字を変換してやってみましたが出来ませんでした
PHPでXML関係の処理についての質問なのですが、こちらで良いですか?
もし板違いスレ違いだったら誘導していただけると助かります。
PHP5でSimpleXMLを使ってXHTMLファイル処理したいのですが、
どうも <html> 要素に xmls="
http://www... " を指定すると、xpath()でノードを取得できなくなってしまいます。
xmlns 属性をまるごと消すと、目的のノードを取得できるようになります。
なぜ xmlns を指定すると取得できなくなるのか、原因と対策をご存知でしたら回答お願いします。
-----------------------------------------------------
【src.html】(このXHTMLの <html> 要素から xmlns を削除するとちゃんと取得できます)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html lang="ja" xmlns="
http://www.w3.org/1999/xhtml " xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト</title>
</head>
<body>
<div id="nullpo">
ぬるぽ
</div>
<div id="ga">
ガッ
</div>
</body>
</html>
【test.php】
$sxml = simplexml_load_file('./src.html');
$xpath = "//div";
$res = $sxml->xpath($xpath);
var_dump($res[0]);
236 :
nobodyさん :2006/02/23(木) 13:50:14 ID:cRiHYjaV
237 :
221 :2006/02/23(木) 14:05:43 ID:???
>>223 あ、すみません。全くその通りですた・・・ooorz
ttp://oresama.hopto.org/~sheel/phptest/bbs/gazou.php このBBSはまんま「レッツPHP」さんの秀逸なBBSを
そっくりそのままの形で設置してみましたのです。
これをわたしがつくったかのように書いてしまったのはすみませんでした。
わたしはただ、PHP例文に多く触れることにとにかく主眼を置いていますので
とりあえず設置してみただけです。
設置、とひとことで言っても、これを行うにはMacOSXの
Terminalを使用してchmodコマンドを駆使したり、
mkdirコマンドを駆使したり、割と様々なテクニックが必要であり
1年前のわたしではまったくできなかったことでした。
とにかく「今そこにあるPHPプログラム」を少なくとも
「設置」くらいはできるようになった、と感動すら覚え、
まるでこどもが親に「ほら、ボク、こんなことができたYO!」
と言っているかのような錯覚に陥っていたのも事実でした。
ところで、PHPを使うと、 データベースの作成?流用?も楽々っぽい印象を思っています。 PHPのデータベースとの親和性を前面に打ち出して、 「署名をつのるためのPHPブログラム」 をつくってみたいと思います。 今、具体的に頭に描いているのは、 名前 所属 メールアドレス コメント というのをそれぞれ入力してもらい、 [投稿する]ボタンをクリックすると投稿される、というものです。 これはまんまBBSの形に似ているので、BBSを動かすPHPプログラムを ちょちょっとせせるだけでなんとかならないかなぁと思っています。 もしなにかアドバイスがありましたらひとことだけでもよろしくお願いします。
>>231 mysql_real_escape_stringかmysql_escape_string
どちらがいいかはマニュアル調べれ
>>237 これからも、ここに書き込むのなら、
名前を固定にしてトリップをつけると幸せになれると思いますよ。
3年も2chに馴染まれているので、今更でしょうけど、
念のため、名前欄で「俺様#hogehoge」とかであなただけのトリップが持てますからね。
是非。
やっとあぼーんできる
やっぱりダメですね。 スキルアッププロジェクトは遅々として止まったままです。 news.batへの書き込み自体はどうもうまく行っているようです。 なぜかというと、if分岐を削除すると ちゃんと[]のnullが書き込まれているからです。 問題の根源は、formからsubmitとcontentsを postしてないか、postされているのに受け取れない、 のどちらかかと思われます。 apacheの設定でformからのpostを有効にする、って設定が あったりするんですかね・・・。で、それが無効になっている、と。 ちょっとその辺をひとりで調べてみますね。
皮先かよ!!本人か!?MacOSXだしな…
てかID出さないやつの質問に答えるのってどうなの。
>>245 とか明らかに本人だろ。
247 :
皮先くん=241=242 ◆N3i.Qu1SoY :2006/02/23(木) 17:17:49 ID:cy2LQUXf
失礼しました。
IDを出さない行為がよくない行為だというのは初めて知りました。
これからはIDもトリップも露出して正々堂々と闘うことを誓います。
>>244 の続きの話ですが、
どうもapacheは最初からpostとかgetとかサポートしているみたいですね。
というか世の中ほとんどGETなどの世界でWWWが存在しているっていうかw
う〜む、原因がわからない。
誰も教えてくれないようなのでひとりで悩むより
次の課題に取り掛かりたいと思います。
課題を思いついたらまた書き込みますね。
誰かが課題を出してくれても大歓迎です。
PHPのスキルの更新が目的ですので。
皮先練習スレとか立てた方がいいんじゃないのかww
>>239 さん
ありがとうございます
一応自力でどうにかする方法も見つけたのですが、こっちの方がスマートそうです
4.3以降はmysql_real_escape_string
それ以前はmysql_escape_string
を使うようです
え・意図してIDって出せるの?
メール欄空欄なら出るのでは
254 :
nobodyさん :2006/02/23(木) 18:10:22 ID:QpcRsDDO
文字コードについてお伺いしたいのですが、AJAXを使うにあたり、今後 UTF-8でPHPなども組んできたいと思います。 sjisだとsubstr関数が上手くいかないなどの問題点を聞いた事はありますが、 URF-8の問題点などございましたら教えてください。 ちなみに、現在はEUCを使用しております。宜しくお願いします。
255 :
nobodyさん :2006/02/23(木) 18:14:23 ID:cy2LQUXf
太陽と北風っていうイソップ物語で言えば、
皮先はちょうど太陽のような存在だろう。
あぽーんさせないためには普通はトリップをつけないことを
考える(=北風)が、皮先は太陽のように
自分からあぽーん設定を解除させる術に長けている。
>>251 >そんなこと言っちゃったら名無しに戻っちゃうだろ
それを敢えてせずに真っ向勝負が皮先クオリティ。
いつしか皮先のハイクオリティな書き込みを見たくて
透明アポ〜んを外したくなる、それが皮先。
テンプレにsage質問には答えるなって書いとけよ。 ここの回答者全員バカじゃんwwwwwwwwww
あぽ〜ん か
全くだ。ここのスレが荒れたのは皮先が悪いのではなく 書き込む人間が愚かだったからとしか言いようが無い。
なんか皮被りの自演レスが目立つな
>>254 Unicodeから他の文字セットに変換する際に
その変換テーブルが統一されてないので、
文字の一部で変換に環境による違いが発生する。
ユーザ関数内で定義した関数を外部から呼び出すにはどうしたらよいでしょうか? function hoge(){//本当はもっと複雑です。 $a = 'hoge'; } echo $a; みたいなことがやりたいのですが、出来ませんでした。 逆はglobalで出来るのですが、このパターンは分かりませんでした。 ご存じの方教えてください。
今日の10日後とかを表す簡単な方法きぼんぬ
おまいら、下らない質問スレ行けって
まぁ、難しい話だよな 自分の質問が下らないかどうか分かるレベルならこのあたりの質問はしない つまり質問者にどうこう言ってもねぇ・・
でも「簡単な方法きぼんぬ」がくだらなくない質問だったら
世の中の質問はみんなくだらなくないと思う。
ぶっちゃけ、くだ質の中でも最低ランクの質問だと思うぞ
>>264
回答者がくだらねぇと思ったらスルーすればいいだけじゃん
つーか質問者じゃなくくだらない質問に回答するやつがくだ質スレに逝け
でもスルーだと誰も読んでいないのか、スルーなのか、誰も分からないのか判別付かないかも 「そんな下らない質問するな」とでも書くか?
array(['user_id']=>'3',['user_id'] =>'7') となっている動的に返される配列を array('3','7') のように変換したいのですが、どうするのがスマートですか? foreachで展開してまた、配列を作るという頭の悪そうなアルゴリズムしか浮かばないです orz...
有料共用のレンサバでHPを運用しています PHPスクリプトは動いていますがPHPが作ったディレクトリやファイルが消去できなくなっています FFFTPでパーミッション等の設定をいくら変えてもダメです で原因はパーミッションでは無くディレクトリやファイルの所有者自体が違うから まではわかりました(すべてではないが一部ある) このレンサバの仕様は CGI の実行権限 others権限(SuEXEじゃないサバ) ファイルの所有者は私 PHPはCGI版ではなくapacheのモジュールとして動作 CGI を実行するユーザ名 wwwユーザー つまりPHPが作ったディレクトリやファイルの一部が私ではなくwwwユーザーになっているものが 原因のようです(すべてではないが一部ある)。FFFTP上でも所有者名が違うことがわかります。 Googleしたところ、CGI等が作ったファイルが所有者違いのため消せないことがある そういう場合はCGIを使って消すべしとあったのでFFFTPで直接消そうとするのではなく rmdir()やunlink()のスクリプト経由でやってみましたがこれもダメです 今回は最悪サバ缶に消去を頼むとしても、原因を突き止めないと消せないファイルはこれからも 作られ続けるので PHPのどこを気をつけたらこの症状が防げるか これを消すPHPのプログラムがあったら教えていただけませんか
278 :
276 :2006/02/24(金) 17:06:05 ID:NYH/iAxr
>>277 エエェェ(´д`)ェェエエ
良ければもう少し詳しく教えていただければ助かります
このサバにいるかぎり直す方法はナイということですか?
共用だから他にも利用者がいるので文句が多数出ないように
そういう仕様にはしないような気もします
この理解は違うのでしょうか
>>276 やり方が悪いだけだと思う
エラー表示させたら原因もわかるだろ
そのディレクトリのオーナーならそのまま消すこともできるだろうが ディレクトリ自体もphpで掘ったなら、ちょっとめんどうだね
>>276 phpの問題、つうか、セキュリティ上の問題。
セーフモードで動いてるんで、そうなる。
鯖を変えたところで、セーフモードでやってる所じゃ同じ事になるね。
たぶん、phpでファイルを消すスクリプトがおかしいんだろ。
ファイル作ったときに、パーミッションを適正に設定してないとかじゃねーの?
>>276 普通は、ディレクトリを先に作っとくもんだ。
なぜこのスレに皮先が…orz
284 :
276 :2006/02/24(金) 17:31:58 ID:NYH/iAxr
>
>>280 >ディレクトリ自体をphpが掘ったなら
こういう現象になることがあるということですか?
>>279 PHPスクリプト自体はご機嫌よく稼動しています
エラーはとくに無いみたいです
285 :
276 :2006/02/24(金) 17:46:14 ID:NYH/iAxr
皮先うぜえな
なにこのひどい過疎っぷり
くだ質で十分だとみんな気づいちゃったんじゃない? そもそも下らないかどうかなんて、主観というか本人のレベルに依存する話だしな。
皮先が通ったあとはペンペン草も生えないってどこかでみたことある。
290 :
nobodyさん :2006/02/25(土) 14:45:50 ID:Z8amSH1W
全くの素人です。 os=windows XP HTMLコーディング=出来ます。 CGI=有り物の設定をちょこっと変更する程度。 PHPでこんなことをやろうと思っています。 ------------------------------------------------------------------- HPの右隅にカレンダーと新着を置いて、別webページより管理 カレンダー:2ヶ月表示オートで切り替わり、管理ページより指定した日にちだけ だけ赤く表示・キャンセル機能 新着:管理ページより、新着情報入力追加・削除・コメントリンク機能 ------------------------------------------------------------------- HPで表示するだけ、別webページで管理変更をPHPで作れるのでしょうか? PHPで出来るとしたら、構造はたぶん頑張って勉強して出来ても、HPへの引き継ぎ処理が何をどうやればいいか見当が付きません。 PHPの根本から勉強しなくては出来ない事でしょうか?
>>290 貴方が使われてる「HP」の意味が不明瞭です。
(HomePageの略であろうことは判ります)
現在のHomePageの意味合いは、Webブラウザでアクセスできる
インターネット上のコンテンツぐらいの大雑把なものなので
CGIやPHPで作った動的なコンテンツもHomePageといえます。
>>291 そこまで言うなら
ホームページ→ブラウザのホームボタンを押した時に表示されるページ(サイト)
>>290 3回くらい読み返してみましたが
何を聞きたいのかさっぱりわかりません。
適当におぎなって推測しても5通りくらいに解釈できます。
質問を整理してください。
294 :
nobodyさん :2006/02/25(土) 15:44:41 ID:Z8amSH1W
>>291 不明瞭な表現をし、失礼致しました。
トップページのカレンダーと、新着情報を管理ページからの変更で内容が変わるようにしたいと考えております。
管理用のアクセス制限ページを作り、そこで変更・追加・削除の管理したいと思っております。
>>294 いや、具体的な機能(表示とか管理)の話以前に
「HPへの引き継ぎ処理が」というところで
その"HP"って何よ?という疑問がでるということ。
296 :
nobodyさん :2006/02/25(土) 16:00:13 ID:Z8amSH1W
>>293 1.PHPでサイトトップページの二ヶ月表示のオートカレンダーの色変更を別ページから、更新できるようにすることが可能でしょうか?
2.PHPでサイトトップの新着情報の変更・追加・削除・を別ページから、更新できるようにすることが可能でしょうか?
3.PHPで出来たとしても、(テンプレ等探しましたが見あたらず)本を読む程度の漱石じゃ不可能そうでしょうか?
297 :
295 :2006/02/25(土) 16:00:20 ID:???
ああ、サイトのトップページのことね。 そのトップページの生成方法を ・新着情報等をincludeするSSIを利用したshtmlにする。 ・新着情報等をincludeするPerlやPHPを利用したCGI他の動的なものにしてhtmlを出力する。 ・トップページは静的なhtmlにして、そのhtmlを別の管理プログラムで書きかえる。
298 :
295 :2006/02/25(土) 16:03:27 ID:???
>・新着情報等をincludeするPerlやPHPを利用したCGI これはincludeじゃなくて「取り込む」という意味で
>>290 PHPでそういうサイトを作れるか?ということであれば、作れます。
> PHPの根本から勉強しなくては出来ない事でしょうか?
ある程度自在に操れない人の場合、自作するのはかなり困難でしょう。
残念ながら、そういう仕組みの既存のスクリプトがあるかどうかは知りません。
>>295 引継ぎ、つーか、(PHPスクリプトが処理する)変更を(HTMLで作ろうとしている)画面上に反映、ってことだべ。
HTMLにPHPを埋め込める つー悲しい誤解が導き出した悲劇だぁね。
実際には、こういう手順になる。
1. もともとhtmlファイルだったものをphpの中の人が処理できるように拡張子phpに変更する。
2. 必要に応じてphpの命令を埋め込む。
300 :
290 :2006/02/25(土) 16:13:10 ID:Z8amSH1W
>>293 >>295 ありがとうございます。
解決の糸口が見えてきた気がします。
メモして、何とか探して勉強してみます。
>>290 名に言ってるかさっぱりわかんね
だがIDを出している点は評価してやる。
>>295 てめえは帰れよ
>>301 もっと感応能力を磨かないと、優秀なエスパーにはなれないよ
このスレには馬鹿が多すぎる
そんなこと言われてもねぇ
306 :
nobodyさん :2006/02/25(土) 17:25:15 ID:cZFcTwP1
php5でrdfを解析しています
<rdf:Seq><rdf:li rdf:resource="
http://www.hoge.com/test.php "/>
このようなタグや属性があった場合
getElementsByTagName("rdf:Seq")やgetAttribute("rdf:resource")ではうまくいかず
getElementsByTagName("Seq")やgetAttribute("resource")と書くとうまくいくのですが
このような事が起こってしまう原因をご存知の方はいますか?
できれば正確な名前"rdf:Seq""rdf:resource"でアクセスするようにしたいです
>>306 getElementsByTagNameNS()
>>288 そろそろこのスレとくだ質を統合する時期にきてるのかもね。
くだ質だけあれば十分w
>>307 ありがとうございました
なんとかできそうです
SSIでbashを使って
ttp://oresama.hopto.org/~sheel/nwbachlow.shtml このように2006年2月の各都市の最低気温の平均値を自動算出させて
使っています。重宝しているのですが、スクリプトをいちいち書き換えなければ
現状では2006年の2月しか対応できません。
そこで質問です。
formを使って○年の△月の○と△の部分をshellscriptに送る方法は
ありますか?
もしくはshellscriptではなく
phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
>>310 > phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
データがあれば、スクリプト組めば算出できるんじゃね?
shellscriptはスレ違いだと思う。
>>310 bashスクリプトがコマンドライン引数を受け取って処理できるようにしてあれば
$output = `スクリプト $引数`; って形でスクリプト呼んで出力を受け取れるよ。
皮被りはスルーの方向で
314 :
311 :2006/02/25(土) 20:36:25 ID:???
315 :
皮先くん ◆N3i.Qu1SoY :2006/02/25(土) 20:46:54 ID:F0bSXXFW
>>311 ありがとうございます。
データは気象庁のWebサイトからcurlコマンドで取得しています。
phpでは、bashみたいに
(1)curlして
(2)好きな行の好きな数値だけをgrepやsedでピックアップ
ってなところも可能ですか?
(´-`).。oO(質問マダー?(・∀・)っ/凵 ⌒☆チンチン)
最近、質問が少ないね…
質問カマーンщ(´д`)
えと・・あの・・・(もじもじ) や、やっぱりやめときま・・あ、でもこれ訊かないといけないし・・ ば、ば・・バナナはおやつにはいるんですか?
>>285 むかーしハマったの思い出した。。
コレ使ってみ
function delDir( $dirname )
{
if ( ! file_exists( $dirname ) ) return "見つからない";
$dh = opendir( $dirname );
if ( $dh === false ) return "開けない";
while ( ( $file = readdir($dh) ) !== false ) {
if ( $file == "." || $file == ".." ) continue;
if ( ! unlink( $file ) ) {
closedir( $dh );
return "ファイルが消せない→$file";
}
}
closedir( $dh );
if ( ! rmdir( $dirname) ) return "だめでした";
return "おしまい";
}
>>320 削除できない時に、もちっとchmodして足掻いてほしい。
>>321 あー、こうかな
if ( ! unkink( $file ) && ( ! chmod( $file, 0666 ) || ! unlink( $file ) ) ) {
>>322 こらこらその行の前に$file=$dir.'/'.$file入れろ
関係ないファイル消すぞ
324 :
皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 02:26:44 ID:WcIHh0oV
324が見えないな
326 :
皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 02:42:30 ID:WcIHh0oV
まぁ焦らずともそのうち見えるようになるよ。
なんでスレ番が飛んでるの?
世界の七不思議の一つ
329 :
nobodyさん :2006/02/26(日) 03:49:50 ID:tRG/7BVD
mb_send_mail関数で日本語メール送信すると日本語の部分が??になる php.iniは間違いなく設定してある 同時にログを取るためにfwrite関数を使ってるけどこれも化けてない 考えられる原因を全て答えろ童貞うんこちんこども
mb_language("Japanese"); mb_internal_encoding("使ってる文字コード"); これをmb_send_mailする前に呼べばうまくいったような覚えがするが 動かなかったらごめんね、小便野郎
皮もついに名無しか...
皮先結局nobodyかよwwwwwwwテラバロッシュwwwwww
333 :
皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 04:16:24 ID:WcIHh0oV
質問マダー?
皮先のせいで相当空気悪くなったからなぁ・・・
質問マダー?
>>308 個人的にはこっちのスレ残して欲しい。くだ質は読んでないし書き込みもしてないし。
まあ本当にスレの必要がなくなれば誰も書き込まなくなって自然に落ちるのだから統合だのなんだの言うだけ無意味だが。
人がいる限りどうせ次スレ立つでしょ。
回答する人もあんなやつの質問には答えたくないだろうな
偏差値90とか平均点10くらいのテストで一人だけ100点とるようなことじゃないと無理 平均点10のテストなんて中学生に東大入試解かせるとかそんなんだろ 実際は数学英語国語全て偏差値30以下の池沼なんだろうけど
高三のとき駿台模試でネタバレ使って数学満点とっても70後半だったな。
90なんてハッタリは偏差値の概念知ってたらこけないから
>>174 は中卒だろ。
池沼学校で超優秀な生徒だったんだろ 池沼学校で国語偏差値30なら池沼の中の池沼だなwwwwwwww
偏差値の計算方法を知っていれば嘘か本当かはすぐわかる
そんなに引っ張るネタか? また来られたらウザイしもうやめようやそのネタ
小さなことで後からつつくのは愚かな行為だ。 ここはPHPのスレなんだから、質問以外の会話は必要ないだろう? 大人数で一人の人間を攻撃するなんて君たちは最低のクズだな
346 :
皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 14:27:36 ID:dOqMy4uq
まぁ実際のところ
>>340 の言う通りで、
全国平均点が10点もないとんでもないテストがあって、
それで100点取ってみたら偏差値105くらいだったよ。数学な。
まぁ2年の最初で3年も一緒に受けるテストだったからそれくらいの平均点はしょうがないし。
それにしても
>>342 の言うことは正しい。
東大に行ったくらいで神扱いな底辺高校だった。
for文の中で、一番最後にやりたい処理があるんだけど ループ内でcontinue使いまくりで最後ってどこよ?てときに for( $i=0; $i<100; f(),$i++ ){ $i++のとこによく関数呼び出しいれちゃうんだけど、これって マナー的にはどうなの?
ループするたびに関数呼び出すよりは ループ内で条件分岐させた方がスマートだと俺は思う。
349 :
皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 14:53:45 ID:dOqMy4uq
>>324 の件なんですが、
formでPOSTされたものをphpスクリプトで受け取る方法はわかったのですが、
POSTされた値をtext.batファイルに書き込むことがいまいちわかりません。
これはどうやったらいいのでしょうか?
今は↓こんなふうにやっていて、submitするとtext.datに
書き込まれるはずなんだけどなぁと思いますがうまくいきません。
ちなみにアクセス権はよくわからないのでなにも考えなくていいように
全部777にしています。どうも「print」の部分はうまくいくのに、
「fopen」関連はちゃんと動作していない感じです。text.batに何も書き込まれないので。どこがわるいのでしょうか?
<?php
$filename = "text.dat";
if (isset($_POST['submit'])) {
print "Your name is " . $_POST['name'] . ".<br>";
print "Your sex is " . $_POST['sex'] . ".<br>";
print "Your hobby is " . $_POST['hobby'] . ".<br>";
print "Your OS is " . $_POST['OS'] . ".<br>";
print "Your opinion is " . $_POST['kansou'] . ".<br>";
$file = fopen($filename,"w");
flock($file, 2);
fwrite($file, $POST_['name']);
fwrite($file, $POST_['sex']);
fwrite($file, $POST_['hobby']);
fwrite($file, $POST_['OS']);
fwrite($file, $POST_['kansou']);
flock($file, 3);
fclose($file);
}
?>
しかしこの固定ってホント理解力ないよな 典型的に頭悪いガリ勉タイプだと思う
351 :
nobodyさん :2006/02/26(日) 15:55:59 ID:izomZemY
ども、たった今PHP始めたところです。 質問なのですが、 if文の条件部分に間違えて代入演算子を使ってしまったのですが PHP、アパッチ共に怒ってくれませんでした。 if( $hoge = "hogehoge" ) { } で、入門書で調べたところ、 「気をつけてコーディングしてください」 とだけあったのですが、 皆さんは、自分で気をつける以外の方法をお持ちですか? (チェックツールのようなもの?)
;
>>351 その間違い間違いであるがエラーではないからだれも教えてくれません。
その手のミスを防ぐ原始的な方法としては
if ( "hogehoge" == $hoge) ;
と書くようにすること。こうすれば "hogehoge" = $hoge はエラーとなるのでわかりやすい
$x == NULL で良く使われるヤツだな。 NULL == $xって最初は何だ?って思うんだけどね。
>>351 ifの条件式の中で代入演算子が使えなくなったり怒られたりするようになると、手間が増えて面倒。
特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。
ミスの対処法は
>>353 が書いてるようにするくらいしか無いんでね?C FAQでも見かけた希ガス。
なるほどな、そう書けばタイプミスしても代入されずに済むか
357 :
nobodyさん :2006/02/26(日) 16:37:46 ID:YAFRqcKG
MySQLに接続失敗したときに出るメッセージを出力されないようにするにはどうすればいいんですか?
358 :
nobodyさん :2006/02/26(日) 16:39:13 ID:izomZemY
>>353 いや、ホント助かりました。
ありがとうございます。
VB→C#とやってきてるのですが、
$hoge = 12;
$hoge = "test";
#hoge = date("Y");
とか、型宣言してないのに。。とか、驚き中です。
先ほどの質問後にIDEでもあればいいのかなと思い、
ttp://phpspot.net/php/phpeditor.html がHITしたので、特徴にある、
「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。
>>354 あ〜、なるほど〜って感じです。
先輩。助かりましたよ。
ありがとうございます。
>>355 そうですよね、条件文内で関数使いますもんね。
>特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。
これ、メモっておきました。
ありがとうございます。
ちょっとした疑問追加です。
echo関数の引数に、改行コードを含めるのは慣例で、
理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
>>358 > 「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
> で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。
それを怒るIDEは存在しないと思いますよ。構文としては合ってるし、よく使うから。
if($hoge = hoge()) {
hoge2($hoge);
}
みたいな感じで、関数の戻り値をチェックするのと同時に変数に格納しといて
ifの中でその値を利用する…みたいな書き方は普通にやります。
よく使うケースは
if($fp = fopen("file", "a")) {
fputs($fp, $data);
}
$hoge = hoge();
if($hoge) {
hoge2($hoge);
}
と分けてもいいんだけどかえって煩わしいので。
それにしても if("hoge" == $hoge) ってミスタイプ防止が目的だったのか…
同じ会社でこういうコーディングする人がいるから何でだろうとずっと思ってたよ。
>>357 適切なエラー処理
根本的な接続ミスの対処
>>357 該当部を@でエラー出力を抑制し、
自前でエラー処理をしておく。
あちゃ。変なとこで投降しちゃった。まぁ、意味は通るからいいか。
>>358 > echo関数の引数に、改行コードを含めるのは慣例で、
そんな慣例は無いと思うけど。
> 理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
出力に改行が欲しければ改行を付ける。不要なら付けない。そんだけ。
HTML中の改行は、場所によっては無視されるのでデザインに影響しないけど、
場所によっては表示に隙間ができたりする場合もあるから要不要はちゃんと考えないと。
363 :
nobodyさん :2006/02/26(日) 17:18:49 ID:YAFRqcKG
>>361 そんなのあるの始めて知った
ありがとう
364 :
358 :2006/02/26(日) 17:22:31 ID:???
>>359 ありがとうございます。
仰るとおり、上述のIDEには怒られませんでした。
また、いただいたサンプルコードで、
理解できました。
$fpにはtrueが入っているって事ですよね。(bool型あるのか。。)
優しく教えてくれて感謝です。
お仕事などお忙しいでしょうが、
頑張ってくださいね。
>>362 よくわかりました。
>場所によっては表示に隙間ができたりする場合もあるから要不要はちゃんと考えないと。
これ、助かりました。
知らなかったら必ず一回はハマりそうです。
そこら辺も意識にいれてやっていきます。
ありがとうございます。
それでは300円で買った10日で覚えるシリーズを
今から10日分進めたいと思いますです。
皆さん、ありがとうございました。
chmod($logfilename,0666); というスクリプトに対してwarning! chmod() opening なんとか remitted in なんとか online 243 とか言う警告がサーバーでプログラムを動作させると出るけど何でしょうか? ちなみに画像掲示板スクリプトですが動作は正常です。あくまで警告が気になります。
>>365 ファイルのオーナーが違うかパーミッションの問題かサーバーで制限をかけてるかで
chmodがちゃんと働いてないんじゃないの?
特に困ってないなら @chmod() って感じで@つけて表示を抑制しちゃってもいいと思うけど。
φ(..)メモメモ ==では定数を左に置くと、比較演算子と代入演算子を間違えるミスをし難くなる ・・・と
ミスのしやすいさは変わらん。 ミスしたときに気づきやすい
同ページ内で、携帯端末(FOMA WIN 3G HDML mova willcomeなどなど)とPCを振り分けるPHPはどうすればいいんですか?
371 :
365 :2006/02/26(日) 18:14:48 ID:???
ご親切にありがとうございます。 @ってどういう効能でしょうか?//などのコメント表示とは意味合いが違いそうですが。 まずは言われたとおりにやってみます。
372 :
nobodyさん :2006/02/26(日) 18:16:53 ID:rIz4zvid
>>370 ファイルを呼び出して、表示というのはできないのですかね?ファイルを呼び出しだと、更新が楽なのですが…
373 :
366 :2006/02/26(日) 18:19:58 ID:???
371で質問した@マーク表記については自己解決しました。 サーバー制限やオーナーなどの場合の対処ってどういうのがあるでしょうか? 質問範囲が広すぎて答え難い場合は失礼します。
>>372 User Agentで振り分けた後、それぞれ必要なふぁいるをincludeすればOK
PHPのインストールがうまく言ってないようです。 次の様なエラーがでてきます。 対処方法をお願いします。 Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'root@localhost' (Using password: YES) in c:\program files\apache group\Apache\htdocs\test.php on line 4 can not connect db
>>375 MySQLに接続できてないだけ。
rootユーザのパスワードが間違ってるんでねーの
ASP.NETにあるような、 コードビハインド的な手法は、 PHPで確立されていますか?
>>378 コードビハインドって何じゃ?と思ったが、ググってみるとHTML部分を外部に放り出すってことか。
「テンプレートエンジン」って言う事の方が多いかも知らんね。
幾つかあるけど、PHP開発元の推奨だと、smarty(
ttp://smarty.php.net/ )かねぇ。
>>379 とても有益な情報、ありがとうございます。
そして、とても丁寧に。。
>>379 さんの書いたソースは読みやすそうです^^
リンク先、熟読してみます。
ありがとうございました。
375です。 ありがとうございました。 解決しました。 しかし、次の壁にぶち当たりました。 次の様なものです。 よろしくお願いします。 Parse error: syntax error, unexpected '<' in c:\program files\apache group \Apache\htdocs\mytest1.php on line 33
>>381 それはただの文法エラー。
どっか書き間違いしてるんでしょ。
383 :
nobodyさん :2006/02/26(日) 20:19:53 ID:IH+ZKFPy
プルダウンメニューで選択後、submitボタンで選択した リンクに飛ばすphp教えていただけませんか。 よろしくおねがいします。
>>383 選択した値(なんでもいい)に応じて飛ばす先のURLを用意して
header()でLocation使って飛ばすだけ。
xml_parse()でXML読んでるんですが、パースエラーがあったときに ドキュメントのどこらへんでエラーがあったか知るうまい方法教えてください
>>381 英語を解読しましょう。
ただし、33行目を見渡してもエラーがない可能性もありますので、
その前後も見てみましょう。
あと、次からもう少し自分で調べる努力をしてみてください
>>386 XMLはあまり使わないんでよくわからないけど、
xml_get_current_line_numberは違うのかい
>>388 ありがとうございました。まさにそれです。
危うく無駄な自作メソッドつくるとこでした。
391 :
nobodyさん :2006/02/26(日) 21:58:49 ID:rIz4zvid
>>369 お前の中の認識がものすごくおかしいのが気になる。
電波伝播方式世代: 3G
世代ブランド:FOMA WIN mova
ファイル形式: HDML
会社名: willcom (willcomeじゃねぇよ)
$_GET をもう一度URIに戻すときは PHP5なら http_build_queryを使えばいいよね。 でも、これをもう一度FORMに戻すときは まじめにつくらなきゃダメかね? foreach($_GET as $k=>$v) print("<INPUT TYPE=HIDDEN NAME='$k' VALUE='$v'>\n"); $_GET にさらに配列が入ってたのでアウトだった。 面倒くさい。なんか便利関数無い?
炒る米
>>393 そんな便利な関数あったのか、サンクスw
>>395 おばあちゃんの遺言が 「セッションは使っちゃあなんねぇ」 だったので
それは却下っぽいです。
>>396 なるほど。いっかい使ってくっつけてまた分解すればいいのか。
$a = http_build_query($_GET);
$b = split("&",$a);
foreach($b as $g){
list($k,$v)=split("=",$g);
print("<INPUT TYPE=HIDDEN NAME='$k' VALUE='$v'>\n");
}
で取り合えず動いたっぽい。ヒントマジありがとう。
parse_str
そんな複雑なフォームを再構築するくらいなら シリアライズして1個のinputにまとめちゃった方がいいんじゃないのか
>>398 $_GETだけだと余計なものまで混じりそうだが
>>399 それ使うと、たとえば "hoge[0]" という文字列が取得できずに
hoge[0] という配列変数がゲットできてしまう。
<INPUT>には書けない。
>>401 余計なものまで混じっても、どうせ余計なものは見ないから
たぶんもんだいない
配列$hogeの値の標準偏差をパパッと出す関数ってあったっけ?
405 :
nobodyさん :2006/02/27(月) 22:23:53 ID:u/5yiFb0
フォームデータで入力チェックするのに ctype_alnum を使っているのですが、 例えば "123456" を入れても false が返ってきてしまいます。 strlen - 1 まで ord で表示させると、ちゃんと "49 50 51 52 53 54" となっているのですが。 文字列の最後 $str(strlen($str)) を ord すると "0" になります。 PHP のバージョンは 4.3.2 です。
>>405 > ctype_alnum を使っているのですが、
> 例えば "123456" を入れても false が返ってきてしまいます。
再現しない。再現するコードを寄越せ、サイトウ。
> 文字列の最後 $str(strlen($str)) を ord すると
> "0" になります。
存在しないデータをordしたら0になるのは当然じゃないのか。ord('')でも0になるぞ。
407 :
405 :2006/02/27(月) 22:40:12 ID:u/5yiFb0
>>406 失礼しました。
たったこれだけなんですが…
$password = $_REQUEST['password'];
if (!ctype_alnum($password)) {
408 :
nobodyさん :2006/02/27(月) 23:06:38 ID:d/u1H5JH
PHP5なのですが、 先ほどインストールを終わらせ、 Eclipse+PHPで、本についてたサンプルコードを 動かしてます。 そこで、 mb_convert_encoding()が、 Call to undefined function mb_convert_encoding() in c:\program files\apache group\Apache\htdocs\tendays\02-01\common.php on line 27 のように、未定義だと怒られています。 もちろん、以下のようにちゃんと書いています(コピペというかファイルそのままコピー) $encoding = "EUC-JP"; $s_encoding = "SJIS"; $data[ $i ] = mb_convert_encoding( $data[ $i ], $encoding, $s_encoding); Eclipse+PHPでも自動補完される関数ですし、 PHPマニュアルを見てもPHP5対応とあります。 何か別途参照設定しないと使えない関数なのですか?
>>408 マルチバイト関数入ってないとかじゃないよね?
phpinfo()
でmb関係有効になってる?
というかくだ質じゃね
>>409 くだらないですね。
すみません!
でも、優しく教えてくれてありがとうございました。
>>407 "!"の意味分かって使ってる?
お前もくだ質池
412 :
408 :2006/02/27(月) 23:20:34 ID:???
413 :
皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 03:09:36 ID:0kpMwz/e
俺様の偏差値100オーバーのスキルのためか、
それともおまいらの"静観"という「最も強力なアドバイス」のためか、
とにかくとうとう成功しますた!!
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php 成功したのは、まず、form.phpからform.phpへPOSTして
(1)POST内容を表示させる
そして
(2)POST内容をtext.datに書き込ませる
というPHPで言うと中級レベルのことができるようになりますた!
一番引っかかったのはやはりPHP4になってから
従来のPOSTの値を受け取る $hogehoge が使えなくなったことに
気がつくところでしょうか。PHP4からは
$_POST['hogehoge']
に変更になっていたなんて・・・。
どうりでどれだけGoogleで検索かけてその通りにやってるのに
うまくいかないわけだよ・・・orz
またそのうちスキルが更新されたときに報告しますね。
414 :
皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 04:01:57 ID:0kpMwz/e
あとは俺様がやりたいことをおまいらどもにわざわざ示してやると、
・text.datへ書き込むときに、以前にデータを置き換えずに追記するようにしたい
さらに、
・text.datへ書きためたデータを元にデータベースとして扱いたい
といった感じかな。
これについてはLet's PHPから会得した
ttp://oresama.hopto.org/~sheel/phptest/poll/poll.php という技を俺様自身が解析をすることより実現できそうな悪寒が(((( ;゚Д゚)))ガクガクブルブルする。
請うご期待!
当スレでは下らなくない質問をお待ちしております スレ住人一同
くだスレで華麗にスルーされたのできますた。 PHPでMySQLのストアドプロシージャを使うにはどうすればよいのでしょうか? mysq_query()コマンドで行うのでしょうか・・
>>416 >くだスレで華麗にスルーされたのできますた。
その質問自体が目に入らなかった。
ストアドとかMySQL4.1や5以降でサポートされた機能は
従来のMySQL拡張サポート(mysql_*関数群)ではなく
改良版MySQL拡張サポート(mysqli_*)を利用する必要がある。
http://jp2.php.net/mysqli
418 :
皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 09:15:26 ID:A8IEBtjw
一応、fopenコマンドで"a"オプションを指定することで 以前のデータに「書き加える」ことはできるようになりました。 また、CSVの方があとで扱いやすいのかな?と思って 下記のようにCSV形式になるようにfwriteしてみますた。 これで一応どんどん書き込まれていくのですが、 さてはてそれを今度はどうやって統計処理などのデータベース化したらいいのでしょうか・・・。 ま、俺様のスキルはすごいのでおまいらが静観するだけで どんどんレベルアップするので静観しておいてくださいね。ぷげらw <?php $filename = "text.dat"; $file = fopen($filename,"a"); flock($file, 2); fwrite($file, "name," . $_POST['name'] . "¥n"); fwrite($file, "sex," . $_POST['sex'] . "¥n"); fwrite($file, "hobby," . $_POST['hobby'] . "¥n"); fwrite($file, "OS," . $_POST['OS'] . "¥n"); fwrite($file, "kansou," . $_POST['kansou'] . "¥n"); flock($file, 3); fclose($file); ?>
8桁の数字を2文字ずつに分割するにはどうやるのが一番クールですか? substrでやるのしか考えられませんですた
>>417 おぉ、そうだったんですか。ありがとう。
>>419 $s = "12345678";
$s1 = $s{0}.$s{1};
$s2 = $s{2}.$s{3};
$s3 = $s{4}.$s{5};
$s4 = $s{6}.$s{7};
クールかどうかはともかくこれが1番シンプルで速いんじゃ。
>>419 エレガントじゃないけど、適当にやってみた
$r1 = explode("\r\n",rtrim(chunk_split($s,2)));
preg_match('/(\d{2})(\d{2})(\d{2})/',$s, $r2);
PHP5なら、
>>422 のstr_split()だね。
配列に入れろなんて書いてないからwordwrap
426 :
424 :2006/02/28(火) 13:23:53 ID:???
>>425 やってみて、それで出来ないと思った俺がいる(bool cutを指定してなかっただけ)
# あと数字6文字だと思ってた。
使える関数が色あるな>PHP
>>424 正規表現が次に想定してた方法ですた。
PHP5ならばstr_split()がベストのようです。
wordwrapはそのまま出力する時につかえますね。
既出スマソ
>>421-426 皆様ありがd
428 :
nobodyさん :2006/02/28(火) 23:00:13 ID:C5SJRerw
くだ質で華麗にヌルーされたのでこちらでお願いします。 safemodeじゃないのにphpからフォルダが作成できないです。 ちなみにperlからも出来ない・・・orz これってモジュール版で動いてるから仕方ないんでしょうか? 解決策は鯖管に頼むしかないんでしょうか・・
>>428 親ディレクトリのパーミッションとかじゃないの
>>428 0777のディレクトリを作ってその中にファイルやディレクトリが作れるか試してみ。
>>429-
>>430 出来ました!
でもパーミッションが設定どおりには出来ませんでした。
Perlだとちゃんと設定どおりに出来ました。
mkdir ("./test/test/", 0707);
とやっても705になってしまいます。
chmodかけても変わらず。
ただ所有者がapacheなフォルダになってしまっています。
adminでファイル・フォルダ操作を自由にこなす為には
アパッチをadmin:adminで動かせば良いのでしょうか?
てか、その状況じゃファイルすら作れんのでわ…
っとsafe_modeじゃなかったか、スマソ
>>431 phpをモジュールはApacheのユーザで動くのでphpで作ったディレクトリはapacheとかnobodyとかになってOK
phpやperlで処理するなら07xxや06xxで問題無いと思うけど?
adminの権限は?root権限があるならApacheをadminで動かすのはいかがかと。
ってか連鯖でしょ?変更できるのかね・・・
>>434 ありがとうございます。
所有者が違うとFTPソフトでダウンロードが出来ない事があるんですね。
では現在の
>>431 は動作的にはごく普通と解釈してもよろしいのですね。
ユーザ:adminにroot権限があるのかはどのようにしたらわかりますでしょうか・・。
function() の最期のカッコってなににつかうんですか?
>>435 はlinuxの勉強が必要だからくだ質でも華麗にスルーされた気がする・・
>ユーザ:adminにroot権限があるのかはどのようにしたらわかりますでしょうか・・。 手始めにPC-UNIXを勉強すると分かる。
川崎きんもー★
× きんもー★ 〇 きんもーっ☆ 慣れないことをするから……
442 :
nobodyさん :2006/03/02(木) 11:01:03 ID:gp0qU8DL
function func1(){ $test = "『これはテストです』"; func2(); print "$test"; } function func2(){ $test = "『func2内で新たに定義されました』"; } //-------メイン---------- func1(); ======================================= func2 の内容が反映されないのですが どうしたらよいでしょうか。上記がコードです。
>>442 関数内の変数はローカル変数なので関数の外では見れません。
globalにする
引数で渡す 値渡しのときはreturnで戻す
>>5 の1の、「ハードウェア」はおかしくないか?
むしろソフトウェアな気が。どうでもいいけど。
447 :
nobodyさん :2006/03/02(木) 15:19:17 ID:d8+PxLHh
>>446 そのほうがよさげだね。
むしろ
利用環境(OS、ソフト、PHPバージョンなど)
みたいなのがいいぽい?
次回テンプレに入るといいね
これからPHPの勉強を始めようと思うのですが、 何かおすすめの書籍ってありますか? よろしくお願いします。
マンモス本
大きな本屋が近くあれば実物見て自分に合うのを探したほうがいい
>>446-447 むしろ
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条』
は補足するくらいなら
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰わないための八ヶ条』
に変えるべき
>>450 そして自分に合うと思って簡単な本を探すと、大抵は内容が間違っててハマる罠
453 :
nobodyさん :2006/03/02(木) 20:52:15 ID:gp0qU8DL
>>451 全部の項目を逆の意味に変えるってこと?
>>451 嫌味だろ?あれ。
どうせ真面目に書いたところで何の役にも立たないし。
>>451 目的を履き違えてる。
エスパーきぼんぬなやつは、言ったところで改善は不可能なんだから、
それは自覚を促して丁重にお帰り願うための文面だ。
「エスパーきぼんぬのレスをもらわないための方法」など無い。
てかあのテンプレ糞じゃね?
PHPの質問&回答なんて糞に決まってる
誰が考えたかしらないけど変な言い回ししてる所が古参っぽいな
まぁ、そんなにせめてやるなよ。
>>451 の案で平和になるのが理想なんだし。
・・・けど、最近皮肉とかブラックユーモアって通じにくくなってるよな・・・
ちょっとさびしい。
>>465 皮肉とかブラックユーモアのはずの事が、リアルに起きている現実ですから…
うんまぁ起こってもいない現実を皮肉ってもしょうがないしね。
>>465 だからここまで積み重ねてきたスレの空気よめ
八ヵ条の原作者は神だと思う
>>5 の内容書いたやつ厨だろ。
普通に 「質問者のルール」 って題名で箇条書きにすればいいのに
わざわざわかりにくくしてるし。
472 :
nobodyさん :2006/03/03(金) 00:36:24 ID:QWJoZw1q
perlからphpの翻訳機ってないですかね? 完璧は求めていないので。。 phpに移植が大変><; 誰か作ってくれないかなぁ・・・・
>>472 逆はともかく、Perl→PHPはPerl→sedとかPerl→awkが無いのと一緒で、
できないことがあまりに多すぎて作るの無謀だと思う。
4. 独り言文体で必勝。 「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
てかおれ最初はあの通りに質問すると 回答がもらえやすいと思ってずっと情報小出しにしてた
お前ってほんっっっっっっとーに頭の悪いやつなんだな
各ページからヘッダーファイルとフッターファイルを require()で ひっぱってきてるんですが、 これをするとヘッダーファイルに画像の相対リンクとか貼ってある ときに困ることになります。 (require()されるファイルの場所次第で画像のリンク先が変わってしまう) 絶対リンク使えばいいんですが、SSLを使ったりするときもあるので これは避けたいと考えています。 画像のリンク先を変数かなにか使ってやるのがいいかと思うんですが、 上手く思いつきません、グッドアイデアお願いします
>>472 elsif -> elseifの置換ぐらいなら問題ないけど =~ であきらめた
sub -> functionも引数の取り扱いや変数のスコープが違って自動では無理
>>477 <?php
$imageDir = "../img/";
include "header.php";
?>
header.php
<style>
body { background-image: url("<?php echo $imageDir?>bg.gif") }
</style>
>>468 空気よんだ上でのフォローだと気付いてやれw
483 :
nobodyさん :2006/03/03(金) 14:38:07 ID:WgfWnQX6
phpのlinux版ってextフォルダがなくて php_pgsql.dll とかがないんですが、どこから入れたらいいんでしょうか?
>>483 環境によって違うがFedoraCoreのrpmなら
/usr/lib/php/modules
に
mbstring.soやgd.soが入る
485 :
nobodyさん :2006/03/03(金) 15:10:50 ID:WgfWnQX6
>>484 あ、環境書かなくて申し訳ないです。
redhat9で、自分でPHP5をコンパイルして入れてます
-------
./configure
--with-apxs2=/usr/local/apache2/bin/apxs
--with-gd
--with-zlib
with-pgsql=/usr/local/pgsql
--enable-mbregex
--enable-mbstring
--enable-trans-sid
--enable-mcrypt
-------
で、入れてるんですけど、modulesもextもないです…。
あとから入れることってできないんでしょうか?
>>485 ソースのextディレクトリに各モジュールのディレクトリがある
好みのディレクトリに移動して
phpize
./configure --help
./configure --enable-hoge
make
make install
で
/usr/local/lib/php/extensions/*****/
あたりにインストールされる
>>485 ちなみにコンパイル時に指定したモジュールはphp.soに内蔵されるので拡張モジュールのように別ファイルにはならないよ
488 :
nobodyさん :2006/03/03(金) 16:58:58 ID:WgfWnQX6
489 :
nobodyさん :2006/03/03(金) 23:29:21 ID:t7JloJn3
学習用に、Windows2000+Apache2.0.55+PHP5.1.2を導入しました。 phpinfo();は表示されます。 print date("Y/m/d");と記述し、foo.phpで保存したものを、直接127.0.0.1/foo.php とアクセスすると動作するのですが、 var.htmlに<?php print date("Y/m/d"); ?> を記述し127.0.0.1/var.htmlにアクセスしても表示されません。 httpd.confやphp.iniは確認したのですが、うまくいきません。 原因はどこにあるでしょうか。
拡張子がhtmlではPHPは実行されません。
>489 それは普通の振る舞い。apache側で設定すれば実行されないわけ じゃないけどな。ただそれをするとapacheの負担にもなると。
phpエディタ使ってるけどphpeclipse入れたほうがいい?
493 :
489 :2006/03/04(土) 01:45:09 ID:aZXPUvQz
そうだったのですか、すみませんでした。 サンプルソースにタグが入っていたので、perl CGIのように呼び出していると 思っていました。ありがとうございました。
>>493 perlも基本的に拡張子がcgiやplじゃないと実行できないよ。
環境 apach2.20 + php5.1.1 ftp_puts()でファイルアップロードしようとすると あるサーバーAにはちゃんとアップロードされるのですが 別のサーバーBだと0バイトのファイルが作成され、falseが返ってきます ftp_nb_put()やftp_pacv()なども試してみましたが状況は同じでした 他に何か試してみるべき事はありますか?
>>496 パーミッション、ファイルのパスが合っているか、
また念のためソースの一部を書いたほうがわかりやすいと思います。
A:MySQLサーバ B:WEBサーバ A、Bはそれぞれ別のネットワークにあります。 Aのデータベースに接続し、データを取得してきたり 修正したりするPHPプログラムをBに設置し、 B上の Apache のCGI(PHP)から データの表示やまたは修正を行えるようにしています。 Apache では SSL を使用しているのですが、 この場合、MySQL側でもSSLを使用すべきでしょうか? Aから引っ張ってくるデータは盗み見されると困る内容ですが、 上の例の場合、どこからどこまで Apache の SSL が 機能するのかよくわからなくなってきました。
>>497 パーミッションやパスが違ってたら0バイトのファイルすら作れない気がする…
>>498 AとBっってのはグローバルIPを介してHTTPプロトコルでDBデータをやりとりすんのかよ
$t_string = eregi_replace("(.*)<title([^>]*)>","",$t_string); $t_string = eregi_replace("</title>(.*)","",$t_string); htmlソースからタイトル部分だけ取り出したいのですが、 上記のように二段つかっているのを1つにまとめるにはどうすればいいでしょうか。
>>498 サーバAにはSSLなApacheは入ってないんだろ?
なら当然Webブラウザ-サーバB間のHTTPSに対してのみSSL。
preg_match('/<title>(.*)<\/title>/i', $t_string, $t_match);
505 :
498 :2006/03/04(土) 14:53:39 ID:???
>>501 グローバルIPを介しますが、
PHPのmysql_connect() を使用する場合HTTPプロトコルでの
データのやりとりになるのでしょうか?
MySQLはMySQLプロトコルだろ。 ただ、それは暗号化されていない平文。 だから、途中でsnoopされたりするのが心配だってことだな。 MySQLプロトコルを暗号化するのは聞いたことがない。 どちらにしても、鯖側にも何かモジュール入れないと無理そうだけどな。
507 :
498 :2006/03/04(土) 15:09:05 ID:???
>>507 なんか色んなところでマルチしてないか?
>別問題なのでしょうか?
いや同じ話だよ。ただPHPのmysql関数ではSSLを使う仕組みが
デフォでは無いので、拡張版のmysqli関数を使ってSSLの設定をする。
あとPHPのコンパイルでSSLも要るな。
509 :
496 :2006/03/04(土) 17:58:12 ID:???
>>499 紛らわしいので以下のように表現を変えます
サーバーA → サーバー1
サーバーB → サーバー2
>>497 >>500 こんな感じでやっています
//HTML部
<form method="post" action="script.php" enctype="multipart/form-data">
<input type="file" name="up"><br>
<input type="submit" value="upload">
</form>
//PHP部
$name = "./".$_FILES["up"]["name"];
if ( !($ftp = @ftp_connect($host)) ){echo "connect error";}
if ( !@ftp_login($ftp,$user_id,$user_pass) ){echo "connect error";}
ftp_pasv($ftp,false);
if( @ftp_put($ftp,$name,$_FILES["up"]["tmp_name"],FTP_BINARY) ){
echo "<br>success";
}
else {
echo "<br>error";
}
ftp_close($ftp)
サーバー1、2ともパーミッションは755で、パスはユーザーのルートディレクトリです
あと最初に書き忘れましたが、FFFTPなどを使った場合はどちらも普通に操作できます
510 :
nobodyさん :2006/03/04(土) 18:20:02 ID:WPEf+PS6
include require require_once の使い分けはどういう時に有効ですか?
全て*_onceを使うのがPEAR標準。 includeとrequireは、 どんな条件下でも必ず評価されるものにはrequire ある条件下で評価されない可能性がある(if文など)場合はinclude 理由はマニュアル嫁。
>>509 そのアップロードによって生成されているテンポラリファイルは確認してみた?
move_uploaded_fileして、一旦どこかに保存してやってみるとか。
514 :
510 :2006/03/04(土) 18:48:08 ID:WPEf+PS6
ヘルプなんか読んだ上で質問してるわ。 具体的にどう使い分けるの? 分からないなら答えなくていいよ。 どうせ分かってないでrequire_once使ってんだろ。
>>514 君、向いてないから止めた方がいいと思うよ
516 :
nobodyさん :2006/03/04(土) 18:55:50 ID:SB9snESx
PHPのバージョンは4.3.11ですが、統計処理用の関数はどこにあるのでしょうか? 標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
517 :
nobodyさん :2006/03/04(土) 18:56:32 ID:SB9snESx
PHPのバージョンは4.3.11ですが、統計処理用の関数はどこにあるのでしょうか? 標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
>>514 正直俺もイマイチわからんので、わかったら教えてください
>>515 そういう無駄なことはいわなくていい。回答する気がないならスルー汁
>>514 俺も良く分からないまま使ってる
>>515 君の方が向いてないから止めた方がいいと思うよ
>>514 は良く分からないまま使ってることが嫌で質問してるんだよ
これこそ向いてるでしょ
あのマニュアルを読んで判らない奴に何をどう説明しろと?
>>511 じゃ不満なのか?
まさに511の言う通りだと思うのだが。
523 :
496 :2006/03/04(土) 20:31:16 ID:???
一応解決(?)したので報告を スクリプトを他のサーバー3に置いて実行してみたところ、サーバー2にもアップロードできました (サーバー1からスクリプトを実行しなかったのはFTP関数の使用が規制されているため) どうもサーバー2からは自分自身にアップロードできないようです スクリプトの不備ではなくサーバーの設定関係の問題のようなので 今後は自力でそっちの方を当たってみます ありがとうございました
525 :
nobodyさん :2006/03/04(土) 20:48:34 ID:aGprecBm
定数を文字列に直接埋め込むにはどうすればいいんでしょうか? define('hoge', 'string'); echo "hoge is {hoge}"; echo "hoge is {'hoge'}"; ↑どっちもダメでした。
掲示板スクリプトをPHP+MySQLで作っています。 投稿用テーブルkakikoにuser_idがあるのですが、ユーザ名が格納されているのは ユーザテーブルusersの中のuser_nameです。 書き込み表示の時にユーザ名を表示させたいのですが、一旦kakikoからuser_idを取ってきて その後にuser_idがある分だけusersからuser_id -> user_nameのSELECT文を発行しないと いけないのでしょうか… 何かすごくマヌケなことをしている気がするのですが、これしか思いつかないもので… user_id -> user_nameの関数を用意しても結局同じ数のSQLを発行しますよね みなさんはどうやっていますか?
527 :
526 :2006/03/04(土) 20:53:09 ID:???
>>525 echo "hoge is ".hoge;
普通大文字にすると思うけど。
echo "hoge is ".HOGE;
>>525 残念ながらPHPだと文字列リテラルに定数いれられないんです。
echo 'hoge is ', hoge; でがまんして。
>>526 ユーザが比較的少ないなら、不要なものも入るけど
一括して最初に全部取ってきたら?
>>526 sqlの話なのでスレ違いだけど
select * from kakiko, users where kakiko.user_id = users.user_id and なんちゃらかんちゃら
531 :
nobodyさん :2006/03/04(土) 21:00:39 ID:aGprecBm
>>526 ヒアドキュメントの中で使いたいのですが
それだとソースがぐちゃぐちゃになっちゃいそう
>>527 無理ですか…
532 :
525 :2006/03/04(土) 21:01:26 ID:???
>>531 $hoge = HOGE;
$heredocument = "$hoge";
じゃダメ?
>>530 まだ理解できていないですけど、ちょっとやってみます。
534 :
nobodyさん :2006/03/04(土) 21:14:07 ID:SB9snESx
>>530 やってみたらできました。
ありがとうございましたー。
>>514 俺は同じプログラムでrequire_onceとrequireとincludeは使い分けてるけど
include_onceだけまだ使ったことないや。そういえば。
俺はrequireとinclude_onceしか使わなかったりする include_onceでPHP5のラッパー関数を定義しといて PHP4の環境でも同じソースで済むようにしてる
Vineにて録画サーバを構築、2G超えのファイルをダウンロードすべく 自分でスクリプト書いてみたが、どうもうまく動かない・・ filesizeの取得がマニュアルによると「sprintf("%u", filesize($file))で2G越え てもいけるぜ」と書いてあるけど、エラーで取得できず。 おまけにfopenでファイルも開けずエラー。 どうしたらよかとですか。 教えて、エロイ人。
>>540 「うまく動かない」→どう動かないんだ?
「エラー」連呼→エラー文はコピペしろ。
上記を踏まえて・・・ダウンロード、filesizeとか言ってる辺りから推測すると、
まさか、その1ファイルを全部PHPのメモリ上に乗せてから出力させてんのか?
それならロジックを変えるか、実装メモリを増やしてPHPのメモリ設定変更。
・・・どう考えても後者は実用的じゃないがな。
>>540 2Gのデータが一括で扱えるようにPHPのメモリーリミットを
設定してないからではないか?
>>541 エラー内容はファイルサイズ取得で
「filesize() [function.filesize]: stat failed for ***」とでます。
fopenも同じエラーです。
メモリに一気に乗せるロジックではなく、freadでループさせて
吐き出そうとしてますが、それ以前の問題なんでつorz
>>542 PHP.iniのリミットのことですか。
ファイルサイズ取得、ファイルオープンと関係あるんでしょうか。
>>544 ***のところはファイル名です(録画済ファイル)
具体的には
「filesize() [function.filesize]: stat failed for /video/1003_20060303220000_20060303225400.nuv」
のような感じです。
書くと、長くなるためとファイルの扱いに関係がないと思われたため記述を控えました。
>>545 ext\standard\filestat.cの中だけど
if (!IS_EXISTS_CHECK(type) || (errno != ENOENT && errno != ENOTDIR)) { /* fileexists() test must print no error */
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Lstat failed for %s (errno=%d - %s)", BG(CurrentStatFile), errno, strerror(errno));
}
なので、'/video/1003_20060303220000_20060303225400.nuv’がfilestatusを取るのに
相応しくないだけっぽいな。
実際にそのファイルはあるの?(これは他のエラーになる筈だから違うか)
絶対パス指定ではどう?パスを短くしてみたらどうなる。
>>543 いや、エラーの詳細が判ったので今のところ関係ないと思われる<リソースリミット
547 :
546 :2006/03/05(日) 19:18:13 ID:???
ごめん、全然違うものみてた。
>>546 ファイルは実際存在し、ファイルサイズの小さなもの(60M程度)を
ダウンロードしてみるとダウンロードはできます(データも問題なし)。
パーミッション、オーナーともにダウンロードできるファイル
と同一のため問題なく思われます。
パス指定は現在絶対パスで行っています。
値はGETで取得、これも問題なく取得できています。
書き忘れましたが、apacheのバージョンが1.3.33、PHPのバージョンが5.1.2
です。
ああ、どうしたらよいものやら・・orz
1.3.34にしてみなさい
2.0.55にしてみなさい
551 :
546 :2006/03/05(日) 19:39:21 ID:???
PHP5.1.2の貼っとくよ。 #define IS_EXISTS_CHECK(__t) ((__t) == FS_EXISTS || (__t) == FS_IS_W || (__t) == FS_IS_R || (__t) == FS_IS_X || (__t) == FS_IS_FILE || (__t) == FS_IS_DIR || (__t) == FS_IS_LINK) if (php_stream_stat_path_ex((char *)filename, flags, &ssb, NULL)) { /* Error Occured */ if (!IS_EXISTS_CHECK(type)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%sstat failed for %s", IS_LINK_OPERATION(type) ? "L" : "", filename); } RETURN_FALSE; } メッセージに変更はあるけど、別にチェックは余り変わってないな。
もりこもりこー
実はPHPはstat64を呼んでなかったりして。
>>552 のバグレポート読んだ感じからして。
勘だけど、statした結果のファイルサイズ(st_size)が2GB以上だと符号付で見なしたときに負の値になって、PHPがどっかでエラーチェックのつもりで0と比較してエラーフラグ立ててるとか、どうせその手のアフォな話だと思うね。
>>540 というわけで、現時点ではPHPで2GB以上のファイルは扱えない、といったところか。
そもそもPHPのintはCのintそのままだからそこらのプラットフォームでは0x80000000以上の数値扱うこと自体に無理があるんだよな。
PHP6では多倍長整数がサポートされることを祈ろう。
>>554 マニュアルにあえてsprintf("%u")での対処方法が書いてあったところを見ると、
元々はstatの戻りをstringによる数字で扱ってて、うまく動いてたんだろうな。
ところがそれを忘れて改良してしまった部分があって今は動かなくなってしまった、
という可能性が高そうだな。PHPじゃよくある話だし。
>>554 intといったらshortの場合もあるし、longと言った方が適切では。
>>556 あーphpのintはcのlongだった。訂正。
intはcの標準上よろしくない罠。
558 :
nobodyさん :2006/03/06(月) 17:34:37 ID:zhIGepD3
ひとつ疑問に思ったのですが fopenでファイル開いた後 fclose で閉じなかったら どんな悪影響がでるんですか?
同じプログラム内で大量にfopenしてたらリソース使い切って致命的エラーになるかも。 あと、書き込みしたままfcloseしてなかったらプログラム終了までフラッシュされずに ファイルが破損する確率が上がるかも。 flockしっぱなしで放置するとプログラム終了まで他のプログラムがアクセスできなくなるかも。 そんなもんか?
>>558 まあ基本的にはOSが閉じ忘れを面倒見てくれる(もしくはPHPもやってくれるかな?)から大したことはないってのもある。
人によってはfopenしたのにfcloseしていないプログラムに気持ち悪さすら覚えるらしいことも頭に入れておくべし。
あるプログラムで Web経由で起動しとったらURIを、コマンドラインから起動しとったら コマンドラインを標準出力に吐き出したいんだが ちからづくでならなんとかなったんだけど 格好良く書くナイス方法は無いかな
>>561 $msg = @ $_SERVER['REQUEST_URI'] or $msg = @ implode(' ', $argv) or $msg = 'おてあげ';
echo $msg;
てこと?
565 :
561 :2006/03/06(月) 21:13:35 ID:???
>>563 ヒントありがとう
それそのままだと1とか出ちゃったから
それヒントに姉ちゃんがんばるわ
566 :
nobodyさん :2006/03/06(月) 23:11:58 ID:6wJc3dTK
sakura.html の中に <?include("print.php");?> と書かれているとします。 この時print.php側で「sakura.html」のURLもしくはパスを取得し表示する方法はありますか? $url = getenv('REQUEST_URI'); print $url; とやってみた所 「print.php」が表示されてしまいます。
$_SERVER['PHP_SELF'] $_SERVER['REQUEST_URI']
>>566 sakura.htmlってのはPHPじゃないよね。
PHPのincludeはあくまでも、その場所にPHPのコードを
挿入するのと同じ動作だから。
|「print.php」が表示されてしまいます
とはならない。
>>569 付け加えるとincludeファイルは
webで見えない場所の方がセキュリティ的に良いと思う
571 :
皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 09:35:07 ID:W7VIXknd
ぷぎゃー
「整形されたhtmlをたたき出す」がわかりません。 もっと具体的に。
575 :
皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 13:56:43 ID:HRxo4IHm
名簿業者から名簿買って転送すりゃいいよ。
関数で、変数の参照を返すことって出来ますか?
できるよ。
どうやるんでしょうか?
次の質問なんですが。 関数から返された変数の参照をそのままempty()の引数にしたいのですが、出来ないのでしょうか? empty(getVal())のようにすると、こういうエラーになります。 Fatal error: Can't use function return value in write context in...
リファレンスをデリファレンスしないでemptyでチェックするってどういうことよ
ありがとうございました
どうにかして出来ないかと思ったんですが、あきらめます
>>583 読んだんですけど、参照ならどうかなと思った次第です
>>584 了解しました
586 :
nobodyさん :2006/03/07(火) 19:25:33 ID:jtyBl1lp
php上で、telnet接続での-s src_addrオプション(接続の送信元 IP アドレスを、 src_addr に設定)に 該当する設定を付加してサーバーに接続したいのですが、 fsocksopenなどでは該当のオプションが見当たりません。 system系関数を使う以外にエレガントな方法を教えてください。
>>585 >参照ならどうか
<?php
$a = 'TEST';
$b =& $a;
var_dump(empty($b));
?>
参照かどうかってことじゃなくて
|つまり、次の例は動作しません: empty(trim($name))
ってことだよ。
皮先うぜえ
589 :
nobodyさん :2006/03/07(火) 20:13:54 ID:psJP3on1
PEAR:XMLを使おうと
[ThinkIT] Part5:PHP5のXMLサポート(3) (1/2)
http://www.thinkit.co.jp/free/marugoto/1/5/3/1.html をみながらセットアップしてるんですが、
libxml2を入れてみても、
# phpize
# ./configure --with-xsl
のところで最後に
configure: error:
You've configured extension xml, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
とエラーがでて、makeすることができません。
どうすればちゃんとlibxmlを認識してくれるのでしょうか?
OS:redhat9
php:5.1.12
です。よろしくお願いします
>>587 trimって参照を返してるわけじゃないですよね?
変数への参照を返す関数なら、emptyが変数と同じように処理してくれないかと期待したわけです。
名前欄に皮先って入れろ
592 :
皮先 :2006/03/07(火) 20:37:47 ID:???
入れました
質問です 手元のPHP本はmysql_escape_stringを使ってあるのですが、これはすべてmysql_real_escape_stringにした方がよいのでしょうか?
>>581 PHPはパース時にずいぶん式の再帰性を捨ててるから、仕方ないんだな。
俺は参照を返す関数ならempty等に渡せて意図したとおりの結果を返すような仕様だった方が意味論的には好みだけどね。
その辺はあきらめるしかない。
>>590 もっと悪い状態になってる。それは;;
そもそもなんでemptyでのチェックにこだわってるの?
if(getVal())
で同じ結果にならないか?
わざわざ「変数用の言語構造(注:これは関数ではない)」を使って
変数以外のものをチェックしようとする意図が分からん。
>>594 関数の戻り値をemptyでチェックしたかっただけで、
参照とかはどうでもいい話らしいぞ
if(!function()) でいいんジャン?
>>595 理由は、、、
既存ソースの改良で、変数をget〜に変えようとしてました。
で、emptyなどで行き詰ったわけです。
そこも含めて変えれば済む話ですが、出来るだけ手を抜こうとしてました。
無理と分かりあきらめが付きました。
ありがとうございました。
変なことしようとしてすみません。
599 :
皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 21:50:28 ID:agmd1D8V
名前空間に対応したPHPは いつでるのじゃーーー
関数内での名前空間対応のPHPならすでに。
名前空間とかネームスペースとかよくわからん
604 :
589 :2006/03/07(火) 23:20:34 ID:psJP3on1
誰か〜
>>589 よーわからんけどphpをconfigureし直してみたらどう?
libxmlとかいうやつくっつけて。
>>589 その前に
cd ***/php-****/ext/libxml
phpize
./configure *******
はどうだろうか
607 :
age :2006/03/08(水) 10:58:48 ID:s67YcGnH
全角ひらがなで「ぁ」「あ」とかに変換する関数ってありますかね? アルファベットの大小変換はあるんですが・・・。
>>607 そんなに種類多くないからmb_ereg_replaceかstr_replaceで置換すればいいんじゃないかな
610 :
609 :2006/03/08(水) 11:07:18 ID:???
ぁをあに変換する意味で書いたけど違うのかな
PHPでのソケット通信のテストをしていますが forkした親プロセスと子プロセス間でのディスクリプタパッシング はできるのでしょうか? 親プロセスで開いたクライアントとのソケットがresouce型になってしまうので 子プロセスに渡すことが難しいです。 よろしくお願いします。
612 :
nobodyさん :2006/03/08(水) 11:22:33 ID:s67YcGnH
>>609 置き換えでもよいのですが、文字列は「ぁ」とは限らないために
パターンがありすぎて・・。
VBでいうところのstrconv()みたいなものですかね。
>>612 変換ルールがさぱーり分からないので何を回答すればいいのか分からんのだけど。
とりあえずmb_convert_kana()のマニュアルでも読んで、それで不足してるなら
もーちっと具体的な質問してください。
>>612 ひらがなとアルファベットじゃ意味が違うだろ。
aとAはほぼ同じだが
っとつじゃ全然違う。
したがってそんな変なことをする関数はない。
パターンなんて全部網羅しても100もないんだから
関数つくればいいよ
>>611 PHPのリソース型は異なるプロセス空間へは一切渡せないんじゃないかな。
>>607 つまり、そんな関数は無い、ってことです。
>>612 パターンって「ぁぃぅぇぉゃゅょっゎ」だけじゃないの
何がやりたいんだ
619 :
nobodyさん :2006/03/08(水) 13:32:43 ID:YAPHuj+m
>>602 その情報はどこに?
URLなどもっと詳しく
ググってすぐ見つかるようなキーワードを教えて
strconvでググったらこれがトップだった
ttp://www.microsoft.com/japan/msdn/library/ja/vblr7/html/vafctstrconv.asp MSDNはオンラインで見るにはちょっと重いかな・・・
>VbStrConv.None 変換は行われません。
>VbStrConv.LinguisticCasing 大文字と小文字については、ファイル システム (既定) ではなく言語の規則に従います。UpperCase および LowerCase と組み合わせる場合にだけ有効です。
>VbStrConv.UpperCase 文字列を大文字に変換します。
>VbStrConv.LowerCase 文字列を小文字に変換します。
>VbStrConv.ProperCase 文字列の各単語の先頭の文字を大文字に変換します。
>VbStrConv.Wide* 文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。
>VbStrConv.Narrow* 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
>VbStrConv.Katakana** 文字列内のひらがなをカタカナに変換します。
>VbStrConv.Hiragana** 文字列内のカタカナをひらがなに変換します。
で、この中のどれかだと思うが、どれにでも当てはまりそうな質問内容だな。
(´-`).。oO(まず最初に607は説明力をつけるべきだと思った・・・)
ヵっぉ ぉゃっょ
ぅゎ ょぅι゙ょ っぉぃ
PHPで認証サイトを作る場合 ページ毎のログイン情報の受け渡しって SESSIONやDBでやるのが普通? より簡潔にできないかと思って クラス内で配列を保持して受け渡すってのをやってみたんだけど あまり上手くいかない・・・
625 :
nobodyさん :2006/03/08(水) 14:57:50 ID:Khyvdh2z
>>624 > クラス内で配列を保持して受け渡すってのをやってみたんだけど
クラス内でとかはあんまり関係なく、どうやって渡したのか?が問題
>>624 SESSION"を"DBでやってます。
SESSIONIDはクライアントのCOOKIEに持たせてるけどね。
sessionIDつきのデータをDBに放り込むんだろうな。 一意性はsessionIDに頼る。 cookieが生きている限りなんとかなるのと 大きなデータの保持には適しているかな。 と、以上、まったくの推測。
指定したファイルがあるかないか調べる方法ってないでしょうか?
マニュアルくらい読んだら?
634 :
629 :2006/03/08(水) 17:07:17 ID:???
>>631 初めからそう質問しとけばよかったんだよ。
ありませんか?→Yes / No
どうしたらいいんでしょうか?→解決法
phpの関数ってどこに保存されてるの? ハードコーディング?
>>636 日本語でOK
つかユーザ関数の話かい?
>>635 その論法もう古臭いから普通の質問スレで持ち出さなくていいよ。
揚げ足取り以上の意味持たないし面白くもない。
>>638 ユーザ関数をハードコーディングってどういうことよw
つまり一種の予知?
トーニャ ハードコーディング
標準の関数がどこにあるかってことじゃまいか?
libphp*.soの中にバイナリ化されているんじゃないの?詳しくは知らないけど。
>>636 普通にソース中のどこにあるかって話ならext/standardに入ってるけど
647 :
638 :2006/03/08(水) 22:17:14 ID:???
>>640 いや、2行目は無視をした。というより1行目も本当に訊きたいことが良く判らん
「標準や拡張の関数がハードコーディング」だって意味が判る?
俺はわかったぞい。
>>646 うちのPHPフォルダにそんなフォルダはないぞ
>>651 お兄さんのphpはphp本体がインタープリタかとw
モジュール版が使えるレンサバであえてCGIとしてPHPを使う意味ってどんなん?
>>654 ユーザ権限で実行、forkの動作が保障されてる etc
>>654 CGIのみセーフモードoffなんじゃないの
>>639 面白い面白くないじゃなくて、質問者の礼儀だろ。
オレは質問になってない文章にはそのように返すがな
質問スレで面白い回答を期待するほうが間違ってる
気持ちはわからんでも無いが スルーせずにいちいちアゲアシ取っていくなんてメンドクサイことよくやるね
スルーして誰かが親切に答えるとまた同じことやるからね
おまえらもそれをわかってるならスルーしたらいいだけなんだがな
>>657 質問になってない質問ならわざわざ回答する必要ないじゃん
おまえ馬鹿か。
そして糞真面目に回答しちゃう馬鹿が出てムカつくわけだな
くだらねえ
m9(^Д^)プギャー
なにこれ 皮先ウザいんだけど
超回答者がここにも
>>668 スルー汁。ホントにそう思ってるならコテハン名なんか書いたら余計に
よろこばすだけ
671 :
nobodyさん :2006/03/09(木) 23:13:16 ID:SHZr9acF
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-gd --with-zlib --enable-mbregex --enable-mbstring --enable-trans-sid --with-xsl --with-pgsql=/usr/local/pgsql --with-gd --with-jpeg --with-jpeg-dir=/usr/local/lib で、phpコンパイルしてるんですが、 [09- 3-2006 23:09:46] PHP Fatal error: Call to undefined function ImageCreateFromJPEG() in /hogehoge/hoge.php on line 15 のようなエラーがでてしまいます。どうすれば解決できるでしょうか? 環境はRedHat9とphp5.1.2です
アバウトな質問で申し訳ありません。 C言語であれば以下のようなコードで変数の値を入れ替える関数が作れます。 void swap ( int *x , int *y ) { int t = *y; *y = *x; *x = t; } ポインタがないPHPでは同じような関数は実現できないのでしょうか? 入れ替えた2つの変数を返すのに 戻り値を配列にするといった方法しかないのでしょうか?
Perl同様リファレンスというものがある
>>672 そんな関数を使わなくても
list($x, $y) = array($y, $x);
で普通に変数スワップできるけどね。
ま、ポインタの代わりにリファレンスを使うのももちろんアリだけど。
<?php $userid = "abc"; $password = "def"; ?> このプログラムをサーバーにアップロードして、 HTTP(SSLなし)でアクセスすると abc と def は 平文でネットを流れることになるのでしょうか? それともサーバー側でのみ処理されることになるのでしょうか?
>>675 まずスレを実行するとクライアント側で何が表示されるのか考えてみ
明らかにくだ質っぽいが
>>675 サーバ側でのみ処理される(ネットを流れない)ケースが多いと思われる。
ファイル名が.txtや.htmlだったらどうなるか考えてみ。
また.phpでもそのまま表示される可能性はある。
Webサーバで解釈してHTMLを返すんだから、そのスクリプトじゃ何も返ってこない
PHPはサーバーサイドスクリプトなんですか?クライアントサイドスクリプトなんですか? って意味の質問じゃないのか、それ。
>>671 たぶんlibgd自体がjpegサポートしてないんだよ。
>>671 >>681 の言うとおりじゃないかな。
libgdのconfig.log 調べてごらん。
jpegのライブラリは、make install-lib したかな
掲示板にトリップ機能を付け加えたいのですが どうやればよいかご存知の方いますか?
トリップ計算して結果を表示する。
そりゃ居るでしょう
687 :
nobodyさん :2006/03/10(金) 20:40:48 ID:bPBa/0oN
教えてください C言語の構造体のようなイメージで使いたくて $a->s1 = "aaa"; $a->s2 = "bbb"; $a->b->n1 = 123; $a->b->n2 = 456; みたいな使い方をしてるのですが この書き方って問題ないのでしょうか? マニュアルを見てもこの書き方が正しいと 思える内容が見つからなくて気になってます。 別に正しい書き方とか使い方とかあるのでしょうか? 自分の認識としては、上の例でいうと 「a」と「b」がstdClassのオブジェクトとして自動的に作られて そのメンバ変数として「s1」「s2」「n1」「n2」が追加される と考えてますが、間違ってます?
>>687 E_STRICTを気にしないならいいけど、標準的には
$a = new stdClass;
と書くべき。
ってゆうか、横着しないでクラス定義しろよ。
こういうのは配列でやるのがPHP流。
>>687 >C言語の構造体のようなイメージで使いたくて
どこがCの構造体やねん
693 :
671 :2006/03/10(金) 22:48:17 ID:8gj1xhR9
694 :
687 :2006/03/11(土) 08:33:19 ID:???
>>688-692 みなさんありがとうございました
なんとなく安心しました
他の方は配列でやってるのでしょうか?
それともクラス定義?
最初はクラスで定義してたのですが
変数の宣言を忘れても間違ってても
エラーにならないのでやめてしまいました。
(もしかしてエラーのレベルのせい?)
もう1度いろいろ試してみます。
>>691 配列でやると構造をあらわしにくいと思います
漏れはもっぱら配列 気がつくと5次元6次元配列とかできてたりして この辺は個人の作り易さとかあるだろうな
漏れはもっぱら配列 気がつくと5次元6次元配列とかできてたりして この辺は個人の作り易さとかあるだろうな
>>694 いちおうPHPの配列はリスト、スタック、キュー、マップ(ハッシュ)、木構造などだいたい表現できるけど。
stdClassは使い捨てスクリプトとかテストスクリプトみたいな一時的なものに使う以外にはあんまり使い道ないよ。
全部配列で代替できるから。
構造の「定義」をしたいならクラスを使うべき。
698 :
972 :2006/03/11(土) 11:53:34 ID:???
>>974 できました。
亀レスですがありがとうございました。
>>973 リファレンスで検索しても基本的な関数の一覧しかヒットしませんでした。
その様な関数はあるのでしょうか?
更に質問なのですが、
関数内で引数として渡された値実体を
直接変えることはできますか?
伝わりにくいかもしれませんが、
やはりCでのポインタを用いたswapのイメージでお願いします。
>>698 お前が
>>672 なら
function hoge(&$var) {
$var++;
}
$val = 1;
hoge($val);
echo $val;
701 :
698 :2006/03/11(土) 12:01:00 ID:???
>>699 アンカー全て600番台に
脳内置換お願いしますorz
703 :
672 :2006/03/11(土) 12:27:06 ID:???
>>700 調べてみました。
参照変数なんてあったんですね。
ポインタと比べて変数のアドレスは操作できないが、
アドレスの指す変数を操作していると解釈していいのでしょうか?
お願いだから、マニュアル熟読してよ
>>695 お前最悪だな
糞なおまえの糞スパゲティコードなんかメンテしたくねえや。
クラスくらい作って『集約(Aggregation)』くらいしやがれや
>>697 配列で代替できるけどわかりにくくね?
687みたいなのを配列にしようとすると
変数わけるしかなくない?
5次元とかの方が書いてるときはさくさくかける。 おかげでアホな外注が作ったワケ分からんスパゲッティーコードを 元請様がデバッグする羽目になる。
>>707 っ[連想配列]
クラスも連想配列に似た実装になってるわけだが>phpのばあい
>>709 $a['s1'] = "aaa";
$a['s2'] = "bbb";
$a['b']['n1'] = 123;
$a['b']['n2'] = 456;
こんな感じ?
なんか気持ち悪いのはおれだけ?
>>710 気持ち悪いというか、おれはそういうのは訳解らなくなる。
>>712 まークラスにしても
PHPには型宣言もないし
宣言してない変数でも使えてしまうし
いっしょな気もする・・・
変数名で型とかがわかるようにするとしても
連想配列もクラス変数も一緒だしね
perlでよく使うけど引数を連想配列で渡すのは順番気にしなくていいかもね PHPもプロトタイプレスだし
クラスの代入で質問です $hoge1 = new Hoge(); $hoge1->num = 100; $hoge2 = $hoge1; $hoge2->num = 200; echo $hoge1->num; とした場合、 PHP4.3.10では 100 が PHP5.1.2 では 200 が返されました。 PHP5で仕様が変わったのでしょうか? マニュアルのどこかに記載がありましたら教えてください。
糞にくそみそに言われたorz
>>715 PHP5ではオブジェクトはデフォルトで参照渡し、
PHP4では値渡し(コピー)。
>>715 代入演算子の扱いが変わってる
cloneで調べろ
>>708 他人のスパゲッティーコードは困るな。
まあ、ロジック読むとこまでは訓練でなんとかなる。がんばれ
>>710 それくらいならまだまし
Javaでも二次元キーのハッシュはよく作るから。
List key = new ArrayList<String>();
key.add("book");
key.add("sound");
Map map = new HashMap<List, Integer>();
map.put(key,123);
key = new ArrayList<String>();
key.add("paper");
key.add("light");
map.put(key,456);
こんな感じで。
これで5次元のキーでもまあ、どうにかなるだろう。
しかしこれが5次元の配列となるとまた別。
最悪。5次元のキーを持つハッシュではなく配列ってのは読みにくくて超ウザイ。
そんなコードを書いて渡した奴に鉄拳制裁したくなる(できれば経済制裁したい)。
2次元で十分だなぁ 3次元画像はいらん
4次元ポケットがほしい
そこで次元大介ですよ
高次元理論を証明する公式はPHPで書けますか?
726 :
715 :2006/03/11(土) 23:46:02 ID:???
>>717-718 ありゃー
デフォルトの動作が変わってたんですね
ありがとうございました
727 :
nobodyさん :2006/03/12(日) 00:09:02 ID:yHHsI6Ak
echo '高次元原理を証明する公式';
728 :
nobodyさん :2006/03/12(日) 00:24:10 ID:d4WSeAj/
strip_tagsで、複数のタグを取り除きたい場合、どのように指定すればいいですか? 例(1つ)->strip_tags($str,'<Font>'); 例(2つ)->strip_tags($str,'<Font><b>');?
strip_tagsはあまり使わないほうがええよ
error_reportingのE_STRICTって error_reporting関数では設定できないの? E_ALLまでは指定できるけどE_STRICTだけ有効にならない
>>732 環境くらい書けと。
error_reporting(E_ALL | E_STRICT);
ちなみにE_STRICTはPHP5.0から
>>733 すんません、できるはずなんですね。
PHP5.1.2なんですが、
error_reporting(E_ALL | E_STRICT);
としても
error_reporting(4095);
としても有効にならないっす
httpd.confかphp.iniならできるんだけど・・・
>>734 一応確認するが、どうやって有効になったかしらべてるの?
736 :
732 :2006/03/12(日) 17:42:38 ID:???
>>735 class Hoge {
var aaa;
}
って書いてるけど・・・
メンテ前提なら、phpとかperlの仕様で発注しちゃ駄目だよ。 CとかJavaで発注かけないと。 phpとかperlは仕様書見て作り直しが基本。
738 :
732 :2006/03/13(月) 00:30:59 ID:???
E_STRICTは実行前のコンパイルのときに報告されるので コンパイル後に error_reporting(xx) でE_STRICTを有効にしても 時すでに遅しってことのようですね。 失礼しました
$moji = "おはようございます。さいきん暖かくなりましたね"; ↑ 変数の最初の10文字だけ取得したいのですが 適切な関数はないでしょうか?
>>739 くだ質行き。
mb_strcutかmb_substr、場合によってはmb_strimwidthも便利。
マニュアルも読まない野郎が多すぎ
比較的使用頻度の低いカテゴリの関数はまぁしょーがないかなと思うけど、 どう考えても1度は目を通しとかないとPHPプログラマとしてまずかろう、って レベルの基本の内容すら目を通してない連中がごろごろいるってのがなぁ…
> どう考えても1度は目を通しとかないとPHPプログラマとしてまずかろう って誰が判断するんだろう。
いきなり書き始めても、困ったらそこを読む代わりに このスレに書く、ということですな。
>>744 そんなん自分だろ。
その自分が目を通すか通さないかの敷居を低くしていくと、
全体的なレベルが下がるから困るとも言いたいんじゃないか?
fopen()などでURLを引数に使うためにはallow_url_fopenを使いますが、こういったアクセスで タイムアウトを設定することはできますか? いつまでもページ全体が表示しないのはまずいので、つながらないときはエラーでもいいから 早めに諦めてほしいのです。
あ、しまった。マニュアル読んだつもりだったけど見落としてた 「ファイルシステム関数」にモロに書いてました・・・
php検定試験ぐらい有志が行って、スキルを保証すべきじゃねえの? なんか php出来ます=低スキル、低単価、案件失敗確実 って風評が広まってる悪寒。
PHPできるよりCやC++、Javaができる方が重宝されるっしょ。 仕方ない事だと思うよ。
C,C++,Javaに限らず、他の言語で普通にプログラムが出来る奴は phpの文法、ロジックなんか簡単にマスター出来るでしょ。 http的な事でとまどう事は有るだろうけど。 むしろphpしか出来ないエンジニアなんて皆無に近いんじゃマイか
結構いるぞ >PHPしかできないやつ
PHPしかできない奴はウザイがな 確かに。Perlしかできないやつのほうがマシ
PHPしかできないって、webデザイナ上がりの厨房だろ。 PHPだけでなんでもかんでも作ろうとする原理主義者に はなってもらいたくはないな。辞めて欲しいんだが。
酷いとこじゃ事務上がりに無理やり作らせてるよな >商用Webサイト
それだけ優れた言語とも言えるな 大規模開発だけがプログラムじゃないし っていうかここなんてスレ?
えー・・・phpしか出来ない奴なんていないだろ、と書いた後で 皆さんのレスを見ていてphpしか出来ない自称PGの起こした事件を思い出しました。 DTP上がりのphp房が集客系のシステムで客に一番初期のXServe台、 シグマリオン1台、開発用のPB一台買わせたあげくに開発失敗してトンヅラしたとかだっけ・・・ アレたしかphpで<a href="">のhrefの中身が全部ハードコーディングしてあって びびった事が有ったの思いだした。。。 テスト環境から本番環境に移行するのにどうやったんだろうなぁ。 エディタで書き換えたんだろうか。sedなんか使えるとは思えないし。 で、被害者から相談されてそのPGに設計書か仕様書を出せ、と言ったら 「webシステムには設計書というものは通常出さないものだ」 とか言ってた・・・ 着手前に要件定義書を出さない・出せない人はやばいよねぇ。ていうか有り得ないんだけど。 いや、もうホントスレチガイも甚だしいですね。スマン子
761 :
nobodyさん :2006/03/13(月) 22:15:42 ID:qnB47IGO
みんな2ちゃんねる素人だから知らないと思うけど こういうねたはプログラマ板ってところでやるんだよ。
>>760 いやなこった。
そんなPHP厨がこの業界に繁殖するなんてな。
プログラマの価値が下がる。
ちゃんとソフトウェア工学も理解できない奴が
偉そうにするんじゃねえよっていいたい。
>>760 なにPHPしか出来ない俺に言ってんの?
誰だって最初は一個しか書けないんじゃないのかよっ!
>>762 は>760のどこに反論してるのか分かりません。 ><
っていうかソフトウェア工学ってなに?必須?
どの言語が出来ても所詮プログラマ
おらPHPしか出来ない趣味グラマ
766 :
nobodyさん :2006/03/14(火) 03:24:27 ID:PRYzuNfa
ファンの希望をかなえてくれる女の子が真のアイドルなんだよ
php できます♥とかいうアイドルはいないものか。
なんで質問スレがマ板になってるの?
769 :
nobody :2006/03/14(火) 05:21:47 ID:l+upm9sf
PHPを学び始めたばかりです。「独習PHP」という本を使って勉強しています。自宅サーバでapacheを使っています。 ちょっと つまづいてしまって先に進めない状態です。 file1.php <html> <head> <title>スーパーグローバル変数 </title> </head> <body> <form method="POST" action="file2.php" enctype="multipart/form-data"> ファイルのパス: <input type="file" mame="upload" size="50" /> <input type="submit" value="アップロード"/> </form> </body> </html> file2.php <?php move_uploaded_file($_FILES['uploaded']['temp_name'], './doc/'.$_FILES['uploaded']['name']); print('アップロードに成功しました'); print ($_FILES['file']['error']); ?> という2つのプログラムを実行すると、「アップロードに成功しました」と表記はされるのですが、実際に/samples/chap2/docにアップロードされているかどうかよくわかりません。chap2の下にdocというファイルができるのでしょうか? また、print ($_FILE['file']['error']); を記述いているのに返答がありません。なにかまちがっているんでしょうか? どなたか 教えてください。
>>769 あなたが書いたのは、HTMLか、XHTMLか、どっちだ?
話はそこからだ。
ということにしたいのですね?:)
>>769 質問する前に、自分の書いたスクリプトに本当に間違いがないかちゃんと確認した?
HTMLの文法はそれで本当に間違いはないの?
スペルミスはない?
ここまで言っても相変わらず「どこがまちがってるのか分からない」って言っているようじゃ
申し訳ないけどWebプログラミングの素質は全くないよ。
あるいは、いつまで経ってもこういうスレの存在がなければまともに一仕事できない
赤ん坊のままだね。
もうちょっと自分自身の力だけで頑張ってみなよ。
解説本やマニュアルだけで済まそうと思わないで、php エンジンのソースコードも 併読すること。
776 :
774 :2006/03/14(火) 07:36:40 ID:???
>>775 マニュアルは一応"仕様"と見なしていいから、
PHP(ZE)のソースの併読はいらんよ。
必要があった時に読めばいい。バグリストもな。
>>778 んな余計な事やってるから仕事が鈍いんだよ
おお。きたきた。
仕事なんて、適当にスパゲッティの山を仕上げればええやん。
仕事であのコードはまずいだろう・・
>>769 「アップロードに成功しました」って…
成功したかどうか判別もしないで必ずそう表示するように作ってるんじゃん。
それって自分で作ったのか?それともサンプル?
もしもそれがサンプル通りならその本捨てれ。参考書になってない。
>>769 mame="upload"
まめ・・・
>>769 'doc'はファイル名じゃなくディレクトリだろ。事前に作っておかないと動かねーし。
> 仕事であのコードはまずいだろう・・ 仕事ってもいろいろあるんじゃない?w
787 :
nobodyさん :2006/03/14(火) 14:08:10 ID:1kXYSwK7
>>784 が既に指摘している通り
<input type="file" mame="upload" size="50" />
mame→nameが正しい
だがここを直したところで
move_uploaded_file($_FILES['uploaded']['temp_name'],
'./doc/'.$_FILES['uploaded']['name']);
HTML内ではuploadだったのに、ココに来て'uploaded'となってはそんな変数ありませんだ。
更にだ。
$_FILESに'temp_name'なんて配列の要素抱えてない。
正しくは'tmp_name'な。
docディレクトリは自分でまず作って置いてパーミッションは777にするように。
788 :
nobody :2006/03/14(火) 16:46:49 ID:l+upm9sf
769です。 みなさん返事書き込みありがとうございました。 おかげで動きました。あと、いろいろアドバイスありがとうございます。 プログラムが動いたことがとってもうれしいです。
PHP+SQLの質問です。 SQLのレコードにある特定の文字を消去するためPHP側より select trim(leading '文字' from フィールド)from テーブル というSQL文を発行して特定の文字を消すのですが、 消去した後のフィールドを配列として格納したいのですが、うまくいきません。 教えて頂けないでしょうか。 当方はmysql_fetch_arrayで試しているのですが間違いですか?
> うまくいきません。 うまくいかないのは分かったが、エラーは出てないのか? MySQL側。
>>789 そんな質問じゃ誰も答えられん。
何がどう上手くいかないのか具体的に書かないと。
>>789 試しにやってみたけど普通にmysql_fetch_arrayでもmysql_fetch_assocでも配列に取得できたよ
ただ、arrayを数値indexで取得するんではなく、assocで取得してるんだとしたら、
キー文字列は「trim(leading '文字' from フィールド)」というそのまんまになって、
元のフィールド名では取得できないです。念のため。
>>769 親切に教えてもらって、プログラムが期待通りに動いてよかったですねー。
ただ、一言だけいわせてもらうと、
このスレを通じて「あなた自身」は何を得たんですか?
プログラムが動いた、だけで終わったのであれば、それは非常に残念なことです・・・。
>>769 が何を言いたいかというと、どこをどうやったら動いたのかくと他の人にも参考になるから書いてねって事。
質問者としてのマナーだね、オラも賛成
796 :
795 :2006/03/15(水) 00:07:59 ID:???
あぁ、
>>794 はそういう事言ってんじゃないのかな・・。
まぁ、とにかくどこが悪かったか書く事で、次何を気をつけるべきか分かるから書け。
>>796 >794はこのスレを通じて人生を学べって言いたいんだよ。
俺は綾波よりアスカ派なんだよ!!!!!
コアの話はいいから早く集計するんだ。
>>762 うp
799 :
798 :2006/03/15(水) 02:03:01 ID:???
誤爆です。気にしないでください。
僕の大好きなあるぇ〜♪
誤爆にボケかました俺はどうすれば。
アスカはツンデレじゃなくてただのツン
女を分かってねぇなぁ・・
うるせぇボケここはPHPのスレだぞあんたばかぁ ('A`)
>>794 -の流れどうにかしてくれ。
腹がよじれるwww
茶吹いて部下にかかっちまったwwww
おまいらはDBに書き込むとき commitしてるのか? autocommitでいいんじゃないかと・・・
コミットさ〜〜〜〜ん
>>808 個人で作る分にはautocommitで十分
アーシェたん(´д`)
すみません セミプロの場合はどちらでしょうか アクセスはけっこうあります
アクセス量の問題でなく、安全性や障害時の対応方法などを検討した上で ロールバックのタイミングを制御したかったら任意にcommitしろ、って感じじゃね?
コミットされる前のデータが消えてもいいかどうかでしょ。 消えちゃダメなら、パフォーマンス堕ちてもコミットすべき。 アニヲタキモい。 php案件は特にゴミなスキルの香具師が多い。 PG落ちと、喰えないデザの掃き溜め。
SOAPについて質問 serializeしたオブジェクトをSOAPサーバに送って 戻すと、unserializeできないデータになってる 回避方法ある?
>>815 永遠の雇われ人、乙wwwwwwwwwwww
>>815 自分の事か?
普通はトランザクションを考えて選択だろ。
819 :
789 :2006/03/16(木) 09:19:37 ID:pVLzTb9p
いろいろと指摘をいただきましてありがとうございます。 それと質問をしておきながら、来れなくてすみません。 SQLエラーが出るわけではなく、配列に格納できてないみたいです。 $rst = mysql_query("select trim(leading '文字' from フィールド)from テーブル",$db); while($log = mysql_fetch_array($rst)){ という具合に特定の文字を消去したフィールドを$logに配列としていれようとしているの ですが、ためしに$logを出力すると全て空白になっています。 ここで失敗をしているのかと・・
SQLレベルでselect trim(leading '文字' from フィールド)from テーブルするとどんなデータが出てくるの?
821 :
789 :2006/03/16(木) 09:28:50 ID:???
特定の文字が消去されたフィールドが一覧で出ますので、問題は無さそうです。
822 :
789 :2006/03/16(木) 09:42:25 ID:???
$log[0] に全部のデータがありました・・
823 :
nobodyさん :2006/03/16(木) 11:03:00 ID:Fw1s0gZF
PHP初めて3日の雑兵です。 本をみながらPHPを組んでいたのですが、ページ遷移の仕方が良く分かりません。 画面構成は テキスト 消えるテキスト 消えるボタン と、ある画面で、ボタンを押すと、 テキスト 新しいテキスト となるようにしたいのです。
824 :
823 :2006/03/16(木) 11:03:57 ID:Fw1s0gZF
<?php echo "<html>"; echo "<head>"; echo "<title>テストファイル名 t.php</title>"; echo "</head>"; echo "<body>"; echo "<center>"; echo "文字列 ここにはタイトル ここは残したい"; echo "<br>"; if (!(isset($PageingProcess))) { echo "<form action='t.php' method='post'>"; $PageingProcess=True; echo "☆ テキスト<br>"; echo "<input type='hidden' name='PageingProcess' value='{$PageingProcess}'>"; echo "<input type='submit' value='☆ ボタン'><br>"; echo "</form>"; } if ($_POST['PageingProcess']) { echo "ボタンを押したら☆ テキストと☆ ボタンが消えてかわりにこれが表示されてほしい"; } echo "</body>"; echo "</html>"; ?> 汚いソースですが、よろしくお願いします。
825 :
824 :2006/03/16(木) 11:46:00 ID:Fw1s0gZF
大事なことを書き忘れていました。 バージョンはPHP5.1.2 Apache2.0.55 環境はLocalhostです。
>>824 >if (!(isset($PageingProcess)))とif ($_POST['PageingProcess'])が
整合性が取れてない 。$_POST[]で合わせる。
>$PageingProcess=True;
>echo "<input type='hidden' name='PageingProcess' value='{$PageingProcess}'>";
boolから文字型への変換が掛かり{$PageingProcess}は1という文字になるよ。
問題はないけど一応留意。
827 :
824 :2006/03/16(木) 12:22:00 ID:Fw1s0gZF
>>826 指摘の点、修正してみましたところ期待通りに動作になりました。
このサンプルをフィードバックしてメインのPHPに実装します。
ありがとうございました!
828 :
789 :2006/03/16(木) 13:58:08 ID:???
自己完結できました 配列には既に格納されていたらしく、sqlにアップする際の問題でした お騒がせして済みませぬ
>>828 >>819 > ためしに$logを出力すると全て空白になっています。
ってのが根本的に勘違いだったようだが、どうやって出力してたんだ。
820の「$log[0]にあった」ってのも、逆に聞きたいんだが、
selectでカラムを1個しか指定してないのに[0]以外のどこに入るというのかと。
ひとまずデバッグプリントは print_r か var_dump でやろうな。
var_export も
フィールドが一覧で出ますので、問題は無さそうってのが間違い。 その出て来たデータの文字コード上の問題は無いのかを調べ無いと。 配列に入れて変換すると消える文字コードも有るだろうが、禿。
普通に記述したHTMLを標準出力だけじゃなくて、ファイル書き出しも できるようにしたいんですが、どうしたらいいんでしょうか? バージョンは4です。
フォームからファイルをアップロードする際に、アップロード中にファイルが現在何メガまでアップロードされたかを取得する方法はありませんか?
英数字以外の文字を取り除く関数はありませんか? aあbcい12う3え. ↓ abc123.
そのピリオドは英数字なのね。 ereg_replace("[^A-Za-z0-9\.]", "", "aあbcい12う3え.");
\\. だった
>>837 <?php
$str = "123"; //Shift JIS全角数字
echo ereg_replace("[^A-Za-z0-9\.]", "", $str); //PQR
?>
SJIS禁止
まあSJISつうか、全角気にするならmbつけるっしょ
記号を含むならともかく英数字だけなら問題ねーべ
SJISはメールにする時に嵌るよ。最初からJISで扱うように作るべき。
文字コードを気にしたくないならアメリカに移住しろ
>>844 こないだHTMLをJISで出力してるサイトを見たが
あれはお前の作ったものか!?
IEが自動判別できなくて表示バケまくり…
>>847 へ〜。面白いな。ajaxで保存の進行状況を把握するのか…
849 :
nobodyさん :2006/03/17(金) 22:14:42 ID:duB6JjQA
え。Win98のPHPって挙動違うのか?初耳だぞ
漏れが実装してる鯖ではhttpヘッダで charset=ISO-2022-JPって返してるよ。 おまいの実装ではhttpヘッダで何も返さないからcharset=ISO-8859-1が指定された事に成ってる。 HTTPのRFCぐらい嫁。 ajax切ってある(w
854 :
849 :2006/03/17(金) 22:34:46 ID:???
>>850-851 直前でhtmlspecialcharsをかけていたのが原因でした。
ENT_NOQUOTESを掛けたつもりでいたのですが、ENT_QUOTESになっていました。
ご迷惑おかけしました。すみません。
アンカーくらい付けれ
PHPで
をやりたいのですが、うまくいきません。ご教授ください。
とすればうまくいきます。試してみて下さい。
が私からのお礼です。 どうかお納めください。
裸の王様?
Yahooやlivedoorなどのような大規模サイトでのユーザ認証は、どのようにされている か想像で良いので教えて頂けませんか? LDAP,Radiusのようなものを使っているのか、DBの中で管理しているのか…
userアカウントを作って認証してんじゃないのかなぁ。 そんな気がする。
>>862 *nix系の標準のユーザアカウントですかね。
それだと沢山のWebサーバやDBやサービスが出てきた時に一元管理できなくなるような
気がして…
PHPから*nix系アカウントを利用している実装って見たことないんですけど、
ご存知であれば教えてもらいたいです。
信じるなよ
>>861 PEARのAuth_HTMLって知らない?
それを調べて使ってみれば大雑把なイメージはできると思う。
もちろん、大規模サイトでは独自のロジックを使用しているとは思うけれど。
このあいだ、とあるISPのユーザ管理システムのWebインターフェイスを作ったけど、 データベースはLDAPだったよ。まぁ、ユーザ数はYahooの足下にも及ばないけどね。 なんでもISPではLDAPを使うところが結構あるらしいよ。 ただ、LDAPはそもそもは単なるディレクトリデータベースだから、 ユーザーごとのいろんな情報を分類して入れとくのに便利ってだけで、 認証とは直接関係ないけどね。
867 :
865 :2006/03/18(土) 16:09:23 ID:???
要するに、DBのはず。
>>865 > PEARのAuth_HTMLって知らない?
名前だけは知ってましたけど、そういう目的に利用できるものなんですね…
PEAR::Auth で Auth_LDAPとかもあるみたいですね。
ドキュメントは少なそう…PEAR本買うかな…
>>866 LDAPは認証関係ないんですか。認証ログとかの取り扱いもしてないんですかね。
Radiusもちょい調べてみたら、php-radiusとかあるんですね。
echo に 下記のcolor属性を追加するとうまく動作しなくなります。 echoを使う際のhtmlの書き方は下記のもので合ってるんですかね? echo "<table color="#EFEFEF">\n";
870 :
訂正 :2006/03/19(日) 03:04:20 ID:BDJY4Umc
echo "<table bgcolor="#EFEFEF">\n";
echo '<table bgcolor="#EFEFEF">';
872 :
869 :2006/03/19(日) 03:14:02 ID:BDJY4Umc
試しにダブルクオーテーションをはずしたら上手くいきましたorz 意味ワカンネ。。 echo文の中ではダブルクオーテーション使っちゃいかんの?;
> echo "<table bgcolor="#EFEFEF">\n"; PHPの中の人 1. echoキター 文字列キボンヌ 2. " をハケーン。文字列の開始キター 3. <table bgcolor= ここまで読んだ 4. " キター。文字j列終了sage 5. # !? 何コレキタ? 6. ワケワカンネ(;´Д`) 7. エラーage
わきゃりやすい。
>>872 echo関係なくて、"〜"の中で"を使うときは\"って書かなきゃダメすよ
>>869 PHP以前にCかJavaやったほうがいいよ。
>>879 CやJavaやった方がいいよって言ってるの
結局エスケープで躓くんだから一緒じゃないの?
>>861 認証は、DBを使ってます。LDAPは使ってません。
ユーザ名とパスワードをデータベースに入れておき、ログイン時に確認しているだけ。なんの難しいこともやってません。
LDAPは簡単なデータ検索のためのプロトコルです。それが認証という用途でよく使われるだけであり、認証のためのプロトコルではありません。
認証以外では例えば郵便場号を入力すると住所が返ってくるようなLDAPサーバを作ることもできます。
またLDAPはクライアントサーバ型のアプリケーションでは便利ですが、Webアプリではあまり使われません。というか、わざわざLDAPを使う理由がありません。
クライアントサーバでは、ユーザ情報(名前とパスワード)はクライアント側ではなくサーバ側にあるため、認証が必要ならサーバに問い合わせる必要があります。そのときのプロトコルとしてLDAPが使われます。
つまり認証を必要とするアプリと、認証に必要な情報をもっているサーバが別であるため、LDAPのようなプロトコルが必要になります。
例えばメールソフトがメールサーバに接続するときにLDAPをつかって認証を行うという場合がこれにあてはまります。
Webアプリケーションでもユーザ情報がサーバ側にあるのは同じですが、認証を必要とするアプリ自体もサーバ側にあるため、すべてがサーバ側で完結しています。
そのため、わざわざLDAPのようなプロトコルを使って通信をする必要がありません。
ただし、アプリケーションごとにサーバが分かれており、かつユーザ情報を一元管理している場合は、アプリケーションサーバが認証サーバに問い合わせるような形態にすることはあります。
そのときにLDAPを使う可能性はありますが、通常は単なるDBサーバへの通信を使うことが多いです。
Radiusは、通信経路を確立するときに認証を必要とするプロトコルです。
Webアプリでは通信経路はすでにHTTPで確立されているため、Radiusはまったくつかえません。そもそもの用途が違います。
>>881 つまりエスケープで躓いても、CやJavaのがカバーが手厚い。
間違えた部分を自分で直す為の道が整ってる。
>>874 たしか#の後はコメントになるはずだから、コレはセミコロン抜けでエラーだろ。
>>884 だぁね。
<?php echo "<table bgcolor="#EFEFEF">\n"; ?>
ってので試してみると、<table bgcolor= だけ表示されて正常終了する。
ldap, radiusはレプリケーションが楽ってのが有る。 認証鯖が堕ちたらサービス中断するからね。 DBだとボラクルRACになって金がかかる。 認証をどう使うかは実装次第。 ldapをPPPoEとかの認証に使う実装も有り。ただ重いので、sslもしないでradius認証が一般的。 中の人の声キター! ハゲワロス。 これスクリプト化して配布すると実用性有るよ。 にちゃんねらのためのPHP入門に収録決定。 ldapがISPで採用されるのは、PPPoEの認証じゃなくて、鯖との認証系。 どこかのradius鯖がladap互換機能も持ってたかも知れないけど。 *nix系の認証はwebminあたりを参考にするといい。
PHPでも print qq|<a href="$hoge">hoge</a>|; が使えたらどんなに楽なことか…
ユーザーエージェントで振り分けて、includeで、htmlファイルを読み込んで表示させてるのですが、auのWINから複数回アクセスするとタグが裸で出てきます。どうすればいいのでしょうか?
>>887 ヒアドキュメントという手ぐらいしかないもんなぁ…
print <<<QQ
<a href="$hoge">hoge</a>
QQ;
>>888 ソースを張るか長ければうpしてみてくれ。
891 :
nobodyさん :2006/03/19(日) 20:42:53 ID:4ZTFbIAr
>>890 <?php
$agent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match〜〜
elseif(preg_match("/KDDI\-/",$agent)) {
include ("相対パス");
}
〜
?>
としています。
さきほど言ったように、読み込んでいるファイルは、.htmlです。
>>889 ヒアドキュメントはインデントが崩れるのがやだなぁ
>>888 >複数回アクセスすると
ってどういうこと?
894 :
nobodyさん :2006/03/19(日) 21:26:38 ID:N7Rtukyk
895 :
894 :2006/03/19(日) 21:27:45 ID:???
ageてしまいました。 ごめんなさい。
897 :
nobodyさん :2006/03/19(日) 21:49:35 ID:V+xlGNgJ
strip_tagsで複数指定する場合 strip_tags($unko, '<b><s><p>'); これで合ってますか?
print qq|<a href="$hoge">hoge</a>|; できるようにソースを弄れば? 再配布したら主流に成るかもよ。
899 :
nobodyさん :2006/03/19(日) 22:08:56 ID:4ZTFbIAr
>>893 アクセスしたあと、携帯の戻るをして、再びアクセスを繰り返すってことです。
>>894 htmlファイルにメタで無効にしてますが
シングルクオーテーションじゃだめなんかい?>qqとやら
ああ、変数の展開したいのね
auは普通のブラウザとは全然レベルの違うしつこいブラウザキャッシュを行うんで その辺でプログラムがどっか誤動作してる気がするなー。 PCやDocomoでは絶対にキャッシュしないだろうパターンでもauでは大抵はキャッシュするよ。 1度戻って再アクセス、という場合だと、まず再アクセス時にはプログラムには実際にはアクセスが入ってない。 auのゲートウェイサーバー上に残ってるキャッシュを再表示してるだけだと思う。 そういう挙動をされた場合にどこがどう誤動作するかは一連のプログラム全体を見ないと正直分からん。 タグがそのまんま表示されてしまう… どっかが抜けたことでヘッダーがtext/plainで認識されてしまうか どこかで<pre>タグが閉じてない状態になってるのか?
話し変わってもうすぐ1000だけど テンプレどうするよ。以前わかりにくいって議論になってたけど
とりあえず
>>1 を短く書き直した。(勝手だけど誰かしらやらないと何も変わらないので・・・)
--------------ココカラ--------------
PHP全般の質問スレです。
>>2-10 も参照。
【基本ルール】
・新規質問の方はageてください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・Googleやマニュアルで調べてから質問してください。
(マニュアル:
http://www.php.net/manual/ja/ )
・解決しなくても答えてもらったら礼を。
・煽り・荒らしは放置。
--------------ココマデ--------------
>>2 は過去スレのみで十分かも。
>>3 はいらないと思う。誰も見ない上に毎回新スレを立てる時に更新が面倒くさそう。
>>4 のFAQは内容はいいけど、妙に分かりづらい印象なのでこれから要再考。
>>5 は個人的には記念に残って欲しいけど、スレ立てる人の好きにしてください。
思いっきり独断で書いたので、何か思いついたことがあったら言ってください。
じゃあ俺も。提案は以下
----------------------------------------------------
PHP全般の質問スレです。
>>2-10 も参照。
【基本ルール】
○新規質問の方は必ずIDを表示させてください。
書き込む場合はメール欄に何も記述しないでください。
○2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
○質問の前にGoogleやマニュアルで調べてください。
(マニュアル:
http://www.php.net/manual/ja/ )
○解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く)
-------------------------------------------------
>>2 はそのまま残したほうがいいと思う。
>>3 は全部いらない。
>>4 は確かにわかりにくいけど役に立つからそのまま。
>>5 は以下
--------------------------------------------------
質問する場合の注意
1. 自分のIDを表示させること。
2. ハードウェア、OSのバージョン等を記述すること。
3. 己の行った操作、変更などを詳しく記述すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。
以上を満たしていない質問の場合、
回答は期待しないでください。
910 :
909 :2006/03/20(月) 11:52:53 ID:???
リンク集なんかは
>>908 のところに追加してったらいいんじゃないの?
いちいちテンプレ化しなくても。
>>911 Wikiさあ、管理人がもっと勢力的に更新しないと誰もついてこないよ。
つーかテンプレにリンク集はほしい。
自分自身はPHPのは使わないけど、例えば新しい言語とか始めるときそのスレにリンク集あるとたどること多いから。
913 :
912 :2006/03/20(月) 12:07:53 ID:???
勢力的って何だ・・・orz 精力的のまちがい。
>>913 勢力的ってあれだろ。
群集がワー!!っていう
>>907 ・ が ○ になったのはなぜ?w
俺的には ♥ がいいんだが
「変態!!変態!!変態!!変態!!」 ってやつなんだけど一度見てみたいんだよねー なんていうかあの1コマ見ただけでゾクゾクしてくるよ!! いや俺は別にMじゃないんだけどあの表情はわすれられんwwwwwwwwwww
917 :
916 :2006/03/20(月) 14:30:39 ID:???
間違えましたすいません
AAか何かか
>>916 今テンプレの結構重要な話ししてたんだよ。
別に漫画好きが悪いとはいわないけどさすがにこれは無いわ。
本気で悪いと思ってるなら普通うpまでするのが筋だろ。
FAQちょっと修正+追加してみた。慣れないことをして疲れますた。
【FAQ】
1. ブラウザに何も表示されないんだけど・・・
→ error_reporting()や、php.iniのdisplay_errors、log_errorsを確認
2. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ できません
3. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
4. echo "$arr['hoge']['fuga']"; がうまくいかない
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
5. echo?print?
→ echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
6. 値渡しと参照渡し(「&」を使う)のパフォーマンス
→ この二つはパフォーマンス目的で使いわけたらダメ。よく知らずに参照渡しにすると遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
7. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()
8. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
9. 一定時間ごとに何かしたい
→ cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
922 :
921 :2006/03/20(月) 16:17:58 ID:???
11. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
12. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
13. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 14. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならうまくPHPにうまく関連させて質問する
15. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
16. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
17. strip_tags()で複数のタグを削除したい
→ strip_tags($html, '<script><style><a><p>'); // htmlspecialchars()も検討すべし
18. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
あと他に最近よく見かけるのが、ヒアドキュメント系とAU系なんだけど、どう書いていいかよくわからなかったので保留。
つーかケイタイサイト扱ったことないからAUだとどうだとかよくわからん。
ちょっと前にimap系の質問もいくつかあった気がするけどけっこう回答が出てないこともあったかも。
俺もよくわからない。
923 :
921 :2006/03/20(月) 16:25:41 ID:???
やべ、strip_tags勘違いしてた orz 訂正です 17. strip_tags()で削除しないタグを複数指定したい → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
auの質問が多くてもFAQにできるほど定型の回答は無いと思う。
>17. strip_tags()で複数のタグを削除したい → strip_tags($html, '<script><style><a><p>'); // htmlspecialchars()も検討すべし 間違ってね?
927 :
nobodyさん :2006/03/20(月) 17:37:13 ID:aQx/7UBc
今まで一人しかユーザーが居なくて一人ですべてを管理していたアプリがあるのですが、 管理責任者はすべてのデータを管理し、ほかの管理者はユーザーIDによって担当の DBを拾い出して管理するという仕組みに変更することになりました。 (ログインするときのユーザー名が管理するDBのIDと同じになると言う設計です) 今までは、ログインすると管理題目一覧が出て、管理題目を選択すると、管理題目詳細に 飛ぶ仕組みでした。 今度は管理責任者は従来どおりなのですが、管理者はログインした時点で管理題目一覧を 飛ばして、管理題目詳細へ飛ぶようにしたいと思っています。 しかし、管理責任者は選択するとき、管理題目をクリックするので、linkラベルを使って飛ばせ ますが、管理者はログインしたら何もクリック等せずに管理画面詳細に飛ばさなくてはならない ので、記述の方法で行き詰っています。 if($_POST['kanrisikaku']!='yes'){ //userid.phpに遷移する<この処理の書き方が分からない。 } useridにあたる部分の生成方法は分かるのですが、分かっているPHPファイルを読ませる方法が 分かりません。 どなたか御教授ください。 お願いします。
928 :
921 :2006/03/20(月) 17:41:43 ID:???
930 :
926 :2006/03/20(月) 17:50:57 ID:???
一昨日辺りからphpを勉強し始めた者で、計算プログラムを作っているのですが、 (350+x)/100 の様な ()で計算の順番を区切るにはどのようにすればいいでしょうか? 普通にやると当然の如く 350 + (x /100)←の順番で計算されてしまいます。
なんか文章おかしいですね...
>>931 まずはうまくいかないコードと結果を書いてみ
<html> <head> </head> <body> 計算プログラム<br> <form action="test.php"> テストA:<input type="text" name="testa"><br> テストB:<input type="text" name="testb"><br> テストC:<input type="text" name="testc"><br> <input type="submit" name="bottun1" value="入力"> <input type="reset" name="bottun2" value="リセット"> </form> <?php $a = $testa; $b = $testb; $c = $testc; $x = 5; $z = 100; print("<br>"); print("計算結果:".( $a * $x + $b / $z * $c )."<br>"); ?> </body> </html> ちょっと新しく作っていたら今度は表示されなく・・・。 この同じページに計算結果を表示したいんですけどうまくいきませんな・・・。 print("計算結果:".( $a * $x + $b / $z * $c )."<br>"); の部分を実際の検索方法は ( $a * $x + $b )/ $z * $c こんな感じにしたいんですよ・・・。
>>934 まずは $testa がきちんと取得出来ているかprintでもしてみなされ
>>934 >>935 が指摘している通り、まずは$aを表示してみる。
それが出来ればあとは簡単。自分で答え書いてるじゃない
>>934 > print("計算結果:".( $a * $x + $b / $z * $c )."<br>");
> の部分を実際の検索方法は ( $a * $x + $b )/ $z * $c こんな感じにしたいんですよ・・・。
ならそのまんま
> print("計算結果:".( ($a * $x + $b) / $z * $c )."<br>");
って書けばいいじゃない。
学校の宿題もいいけど、自分で考えて試してから聞いて欲しいと思う今日この頃
春の風物詩
テンプレFAQに 19.学校の宿題を教えてください →くだらない質問スレで歓迎します って入れとくか。
くだ質でもイラネ
>>921 一時期多かった質問に
「PHPからPOSTリクエストしたい」ってのがあったね
A:fsockでコネクション張るかPEAR使う
で良いんだっけ?
何で学校の宿題を他人に丸投げするか不思議でしょうがない。 お前これやっとけよ、と恐喝してるのと結果を見たら変わりが無い。
>>942 あとcURL。まあ環境によっては使えなかったりするので
fsock、もしくは内部的にそれを利用したPEARのHTTP_REQUESTクラスでOK
wikiなら管理人任せにしないで弄ればいいんじゃね? 宿題スレと分離汁!
>>942 そういやそうだったかも。回答としては8.と内容かぶるから、
PHPから外部にPOSTリクエストしたい
→ 8.を参照
でいいかも。
>>945 べつに管理人任せなわけじゃなくて、そもそも現状ではwiki欲しいと思わないからね。
管理人かその同志たちで盛り上げて内容を充実させれば人も寄り付き始めるんじゃないの?
あのwikiって情報量少ないんだよ。 回答も一行くらいしかないし、わざわざwiki化してる意味がない
>>922 日本語がおかしい
>14. SQLの質問はどこで?
> → データベース板に誘導されるのが嫌ならうまくPHPにうまく関連させて質問する
盛り上げて内容を充実させるのは、その情報量少ないと感じるおまいらなんだが。 普通のHTMLだとそこらが管理者任せに成って、困るからおまいらが好きなように弄れると簡単に充実させられるねってのがwiki化してる最大の意味。 おまいらが弄らないなら、わざわざ荒らされやすいwikiにしてる意味ないじゃん。 常に正解を求めるという短絡的な教育政策の成果ですか?
>>951 だーかーらー、そもそもwikiなんていらないの。
盛り上がらないなら盛り上がらないで全然構わない。
ただ、いまだに執拗に宣伝しにくる人(人たち?)がいるから、wiki推奨派がもうちょっと盛り上げる努力をすればいいのに、ってだけの話。
俺はさびれてるwikiで一人で黙々と貢献するほどお人好しじゃないし、ほかの奴らもだいたい同じだと思ってる。
(現にwikiが全く更新されないのが何よりの証拠)
だから管理人が盛り上げれば?って結論ですよ。
オープンソースプロジェクトだって一緒。 作者がいいものを作るためにひたむきに努力しているのが周囲に伝われば自然と人が集まってくる。 他力本願でオープンソースプロジェクトを立ち上げたって誰も手伝わない。 まあある程度の完成度に達しさえすれば途中で作者がやる気をなくしても別の人が引き継ぐってケースはあるけどね。(Mojaviがいい例) それでも、wikiを「作りさえすれば自動的に誰かがどんどん更新してくれるシステム」だと思って立ち上げたなら大間違い。
Wiki編集したいけど今の仕切り方が嫌いだお
>>956 どうせ今はあってないようなものなんだし、好きにやっちゃったら。
むしろやって下さい(><)
俺もいじりたいけど、あんなに何もないとやる気がしない・・・。
958 :
(^ω^) :2006/03/21(火) 11:31:39 ID:8j/dzNuV
やるからには派手に消すお YukiWikiしか使ったことがないから失敗したときのために、誰かバックアップしておいてくださいお 時間があく2時くらいから始めるお(^ω^)
sage忘れスマソ(^ω^;)
958に期待
>>958 バックアップなんかいらんよ。丸ごと書きかえれ。
962 :
(^ω^) :2006/03/21(火) 12:09:50 ID:???
>>962 値を返す点で関数のように振舞うってことじゃね?
でもマニュアルには「関数ではない」ってはっきり書いてあるからFAQはまずいね。
どうでもいいけどPHPpediaよりPHPediaの方がよくね?
ほんとどうでもいいな
ピーエイチッッペディアでいいと思われ
>>962 printって後から適当に追加(PHP3からだっけ?)した命令なので
役割としても動作(関数ではないのに関数的動作)も中途半端だよね。
なんで関数にしてないんだろ。
Perlに合わせようとしたから
970 :
(^ω^) :2006/03/22(水) 01:08:34 ID:???
ちょっとやりすぎかお?(^ω^;)
>>(^ω^) おつ〜いい感じじゃまいか
perlは嫌いです 荒れさせて埋めようなんて思っていません
言語としては好きでインタプリタだけ嫌いなんて酔狂な御仁だ
インタプリタは重いからunkoです
>>969 Perlのprint関数って値返すんだっけ?長い事Perlやってないからもう判らん。
似てると言えば,で複数パラメータ与えられるechoの方がPerlに近い感じがする。
printがechoのエイリアスで駄目だった理由はなんだろう。
あと、(^ω^)がwikiに書いてたけど、 func() or print "失敗したよ"; って書けるようにするってのが主目的な希ガス。
>>977 その例なら普段はdieで済ましているからそうなのかな・・・と思ったら、
マニュアルのexitの項目に
$file = fopen ($filename, 'r')
or exit("unable to open file ($filename)");
という例があるな。もちろんexitは
>注意: この関数は実際には関数ではなく言語構造です。
いや、orの後に書けるかどうかってのは、関数かどうかではなく値を返すかどうかだよ。
そもそもwikiは無視してHTML書いてうpすればいいじゃん。 でそいつが責任もって管理する。 誰も管理しようとしないのに、wikiがどうのってケチ付けても前には進まないよ。 wiki弄るか、HTML書け。
>>980 突然何の話?HTML書くって何を書くの?
>>975 Perlのprintは単なる文字出力じゃなく、ファイルハンドル与えるfputs相当だから。
当然のように成功・失敗を値で返すわけですよ。
>>981 ソースにきまってるだろうがああああああ!!!!
ブルドックブルドックブルドックブルドックウウウウ!!!!!!!!!
985 :
(^ω^) :2006/03/22(水) 17:00:42 ID:???
>>979 の注釈を追加したお
エラーメッセージをよまなったのはおいらのほうだったお(^ω^;)すまんこ
おれ今から(^ω^)のことブルって呼ぶわ。
∧ ∧ (*^ω^ *)
988 :
nobodyさん :2006/03/22(水) 17:55:50 ID:ir0obJBH
991 :
989 :2006/03/22(水) 19:14:23 ID:???
>>990 去年のゴールデンウィーク中に落ちちゃったので977までしか保存できてません(連休中まで2ちゃんは見てないので)
他に専用ブラウザのdatが残っている人がいたらよろしくです
次スレ誘導までオナニーでもしててください
(;´Д`)ハァハァ
(;´Д`)ハァハァ
(;´Д`)ハァハァ
(;´Д`)ハァハァ
(;´Д`)ウッ
(;´Д`)ハァー後はまかせた
999 :
(^ω^) :2006/03/22(水) 21:03:55 ID:???
(^ω^)
1000 :
nobodyさん :2006/03/22(水) 21:05:11 ID:H3I7tLWs
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。