くだすれPHP(超初心者用)3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/25(木) 16:04:31ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
---前スレのテンプレここまで---
前スレ: くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
△▲ WebProg 初心者の質問 Part16 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1187729623/
完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0002nobodyさん
2007/10/25(木) 16:05:30ID:???PHPプロ!PHP講座
ttp://www.phppro.jp/school/phpschool/
では、ドゾー
0003nobodyさん
2007/10/26(金) 01:14:43ID:???ほかに無料Webスペースで使えるスクリプト言語が少ないっていう程度
Perlよりわかりやすい言語っていう程度
変な言語仕様だ
即死回避
0004nobodyさん
2007/10/26(金) 01:15:22ID:???0005nobodyさん
2007/10/27(土) 00:52:57ID:???0006nobodyさん
2007/10/29(月) 21:43:11ID:???function hoge(){
$a = array("X", "Y");
return($a);
}
戻り値の 配列の要素にアクセスする場合に、戻り値を一旦変数に入れるのではなく直接参照することは出来ませんでしょうか。
$r = hoge();
print($r[0]);
hoge()[0] //<-- こんなようなこと出来ない?
0007nobodyさん
2007/10/29(月) 22:06:52ID:???0008nobodyさん
2007/10/29(月) 22:51:03ID:???0009nobodyさん
2007/10/29(月) 23:26:14ID:???0010nobodyさん
2007/10/30(火) 01:25:10ID:???0011nobodyさん
2007/10/31(水) 06:13:37ID:???Submitボタンを押すと入力した内容が含まれたtxtファイルのダウンロードが始まる
というようなサイトを作りたいのですがphpで可能ですか?
当り前っちゃ当り前なのかもですがprint関数で試してもファイルを保存ではなく
中身がブラウザに表示されてしまいそれを手動で保存してもらわないといけないので
そこをなんとかしたいです。
0012nobodyさん
2007/10/31(水) 06:35:32ID:???http://jp2.php.net/header
0014nobodyさん
2007/11/01(木) 18:50:02ID:???画像の左右5pxに黒い背景をつけたいのですが
どのようにすればいいのでしょうか?
黒の画像と合成してみましたが画像の端が消えてしまいました。
0015nobodyさん
2007/11/01(木) 19:12:21ID:???0016nobodyさん
2007/11/02(金) 12:05:48ID:???指定したタグをそのまま残して他はhtmlspecialcharsみたいに
そのまま表示をしたい。
そんな関数ある?
0018nobodyさん
2007/11/03(土) 11:41:40ID:???例えば「☆」だと化けませんが「☆あ」だと「?#63908;」みたいに化けます。
なぜですか。
0019nobodyさん
2007/11/03(土) 13:38:29ID:???0020nobodyさん
2007/11/03(土) 16:38:34ID:GrGF3a3n0021nobodyさん
2007/11/03(土) 18:39:13ID:???gattai(Human ore, Human anata) {
return ore.gattai(anata);
}
みたいな?
こういうことやるためには
HumanクラスにgetTypeメソッド
public function getType() {
return "Human";
}
を実装
function gattai($ore, $anata) {
if(is_Human($ore) && is_Human($anata)) {
return $ore->gattai($anata);
} else {
throw Exception();
}
}
function is_Human($human) {
return $human->getType() == "Human" ? true : false;
}
とでもしないと駄目なんかね。
0022nobodyさん
2007/11/03(土) 18:51:02ID:EkQ97k6rメールフォームを作ったんですが、なぜか入力確認画面の表示のところでparser errorが出てしまいます。
# エラーが出ているところ
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
# それより上の部分
function check_html(){
global $homeurl,$title;
if(NAME_FLG){
$name_chk = MARK;
}
if(EMAIL_FLG){
$email_chk = MARK;
}
if(COMMENT_FLG){
$comment_chk = MARK;
}
if($_POST['copy'] == "on"){
$copy_flg = "E-mailで受信する";
}else{
$copy_flg = "E-mailで受信しない";
}
?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
以上ですよろしくお願いします。
0024nobodyさん
2007/11/03(土) 18:55:29ID:???0025nobodyさん
2007/11/03(土) 18:58:57ID:UiuKYuS+デザインとロジックを分けて作ってあるのですが
デザインのhtmlファイル内の各所に
{rval hr} とか index.php?{rval param} のように
{rval --} とあります。
htmlファイル内にphpを埋め込む際は下記のような記述が基本だと思っていたのですが、くくられていなかったりaltタグの中に入っていたりします。これはどういうことでしょうか?
<?php
?>
0026nobodyさん
2007/11/03(土) 19:05:47ID:???まぁ自力でも置換できるけど
0027nobodyさん
2007/11/03(土) 19:06:47ID:EzkHevL1【PHP】下らねぇ質問はここに書き込みやがれ 58 立ててくる。
0028nobodyさん
2007/11/03(土) 19:11:31ID:???0029nobodyさん
2007/11/03(土) 19:15:50ID:???「下らねぇ〜」がない間、ここに居候させてもらってた皆さんは移動。
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1194084457/
0030nobodyさん
2007/11/03(土) 19:18:03ID:???まったく同じように機能するわけじゃないけどね
http://jp2.php.net/language.oop5.typehinting
0032超初心者
2007/11/05(月) 18:43:22ID:s8UgZp9yカウンターを造るところで一つ疑問点が
<?php
$fp = fopen("count.txt", "r+");
$iCount = fgets($fp, 64);
flock($fp, 2);
fseek($fp, 0);
$iCount++;
fputs($fp, $iCount);
fclose($fp);
print $iCount;
?>
だとカウントがあがらない
$iCount++;を$iCount = $iCount + 1;にするとカウントがあがります。
$iCount++;が効かないのかと思いましたが
違うスクリプトで
<?php
$filename = "count.dat";
$file = fopen($filename, "r+");
flock($file,2);
$count = fread($file, filesize($filename));
$count++;
print "$count";
rewind($file);
fwrite($file, $count);
flock($file,3);
fclose($file);
?>
これだとカウントが上がります
どなたか説明していただけないでしょうか
0034nobodyさん
2007/11/05(月) 18:57:07ID:???$iCount++; の動作がおかしいと思ったら、その前後で変数を調べてみればいい
おそらく $iCount に余計なスペースが含まれているのが原因
$i = "1 "; の場合、$i++ ではカウントアップしないが、$i = $i+1; では増加する
あと、flockのタイミングに問題があるのでファイルロックについても一般的なお勉強が必要と思う
0035超初心者
2007/11/05(月) 19:13:14ID:Sif87GT6やっぱり家のは上がらないです。
0036nobodyさん
2007/11/05(月) 19:14:52ID:???0037nobodyさん
2007/11/05(月) 19:18:07ID:???0038nobodyさん
2007/11/05(月) 19:21:01ID:???原因は>>34と似たようなもんだったけど。
同じソースのはずなのにどこの違いで
みんなの結果が違うのかが気になる。
0039nobodyさん
2007/11/05(月) 19:39:54ID:???0041超初心者
2007/11/06(火) 16:36:17ID:blXO/asx<?php
$fp = fopen("count.txt", "r+");
$iCount = fgets($fp, 64);
flock($fp, 2);
fseek($fp, 0);
$iCount++;
fputs($fp, $iCount);
fclose($fp);
print $iCount;
?>
count.txtを変数化しました。$db
そして$iCount=fgets($fp,filesize($db));
にしたらカウントが上がりました。
php5です
0042nobodyさん
2007/11/06(火) 17:01:40ID:???0043nobodyさん
2007/11/06(火) 18:33:16ID:???34氏と40氏のレスが全てだと思う
インクリメント演算子は数値型(intその他)の他に文字型(string)に対しても
有効なんだけど、NULL、boolean以外にコントロールコードを含む文字列に
対しては無効。
だから、PHPスクリプトに読ませるファイルのデータにも注意しないとね。
例えば初期値0を書き込んだファイルの16進ダンプを取った時に
30
のみ書かれている場合は良いけど、その後ろにCR+LFやLFが付いている
30 0d 0a 又は 30 0a
などのデータは余分なコントロールコードを排除しないかぎり
そのままではインクリメント演算子で加算はできないよ。
0044nobodyさん
2007/11/07(水) 12:10:07ID:???(またはその逆のケース)って、どういう場合が考えられますか?
0045nobodyさん
2007/11/09(金) 18:37:25ID:/x/z4zSE200711 2007101 などを
20070101 20071001 に
変換する関数とかってないでしょうか?
ない場合どうやって分離するか教えてください。
■ このスレッドは過去ログ倉庫に格納されています