トップページ⇒php
1001コメント358KB

【PHP】下らねぇ質問はここに書き込みやがれ 29

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/09/17(日) 04:26:39ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0652nobodyさん2006/09/27(水) 20:53:35ID:???
うわ、>>606らへんに書いてあった。参考にします。
すいませんすいません・・・orz
0653nobodyさん2006/09/27(水) 21:10:36ID:???
>>651
>if(!empty($_POST['$i'])){
問題はここにある
0654nobodyさん2006/09/27(水) 21:49:10ID:???
>>653
ありがとうございます。"$i"でくくったら出来ました。

でもクリック1回分遅れて表示してしまうので、正常には表示出来ません。
何とか上に表示させたいんですが、何か良い方法あればご教授を願いたいです。
0655nobodyさん2006/09/27(水) 21:51:23ID:???
すいません、自己解決しました。
for($i=1;$i<10;$i++){}の後ろにecho $_SESSION['id'];付けたら出来ました。
テーブルの下に表示されちゃうのではないのか?と思ったのですが
</table>タグの前なので表示されるんですね、気づきませんでした。
ありがとうございました。
0656nobodyさん2006/09/27(水) 21:54:27ID:???
クリックした値を表示したいだけなら、セッションの中身じゃなくて
$_POSTそのまま表示すれば良いだろ。

$_POSTで取った値をセッションに入れて、次のページに渡してるんだから
クリック1回遅れるのは当たり前。



0657nobodyさん2006/09/27(水) 21:58:25ID:???
エラーを一切表示したくないのですが、
すべて@で処理してもエラー文が1行表示されます。
まったく何も表示しないという事は無理なんですか?
0658nobodyさん2006/09/27(水) 22:07:12ID:???
エスパーが来てるのか?>
0659nobodyさん2006/09/27(水) 22:08:38ID:???
display_errors = Off
0660伊藤アチャコ2006/09/27(水) 22:20:25ID:???
呼んだ?
0661nobodyさん2006/09/27(水) 22:31:57ID:???
>>657
なんてエラーが出てるかくらい書けよ
0662nobodyさん2006/09/28(木) 00:18:50ID:yFiHvde3
$text = '段落段落段落
段落段落段落段落段落

段落段落段落';

という文字列を……:

'<p>段落段落段落段落段落段落段落段落</p>
<p>段落段落段落</p>

という感じで、空行で区切って「<p></p>」で括りたいのですが、どうすれば出来るのでしょうか?
いろいろと試してみたのですがベストな方法が浮かびません。
よろしくお願いします。
0663nobodyさん2006/09/28(木) 00:21:02ID:???
2連続する改行を</p><p>に置換する
0664nobodyさん2006/09/28(木) 00:30:59ID:???
>>662
$text = '段落段落段落
段落段落段落段落段落

段落段落段落段落段落
段落段落段落段落段落

段落段落段落';

echo "<p>" . str_replace("\n\n", "</p><p>", $text) . "</p>";
0665nobodyさん2006/09/28(木) 00:58:03ID:???
>>650
携帯電話相手にスパム配信するとかなら必要
0666nobodyさん2006/09/28(木) 02:51:04ID:Pq7J5CUU
$ncolor = ($colorb) ? $colorb : $colora;

↑これって何ですか?

0667nobodyさん2006/09/28(木) 02:57:30ID:???
if ($colorb) {
 $ncolor = $colorb;
} else {
 $ncolor = $colora;
}
と同じ意味
0668nobodyさん2006/09/28(木) 03:01:38ID:???
>>666
三項演算子。C言語由来の簡易な条件判断式。
0669nobodyさん2006/09/28(木) 06:24:52ID:???
>>667-668
初めて知った。
便利そうだけど、慣れるまで見辛そう…
>>666じゃないけど1つ勉強になりますた。
06706622006/09/28(木) 07:57:28ID:yFiHvde3
>>663-664
ご回答ありがとうございます。

>>664だと、連続した三つ以上の改行があると '<p></p>' という内容が空のP要素を
生成してしまいます。

自己解決かもしれませんが、次のようにしたら出来ました。
何か問題があれば指摘をよろしくです。

function 関数名 ($lines)
{
    $lines = explode ("\n\n", $lines);
    $lines = str_replace ("\n", '', $lines);

    $line = '';
    if (is_array ($lines)) {
        for ($i = 0; $i < count ($lines); $i++) {
            if (! preg_match ('/^$/', $lines[$i])) {
                $line .= "<p>" . htmlspecialchars ($lines[$i]) . "</p>\n";
            }
        }
    } else {
        $line .= "<p>" . htmlspecialchars ($lines) . "</p>\n";
    }

    return $line;
}
0671nobodyさん2006/09/28(木) 08:26:15ID:???
>>670
> 連続した三つ以上の改行があると
そんな変な条件があるなら先に言わないと。

メインの変換処理で多重空行に対応するのも手だけど、
場合によっては先にイレギュラーなデータを補正しとくことで
ロジックを単純にでき、バグの少ない高品質なプログラムを
作ることができる、ということも覚えといた方がいいと思う。

でもぶっちゃけ、その程度なら
echo "<p>" . preg_replace("/\n\n+/", "</p><p>", $text) . "</p>";
でいいと思う。
htmlspecialcharsを仕込むなら
echo "<p>" . preg_replace("/\n\n+/", "</p><p>", htmlspecialchars($text)) . "</p>";
かね。
0672nobodyさん2006/09/28(木) 08:54:08ID:???
>>670
関数本体も冗長だな。>>671が正解だけど、全く同じロジック書く場合もこれくらい緩くていいよ。
function paragraphs($text)
{
  $lines = array();
  foreach ((array) explode("\n\n", $text) as $line) {
    $line = str_replace("\n", '', $line);
    if ($line != '') {
     $lines[] = htmlspecialchars($line);
    }
  }
  return '<p>' . implode("</p>\n<p>", $lines) . '</p>';
}
0673nobodyさん2006/09/28(木) 12:06:09ID:???
お聞きしたいんですけど、mixiのようなログインしてから個々の自分のページを見れるようにするには、
セッションを用いてるからなんですか?それとも、クッキーを使用しているのですか?
セッションは、初期設定では24分!?ごとに一回アクセスがあるかぎり、
保持されると聞いたのですが、mixiの場合はその設定時間をのばしているのですか?
また、ログアウトせずに、お気に入りに入れて開いても、何日もログインの
状態にあるのは、クッキーを使用しているからですよね?
setcookieとsessionを両方、用いているのでしょか?
長くなって申し訳無いですが、ご教授下さい。
0674nobodyさん2006/09/28(木) 12:24:42ID:???
>>673
間違い探し
1.一般にセッションはCookieを利用して実装されるので併用が普通
2.セッションのデータ保持時間はPHPなどが勝手に定めてる
3.mixiはPerlで作られていてPHPのルールは関係ない
4.質問時のメルアド欄は「亜sdfghj」などと入れるものではない

で、本題だがmixiでセッションが使われてるかどうかは知らないが
パラメータなしのブックマークからログインできるのはCookieによるものだよ。
0675nobodyさん2006/09/28(木) 12:52:54ID:???
ああ、なんかこれだと回答が足りてないな。
ログイン後のページ遷移が自分のページ基準になるのは
単なるCookieでもできるし持ちまわるデータ量が多い場合は
セッションを使う場合もある。mixiがどっちかは知らない。
mixi程度の処理でセッションが必要とも思わないし。
(必要なのはログイン情報だけでページ間でデータを持ちまわらないので)
0676nobodyさん2006/09/28(木) 13:13:24ID:???
>単なるCookieでもできるし持ちまわるデータ量が多い場合
データ量が多いとセッションなの!?
セキュリティ面でクッキーよか、セッションの方がいいんじゃないの?

ちなみに、mixiはphpも使われてます。
0677nobodyさん2006/09/28(木) 13:16:55ID:???
session.gc_maxlifetime
0678nobodyさん2006/09/28(木) 13:23:08ID:???
受け取った変数の中に「?」が含まれていると勝手に「\?」に変換されているのですが、回避する方法はないでしょうか?
0679nobodyさん2006/09/28(木) 13:35:51ID:X3mGBPuB
正規表現で
'/hoge[1-9]/'の条件に当てはまる文字列を置き換えたいのですが、置き換える時に
hoge1の場合はhogeXX
hoge2の場合はhogeXXX
とゆう置き換えにすることは可能でしょうか?
どのようにすれば効率的かご教示くださいませm(_ _#)m
0680nobodyさん2006/09/28(木) 14:03:15ID:???
〇いう
×ゆう
0681nobodyさん2006/09/28(木) 14:04:09ID:???
>>679
可能
06826812006/09/28(木) 14:07:06ID:???
ああ、性器表現でってことか。それはわからん。
わざわざ性器表現使う必要なくね?
0683nobodyさん2006/09/28(木) 14:07:56ID:bhCM1dKb
$hogehoge[$i]['fugafuga']というPHPの連想配列の値を
javascriptのfor(i=0; i<10; i++)の中で取り出すには
どういう風に書けばいいでしょうか?

for(i=0; i<10; i++) {
document.write(<?= $hogehoge[$i]['fugafuga'] ?>);
}
これは通用しませんでした,,,。
よろしくお願いします。


0684nobodyさん2006/09/28(木) 14:08:41ID:5RjmQpnD
すみません、配列に数字の0を代入する方法を教えてください

$hairetsu[0] = '0';

これだと何も入らず空っぽだと認識されます><
0685nobodyさん2006/09/28(木) 14:09:06ID:X3mGBPuB
>>681様
もしご存知でしたらお教えいただけないでしょうか?
str_replaceで'hoge1','hoge2'と置き換えするやり方はすぐに浮かぶのですが、
その場合、
'/hoge[1-9]h(a|b|c)/'という置き換えもありえますので厖大なソースになってしまいます。
0686nobodyさん2006/09/28(木) 14:10:16ID:???
>>683
PHPでforを使う
0687nobodyさん2006/09/28(木) 14:12:39ID:???
>>679
preg_replace_callbackでできるけど、そこまで形が決まってるなら
$from = range(1, 9); $to = array();
foreach ($from as $n) $to[] = str_repeat('X', $n);
$result = str_replace($from, $to, $text);
でもいいかも。

正規表現使うなら、
preg_replace_callback('/hoge([1-9])/', function ($m) {
 return 'hoge' . str_repeat('X', $m[1]);
}, $text);
って感じかな。どっちもあんま効率よくなさそうなので、適当に改造してくれ。
06886832006/09/28(木) 14:19:36ID:bhCM1dKb
>686
レスありがとうございます。
実際にはjavascriptの関数の引数として、phpの配列のあたいを順番に渡したいのです。
単に表示させるだけならphpで回すのですが、javascriptで処理しなければならないところがあるので。
phpの配列をそっくりjavascriptの配列に変換(?)するようなことはできないでしょうか?
0689nobodyさん2006/09/28(木) 14:31:39ID:???
>>688
できれば$hogehoge[$i]['fugafuga']なんていう面倒な構造に最初からならないように工夫したほうがいいけど、どうにもならないなら、
$hogehoge2 = array();
foreach ($hogehoge as $i => $hoge) {
 $hogehoge2[$i] = $hoge['fugafuga'];
}
// ↑ここで ' と \ をエスケープする処理も必要ならいれる
?>
var hogehoge = ['<?php echo implode("', '", $hogehoge2)?>'];
for(i=0; i<10; i++) {
document.write(hogehoge2[i]);
}

こんな感じで無理やりやる。
0690nobodyさん2006/09/28(木) 14:57:33ID:bhCM1dKb
>689
レスありがとうございます。
javascriptのコードの中にphpの変数を入るというより、
hpの変数が展開されたjavascriptのコード全文を一個の文字列として丸ごとjavascriptに投げました。
強引な手段だとは思いますが、一応動きます。
これはマズイやりかたでしょうか?
0691nobodyさん2006/09/28(木) 14:58:32ID:bhCM1dKb
入るというより → 入れるというより
hpの → phpの

すみません。
0692nobodyさん2006/09/28(木) 15:03:13ID:???
>>688
Ajaxとかは別にして
サーバサイド---越えられない壁---クライアントサイド
0693nobodyさん2006/09/28(木) 15:18:39ID:???
>>690
動くならいいんじゃね?(そもそもやっていることが一般的とは言えないから)
ボトムネックになったら直せばいい。
06946622006/09/28(木) 15:25:13ID:yFiHvde3
>>671-672
ありがとうございました。
0695nobodyさん2006/09/28(木) 15:31:01ID:bhCM1dKb
>692,693
ありがとうございます。
いま作っているサービスで、googlmapを使っていて、
mysqlからお店のデータをとりだして、map上の各マーカーをクリックしたときに出るふきだしの中身にそのデータを入れたかったんです。
極端にいうと、
$マーカー[マーカーの番号][お店の名前];
$マーカー[マーカーの番号][お店の電話番号];
とかそんな具合にしたのです。
マーカーの番号は、何個お店データが抽出されるか分からないので、
$iとおきました。
あとは、googlemapのjavascriptで、マーカーを表示させる行をforするだけだと思ったのですが、うまくいかなかったので、
そのjavascriptのコード全部を文字列としてphpの変数に入れました。
あとは、googlemapのコードの中でその変数を一回だけ表示させればいいという仕組みです。
ajaxとかは使えませんし、javascript自体もあまり分かっていないので、苦肉の策といったかんじです。
0696nobodyさん2006/09/28(木) 15:47:38ID:???
htaccessでPHPの拡張子を隠したいのですがどうすれば良いですか?
http://study.rakuto.net/php/phptips/path_info/を参考にして入るのですが、htaccess文が全く分かりません
教えてくだっさい
0697nobodyさん2006/09/28(木) 16:18:41ID:???
hoge.phpをhogeにリネーム(拡張子なしに)

<FilesMatch "^hoge$">
ForceType application/x-httpd-php
</FilesMatch>
0698nobodyさん2006/09/28(木) 17:17:22ID:???
○.htmlでphp動作させたければ、
AddType application/x-httpd-php .html
と書いておけばいい。
0699nobodyさん2006/09/28(木) 17:27:41ID:???
>>697
<FilesMatch "^index$">
ForceType application/x-httpd-php
</FilesMatch>
とやって、indexにアクセスしましたが無理でした...
(index.php設置済み)

また、indexで設定した場合、DirectoryIndexの設定はindexになるのでしょうか?
0700nobodyさん2006/09/28(木) 17:28:36ID:???
index.phpをindexにリネームしろ
0701nobodyさん2006/09/28(木) 17:35:53ID:???
やっぱりリネームしないとダメなんですね…
ありがとうです
ではDirectoryIndexもindexにする必要がありそうですね
0702nobodyさん2006/09/28(木) 18:14:22ID:???
>>701
mod_rewrite使えばいいんじゃね

RewriteEngine On
RewriteRule ^(.*)$ $1.php
0703nobodyさん2006/09/28(木) 18:42:29ID:loAqiE0j
phpスクリプトの中でHTMLを書くとき
<br> ではなく <br/>
と書くのはどうしてなのでしょうか?
<br>と書いても正しく動作はしました。
0704nobodyさん2006/09/28(木) 18:50:09ID:???
>>703

HTMLなら <br>
XHTML なら <br />

それぐらい知っとけ。

主要ブラウザではどっちで書いても同じ動作。
<br/> や <br></br> も XHTML として正しい表記だが、
XHTML未対応の古いブラウザだと誤動作を起こすことがある。(改行されないとか2回改行されるとか)
0705nobodyさん2006/09/28(木) 19:52:10ID:fnAbwW59
日本語を変数に代入する部分で更新するだびエラーが出たり出なかったりしてこまっております。
スクリプト、出力、データベース入力共にSJISのシステムにアクセスしてからEUCのシステムにアクセスするとこのエラーが発生しだします。
このエラーは上位ディレクトリにあるphpMyAdminでも発生するようになります。
おそらくhtaccessの設定によるものだと思うのですが、なぜ違う上位ディレクトリにまでエラーが出るのかわかりません。
SJISのシステムは携帯の絵文字を使用する掲示板のためEUCにするのは難しいです。
問題点と改善策を教えてください。
お願いします。
0706nobodyさん2006/09/28(木) 20:00:42ID:???
>>705
どんなエラーが出るのさ。普通はそんなとこでエラーにならんぞ。
07077052006/09/28(木) 20:14:37ID:fnAbwW59
レスありがとうございます。
Parse error: parse error, unexpected T_STRING in /home/????/public_html/????/m/mobile/includes/languages/japanese.php on line 70
というエラーが出たり出なかったりします。
その行は
define('HEADER_TITLE_TOP', 'トップ');
です。
0708nobodyさん2006/09/28(木) 20:17:00ID:???
>>703
本によると、規格化するときに<></>にしようとしたらbrがあったので<br></br>だとめんどくさいし古いのだとあれだし、
ましてや<br>だけだとだめだから、からタグ?でコメントないなら<br />で良いやって乗ってたような
07097052006/09/28(木) 20:19:51ID:fnAbwW59
あとphpMyAdminででるのは
Parse error: parse error, unexpected T_STRING, expecting ')' in /home/????/public_html/phpMyAdmin/lang/japanese-euc.inc.php on line 19
でその行は
$day_of_week = array('日', '月', '火', '水', '木', '金', '土');
です。
0710nobodyさん2006/09/28(木) 20:23:13ID:???
mb関連の設定はどうなってる?
0711nobodyさん2006/09/28(木) 20:28:53ID:???
>>705
内部は全部EUCにして、出力だけSJISにする。絵文字は文字コード変換前に参照コードに変換しておく。
07127052006/09/28(木) 20:39:28ID:fnAbwW59
php_value mbstring.language japanese
php_value mbstring.internal_encoding SJIS
php_value mbstring.script_encoding SJIS
掲示板ディレクトリのhtaccessの設定は
php_value output_handler none
php_value mbstring.http_input SJIS
php_value mbstring.http_output SJIS
php_value mbstring.encoding_translation off
php_value mbstring.detect_order auto
php_value mbstring.func_overload 1
php_value mbstring.substitue_charcter none;
です。
絵文字に関してですがこの設定じゃないとフォームから入力されてそれを受け取る時点で????なってしまいます。
これ以外の設定でこれを回避する方法もあるんでしょうか?
0713nobodyさん2006/09/28(木) 20:46:59ID:???
要は絵文字の変換?
ひとまずこのスレを絵文字で検索する事をオヌヌメする。
0714nobodyさん2006/09/28(木) 20:47:28ID:eG4UHdr9
<?php
$Time = date("H");
switch ($Time) {
for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
}
}
?>
エラーになってしまいます。何故でしょうか?
教えてください。
0715nobodyさん2006/09/28(木) 20:49:42ID:???
internal_encoding SJIS
の設定で、
$day_of_week = array('日', '月', '火', '水', '木', '金', '土');
とEUCで書いたスクリプトを読み込んだら
エラーが出てもおかしくない理由を理解できないと
あんたの根本的解決には至らない気がするな
0716nobodyさん2006/09/28(木) 20:50:40ID:???
>>714
文法間違ってるから
07177052006/09/28(木) 20:57:54ID:???
>>713
絵文字の変換はできていて掲示板は正しく動くんです。
掲示板にアクセスすると他ディレクトリのシステムでエラーが出るんです。
>>715
そのエラーが出るのは掲示板の上位ディレクトリでinternal_encoding SJISという設定はしていません。
それとも一度どこかでhtaccessで設定するとその設定は持ち越されてしまうのでしょうか?
0718nobodyさん2006/09/28(木) 20:59:44ID:???
>>717
> >>713
> 絵文字の変換はできていて掲示板は正しく動くんです。
> 掲示板にアクセスすると他ディレクトリのシステムでエラーが出るんです。
別のシステム(PHP)なら因果関係は無いはず。
cookieとかセッションとかがかぶってるとか??
0719nobodyさん2006/09/28(木) 21:04:18ID:eG4UHdr9
>>716様
どこが間違いかご指摘お願い出来ませんか?
switch ($Time) {
//for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
//}
}
これはOKですし
//switch ($Time) {
for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
}
//}
これもエラーになりません。
for とswithを組みあわせるときに注意点などありますでしょうか?
07207052006/09/28(木) 21:05:11ID:???
>>718
なるほど。しかしcookieとかセッションとかかぶることによってこのようなエラーが起きるんものなのでしょうか?
そもそも同じ部分を読んでるはずなのに更新するたびエラーが出たり出なかったりするのが自分の理解の範疇を超えていて困り果ててます。
とりあえずcookieとかセッションとかチェックしてみます。
0721nobodyさん2006/09/28(木) 21:13:24ID:???
>>719
case〜breakの中にfor構文は書けるが
caseを包括するようなforなんてのは書けないよ。
switch〜caseの構文を完全に壊してる。

そんな感じでやるならこうだろ。
for ($a = 0; $a < 24; $a++){
switch ($Time) {
case $a:
print "<P>".$a."</P>\n";
break;
}
}
0722nobodyさん2006/09/28(木) 21:28:34ID:???
>>717
htaccessの設定は下位ディレクトリにも影響するよ
07237052006/09/28(木) 21:59:34ID:???
上位には影響しませんよね?
あるディレクトリから別ディレクトリにリンクで飛ばしたとき適応されるのは飛ばした先のですよね?
ちなみに掲示板のほうもおかしな挙動を始めてしまいました。
能で文字化けし、セッションも働いてないようです。
もうダメだ…。頭を冷やして出直します。ってゆーか逃げたいです。
webプログラミングってプログラムじゃないところが難しすぎますね。
みなさんありがとうございました。
0724nobodyさん2006/09/28(木) 22:43:56ID:???
>>723
能が文字化けする理由もわからんのにSJIS使ってるのか?
てかWebプログラミングはプログラムじゃないのか、へー。
0725nobodyさん2006/09/29(金) 00:26:24ID:???
>>724
お前は日本語読めなさ杉
0726nobodyさん2006/09/29(金) 00:28:08ID:???
>>724
揚げ足取るならせめてちゃんと読もうよ。
「プログラミング以外のところが難しすぎる」からどうやったらそう読めるのか…。
「能」の文字化け問題については同意だが…。
0727nobodyさん2006/09/29(金) 00:43:14ID:???
>>724
「webプログラミングってプログラムじゃないところが難しすぎますね。」
は>>724と同じ意味と受け取っていた、曖昧な表現にも問題があるかと・・。

「PHPってプログラムじゃなくてスクリプトでしょ」って俺もjava野郎に言われた事があって、ちょっと被害妄想も入ってるがw
0728nobodyさん2006/09/29(金) 00:48:10ID:???
最初っから悪意を持って読んでるとしか思えんよw
0729nobodyさん2006/09/29(金) 01:10:16ID:???
まぁ、社会に出ると色んな捉え方をする人がいるので悪い方向の幅は狭くしたほうがいいかもしれんがな。
そもそも2chは悪意ある発言と思っても間違いではない空間だと思うが。
0730nobodyさん2006/09/29(金) 01:35:16ID:???
>>727
java野郎がphp野郎より優れてるとは一概に言えないけど、
javaがある程度できる人とphpがある程度できる人(でもphpしかできない人)って、やっぱ「プログラマ」としての差があるのは否めない。

わりと適当に書いても動いちゃうからかな。
0731nobodyさん2006/09/29(金) 02:13:13ID:CHXTDEUo
PHP5で「abstract function foo();」という行があると、pear pacakgeをつくるときにエラーになります。

$ pear package
Analyzing Foo/Bar.php
Error: Parser error: invalid PHP found in file "./Foo/Bar.php"

これを「function foo() {}」に変更したら、パッケージが作成できました。
これってpearのバグでしょうか。それともabstractは使うなということ?
どなたかアドバイスお願いします。

PHP 5.1.4, PEAR 1.4.9
0732nobodyさん2006/09/29(金) 02:20:49ID:???
>>730
まー、PHP「しかできない」のはちょっとどうかと思うよな。
07337312006/09/29(金) 02:31:17ID:???
もうひとつ質問です。
package.xmlで指定するバージョン番号が1より大きいときもエラーになって、
「その場合は<extends>タグを使え」とエラーメッセージに出てくるのですが、
pearのマニュアルを読んでも該当するタグが見つかりません。
エラーメッセージはこんな感じです。
Channel validator error: field "version" - major versions greater than 1 are not allowed for packages without an <extends> tag or an identical postfix (foo2 v2.0.0)
だれか<extends>タグの使い方教えてください。

0734nobodyさん2006/09/29(金) 07:11:29ID:???
>>731
うーん
PHPでabstractが使えると思った理由は何でしょうか
0735nobodyさん2006/09/29(金) 07:17:52ID:???
>>734
ttp://www.php.net/manual/ja/language.oop5.abstract.php
0736nobodyさん2006/09/29(金) 08:24:54ID:hGRz7bVi
MSSQLとMySQLのデータベースのバックアップをとる方法はありますか?
また、そのインポート方法はありますか?

よろしくお願いします。
0737nobodyさん2006/09/29(金) 08:34:31ID:???
>>736
各DBのマニュアルちゃんと読みなよ。
バックアップのとりかたなんて詳しく書いてるんだから。
0738nobodyさん2006/09/29(金) 08:57:23ID:hGRz7bVi
>>737
すいません、php質問スレなのでphpって明記しておくのを忘れてました

PHPを使ってバックアップ、インポートがしたいのですが・・・
その方法が各DBのマニュアルに載っているのであれば失礼
0739nobodyさん2006/09/29(金) 10:08:17ID:???
727
>「PHPってプログラムじゃなくてスクリプトでしょ」って俺もjava野郎に言われた事があって
へぇ〜
スクリプトはプログラムじゃないのか?
ネイティブなCPUコードに落ちていないという意味ではjavaも
中途半端じゃん。
正直、言語の優越はあんまり興味ないな。そんなの切り口で
いくらでも評価変わってくるしさ。好きな言語使えばいいじゃん。
一番影響するのは、個人スキルの優越だしな。
チラ裏だが、
俺的には、Webプログラムで飯食ってるやつが
XSS、CSRFとか知らないっていうのは恥ずかしいと思う。
1言語しか知らないやつが言語の優劣語るのは恥ずかしいと思う。
まぁ、そういうやつに限って優越語りたがるんだがな。
0740nobodyさん2006/09/29(金) 11:41:00ID:???
>>736
お前の質問は、
「八百屋さんに野菜が売っていますか?」
と言ってるようなものだ。

その質問への答えは、「はい」で終わり。
0741nobodyさん2006/09/29(金) 13:43:57ID:???
DB::〜〜
みたいに、変数宣言せずにクラスを使うようにするにはどうすればいいの?
一回しか使わないのに毎回変数に入れるのまんどくさい(´Д`)
0742nobodyさん2006/09/29(金) 13:54:40ID:???
static
0743nobodyさん2006/09/29(金) 14:02:15ID:???
ソース見ると大抵インスタンス使わずにコールされてるようだけど、staticに使うのが一般的なの?
0744nobodyさん2006/09/29(金) 14:04:37ID:???
んなもんケースバイケースだよ
0745nobodyさん2006/09/29(金) 15:35:18ID:???
>>743
なぜstaticなのか? を調べろ。
0746nobodyさん2006/09/29(金) 17:20:17ID:hGRz7bVi
>>740
そうですね、失礼しました。

その方法をお願いします
0747nobodyさん2006/09/29(金) 17:22:27ID:???
>>746
mysql バックアップ
でググってみてはどうでしょうか。
その後、その方法をPHPで実行する方法を考えましょう。
0748nobodyさん2006/09/29(金) 17:23:13ID:???
>>746
>>738は言っただけなのか?
0749nobodyさん2006/09/29(金) 18:14:10ID:ejiIN4Ag
empty($_FILES["hoge"])
はtrue返すしvar_dumpで見てもnameやsizeも入ってるのに
is_uploaded_file($_FILES["hoge"])
はfalse返ってきます・・・

php.iniですが
file_uploads = on
;upload_tmp_dir = c:\windows\temp
upload_max_filesize = 5M

upload_tmp_dirはコメントアウトしてるので、winsows2003の場合"C:\WINDOWS\Temp"に
入ってるはずが・・・

どこか考え間違いでもしてるんでしょうか凹○
0750nobodyさん2006/09/29(金) 18:17:18ID:???
is_uploaded_fileの引数が間違ってる
0751nobodyさん2006/09/29(金) 18:33:29ID:???
お!
と思いきや$_FILES["hoge"]["tmp_name"]に直しても駄目でした・・・
■ このスレッドは過去ログ倉庫に格納されています