【PHP】質問スレッドpart33【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/16(木) 03:19:52ID:xwXojaq/【基本ルール】
・新規質問の方は上げてください。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辺り
0002nobodyさん
2006/02/16(木) 03:20:44ID:xwXojaq/【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
【PHP】質問スレッドpart31【php】
http://pc8.2ch.net/test/read.cgi/php/1133017632/
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/
関連リンク
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
0003nobodyさん
2006/02/16(木) 03:22:12ID:YjyBJiPI【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
[PHP-users MLヲチ8]巣もいませんでした。
http://pc8.2ch.net/test/read.cgi/php/1132800251/
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/(落ち)
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/
関連板
データベース(SQL、DBMSの話題はこちら)
http://pc8.2ch.net/db/
プログラム(CLI、アルゴリズム、インタプリタの話題はおそらくこちら)
http://pc8.2ch.net/tech/
Web制作(クライアントサイドの話題は問答無用でこちら)
http://pc8.2ch.net/hp/
0004nobodyさん
2006/02/16(木) 03:22:39ID:xwXojaq/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. クッキーの情報をユーザから隠したい
→ セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
0005nobodyさん
2006/02/16(木) 03:23:13ID:YjyBJiPI1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」なんて痛い質問するな。つーかカエレ。
00061
2006/02/16(木) 03:27:12ID:YjyBJiPI0007nobodyさん
2006/02/16(木) 03:34:43ID:YjyBJiPIPHPの質問スレ、及びPHPのクダ質問スレのFAQをまとめるサイト
http://wiki.2chx.net/php/ (育成中。まだまだこれから)
0008nobodyさん
2006/02/16(木) 10:07:02ID:???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する場合はどのようにすればいいのでしょうか?
0009nobodyさん
2006/02/16(木) 11:41:53ID:???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));
に書き換え
で、どうかな?
0010nobodyさん
2006/02/16(木) 11:50:21ID:i4nUjG/9imap_xxx関数使ってPOP3でメール受信をしようとしてるのですが
so-netのメールだけ受信できません。
imap_openでエラー(Couldn't open stream)になります。
もちろん通常のメーラではそのアカウントで受信できますし
PHPでも他に@niftyや自分で立てているメールサーバからは
受信できました。
パケットを調べたところ
CAPAコマンドを送ったあとにso-netのサーバから
「PIPELINING TOP UIDL APOP」を受信したあと
なぜかQUITを送ってしまいます。
どなたか分かるかたはいらっしゃいましたら
お願いします。
0011nobodyさん
2006/02/16(木) 14:49:39ID:???0012nobodyさん
2006/02/16(木) 15:13:35ID:???まああの会社だとまともな回答は期待でき無そうだが…。
0013nobodyさん
2006/02/16(木) 15:45:08ID:???0014nobodyさん
2006/02/16(木) 15:54:04ID:???PDAでも接続できないケースが報告されてるよ。
so-netのFAQにPocketPC向けのメーラー設定方法とか記載されてるけど
その辺は参考にならんのかな。
001510
2006/02/16(木) 16:30:00ID:???他に成功しているサーバとの違いは
POP3の「CAPA」コマンドに対してso-netからの応答に
「USER」が含まれてないようです。
これが悪いことなのかは分かりませんが
そのせいでimap_openが次のコマンド(USER)を投げることを
あきらめているような気がします。
Outlookから接続した際のパケットを見ると
「CAPA」コマンドは投げずに「USER」コマンドを投げてるので
imap_openでも同じようにできれば接続できそうな気もしますが
方法が分かりません。
とりあえず暇を見て
so-netに問い合わせてみようと思います。
0016nobodyさん
2006/02/16(木) 18:00:08ID:???so-netのPOPと思われるサーバ叩いてみたけど
CAPAコマンドに対してはUSER/PASSコマンドで認証が済んでからしか、
レスポンスを返さないようにみえるよ。
でも認証が済んでから、その後にUSER/PASSコマンドは発行しないから
本来CAPAに対してUSER capabilityが返えされるべきであっても
それが返答なくても関係なく動作は出来るんじゃないかなと思わなくもない。
厳密に動作してQUITしてるとしても責められはしないが。
ただソース見てみたけど、imap_open()での実際の処理は
完全にc-clientライブラリにお任せな感じなので、
IMAP関数を使う限り、どうにかできるものではなさそう。
PEARのメール関数を使った方が、クライアント側で対処するなら
自由度が高いと思う。
001716
2006/02/16(木) 18:30:05ID:???で、PEARのMail_IMAPクラスは結局imap_open()使うので一緒だった。
0018nobodyさん
2006/02/16(木) 19:36:05ID:???ありがとうございます。
お陰様で出来たのですが、いざ組み込む時にずっと考えているのですが、どうしても先に進まなくなってしまいました。
<?
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));
?>
0019続きです。
2006/02/16(木) 19:36:39ID:xEsbRgL0その絶対値を$zとしたのですが、この$zが一番少ない組み合わせを出したいのです。(はじめに出てくるのがいいのです。)
上の場合だと、$zが50の時一番少ないのですが、組み合わせを書き出した時、上から3つ目ではじめに50と出ているので
「1000 1500 1300 1600」
という組み合わせを結果としてだしたいのです。
$zの値が入っている配列を作る事が出来れば、出来るだろうと思い、
新たな配列変数を作って、forループで毎回の$zの値を代入していこうとは思ったのですが、どうも上手く動作せず悩んでいます。
分り難い&何度も質問してしまい申し訳無いのですが宜しくお願い致します。
0020nobodyさん
2006/02/16(木) 20:04:28ID:???本家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";
}
0021nobodyさん
2006/02/16(木) 21:12:58ID:???0022nobodyさん
2006/02/16(木) 21:20:01ID:???どちらがサーバーに負担が掛かるものなのでしょうか。
0024nobodyさん
2006/02/16(木) 21:36:37ID:???1000回くらい回すコード書いて、時間計ってみたら?
上書きといっても、内容全部消した場合と追記した場合で違うだろうし。
レポキボン
0026nobodyさん
2006/02/16(木) 22:16:36ID:VwfjUIGO>>24
ありがとうございます。
ほとんどphpの知識がないものでレポはできなくて申し訳ないですが、
上書きに変更した途端鯖堕ちしたので、自分のせいかとあせりました。
今は問題なく稼動してるので大丈夫そうです。
0027nobodyさん
2006/02/17(金) 01:54:56ID:qKPXZPko問題なく動作するのでしょうか。
(レス違いでしたら誘導お願いします)
0028nobodyさん
2006/02/17(金) 02:23:12ID:???0029nobodyさん
2006/02/17(金) 03:43:23ID:eyDUdvZm問題なく実行させるいい方法はないでしょうか
phpのブログとかでテンプレに変数を直接書き込まれているのを見たのですが
自分がやってみるとエラーが出てしまうんです
0030nobodyさん
2006/02/17(金) 03:49:47ID:???一体何のテンプレートなのか、
どのようなコードなのか
具体的に書いてくれないと全く見当が付きません。
ttp://php.net/manual/の言語リファレンス(10-21章)を一通り読んでください
0033nobodyさん
2006/02/17(金) 10:08:44ID:???勝手にエスパー補足してみよう。
最終的な出力結果を
$body
かなんか、適当な変数に入れて出力している。
$body=fread('template.php');
で取り込むとして
template.phpの中身が
<html>
<head>
<title>$site_title</title>
</head>
<body>
</body>
</html>
とかだったりすると
<title>$title_title</title>
がそのまま出力されて困る。
という趣旨の質問ではないかと思う。
003418
2006/02/17(金) 12:40:07ID:qUshKop+宿題では無くて、自作のコードに必要なのですがどうしても出来なくて悩んでいたのですが
取りあえず、出力結果を別のテキストファイルに保存し、別にそのテキストファイルを読み込んで配列に格納するという
事でやっと出来ましたorz
アドバイス及び、コードを教えて下さった方々本当にありがとうございました。
0035nobodyさん
2006/02/17(金) 14:55:08ID:eyDUdvZm以下がソースです
01.phpの中身↓
<?php
$aaa = "正常に動作しました";
include "a.txt";
?>
a.txtの中身↓
$aaa
>>31
上記のようにしてみましたがうまく行きませんでした
>>33
まさにその通りなんです。説明が下手でしみません
うまく行かないということは記述が間違っているということなんですが
どこがどう間違ってるかわからないんです
0036nobodyさん
2006/02/17(金) 15:34:53ID:???スマートな方法がなかなか思い浮かばずに悩んでいます。
/~aaaa/bbb/ccc.html
/~aaaa/ddd/e.html
/~aaaa/f.html
/~aaaa/g.jpeg
上記のような形式のログが一行ごとに並んでいまして、「/~X/」のXに該当する部分だけを取り出そうと考えています。
そこで最初の/~は正規表現でnullに置き換えましたが/以降をどう処理するかで困っています。
宜しければお知恵をお貸し下さい。
003736
2006/02/17(金) 15:41:07ID:???>>35
a.txtがtxtファイルだから直に出力されてるんじゃないでしょうか?
変数として動かしたいのであれば<? ?>を書いてphpとして処理させないと変数としては取り扱ってもらえないと思います。
0039nobodyさん
2006/02/17(金) 15:51:47ID:???$path = "/~aaaa/bbb/ccc.html";
preg_match("|/~([^/]+)|", $path, $match);
$user_dir = $match[1];
0040nobodyさん
2006/02/17(金) 16:07:05ID:EA7FpTYephpをやりたいのですが、
(1)
phpが始めからインストールされているそうなのですが、
どうやったら使えるようになるのでしょうか。
(2)
phpはどうやって勉強したらいいのでしょうか?
0041nobodyさん
2006/02/17(金) 16:13:06ID:???1. httpd.confの設定をするだけで使える事は使える。
2. ドキュメント。サンプルを見ながらでも結構勉強できる。
004240
2006/02/17(金) 16:22:16ID:???ありがとうございます!!
俺様のスキルならphpの習得も早そうなので
アドバイス通りのことをやってみます。
ここはunixのスキルアップに役に立つスレなのでまた来ますね。
0044nobodyさん
2006/02/17(金) 17:37:59ID:???それをphpが動いていない環境でブラウザ(IE)で開くと、
<?php なんたら ?> の部分が見事コメントアウトされて、
phpコードが表示されずにいい感じに表示されるんだが、
<?php $obj->method(); ?> というコードを入れると、->の部分で終わりとみなされて、
phpが動いていない環境でブラウザで開くと、 method(); ?> が表示されてしまう。
お客さんが直接ローカルでIEでみたり、HTMLエディタで編集させようというときに困るかなぁと。
まあ、ブラウザの仕様にもよるんだろうけど、オブジェクトのメソッドは
必ず呼ぶものとして、なんかいい方法無い?
0046nobodyさん
2006/02/17(金) 17:50:01ID:???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');
?>
0047nobodyさん
2006/02/17(金) 17:56:40ID:???header("Refresh: 0; URL=".$jump);
これでドコモはいけるんだけど、AUでいけないんです。
メタで飛ばすのもAUは無理です。
AUでなんとかリファラ消して飛ばせませんか?
004836
2006/02/17(金) 17:58:44ID:???0050nobodyさん
2006/02/17(金) 18:02:25ID:???ちなみに先ほどの正規表現で無事解決できました・・・�dクスでした。
今度はログが大きすぎてタイムアウトして・・・もごもご・・・あ、スミマセンチラシの裏に書いときます
それにしてもログファイルて小まめに整理しないと後で酷い目にあうねorz
0051nobodyさん
2006/02/17(金) 18:07:22ID:???なんかすごい間違った使い方してる気がするんだが…
お客さんにはindex.tplを編集してもらえばいいんでない?
***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
すっきりする希ガス
知ってると思うがテンプレートファイルから別のテンプレートをインクルード
もできるから、テンプレート使ってサイト全体のデザインと部品コンテンツ
分けて作成できるよ。
0052nobodyさん
2006/02/17(金) 18:41:05ID:???> なんかすごい間違った使い方してる気がするんだが…
うん。自分でもそう思っている。
SEO的なところからindex.php?main 見たいにサイト全体を一つのphpで処理したくないんだよね。
(だから実際にはphpファイルでも拡張子htmlで動くようにしています。)
mod_rewriteはなんか複雑だし、レンタルサーバーによっては入ってなさそうだし。
そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?
> ***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
> すっきりする希ガス
いま一応そうしているんだけど、将来、俺はシステム面だけ作りたいし、デザイン方面は
デザイナーに任せたいし、中身はお客さんでも修正できるようにしたいし。どうしたもんかなぁ。
別にSmartyは使わないは使わないでもいいんだけど、この話は横道。
本来の解決したい問題はこっち→>>44 。
005451
2006/02/17(金) 20:14:04ID:???>そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?
んー
なんとなく言わんとすることはわかるが…
そういうもんだと割りきってしまってるからなぁ…
そもそもテンプレートエンジンって1ページ表示の際のロジックをPHPで、
画面構成をテンプレートで、と分けるのが目的だしね。
若干苦しいが、独自でHTML中に埋め込まれる変数をトークンに対応付けておいて、
サーバに配置する際には必ずsedとかでトークン→PHP変数の置換を行う、とか…
0055nobodyさん
2006/02/17(金) 21:42:19ID:+wY6r5/H<!-- <?php echo ' --' , '>'; $obj->method(); echo '<', '!--'; ?> -->
0056nobodyさん
2006/02/17(金) 21:49:25ID:???0058nobodyさん
2006/02/17(金) 23:10:04ID:???$dirName = $_POST['dirName'];
$lastNum = $_POST['lastNum'];
$fileName = "$dirName/$lastNum.dat.gz";
$fileName2 = d."$fileName";
$ret = copy($fileName,$fileName2);
unlink ($fileName);
今あるファイル名の先頭に「d」とつけたいのですが
上記のようなコードを書いても期待通りに動きません。
ファイル名、ディレクトリ名は外部からPOSTしています。
アドバイスをよろしくお願いします。
0060nobodyさん
2006/02/17(金) 23:28:22ID:???01.phpの中身をこうしてみ
<?php
$aaa = "正常に動作しました";
echo preg_replace('/(\$)(\w+)/e', '$GLOBALS[$2]', file_get_contents("a.txt"));
?>
0061nobodyさん
2006/02/17(金) 23:29:18ID:???> $fileName2 = d."$fileName";
↓
$fileName2 = "d$fileName";
0062nobodyさん
2006/02/17(金) 23:49:42ID:???>>61
ありがとうございます!
うまく動作しました。
renameのほうが鯖負担は少なそうですね。
いまだにphpのストリングス結合の法則が分からん・・
0064nobodyさん
2006/02/18(土) 00:41:09ID:???0067nobodyさん
2006/02/18(土) 11:43:18ID:???3文字ずつ分割して配列にする方法を教えてください。
[0] => abc
[1] => def
[2] => ghi
[3] => jkl
0068nobodyさん
2006/02/18(土) 12:04:50ID:???これぐらいしか思いつかん、スマン
for ($n = 0; $n < strlen ($a)/3; $n++)
$b[$n] = substr ($a, $n*3, 3);
0069nobodyさん
2006/02/18(土) 12:31:35ID:???$a='abcdefghijklmn';
$b=preg_split('/(.{1,3})/', $a, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($b);
0070nobodyさん
2006/02/18(土) 12:38:40ID:???php5なら
$str = "abcdefghijkl";
$arr = str_split($str, 3);
0071nobodyさん
2006/02/18(土) 15:39:50ID:???0072nobodyさん
2006/02/18(土) 17:13:25ID:???0073nobodyさん
2006/02/18(土) 17:21:20ID:???$abc = qq(<A href="a">).$def.qq(</A>);
みたいなことしたいんですけど、ヒアドキュメントだと
見づらくなっちゃうので、すっきりかける方法がないかな〜と。
0074nobodyさん
2006/02/18(土) 17:47:49ID:???俺は知らないなぁ。
"(<A href=\"a\">)$def(</A>)";
とやるか
"(<A href='a'>)$def(</A>)";
とやるな。
0075nobodyさん
2006/02/18(土) 17:54:29ID:???つか、普通にシングルクォートで括れば?
$abc = '<a href="a">' . $def . '</a>' ; (いまさら大文字は無いだろ…)
0076nobodyさん
2006/02/18(土) 18:20:45ID:???\"にしろ . での連結にしろ煩わしいし見づらいし間違っても気づきにくいし。
俺はヒアドキュメント使っちゃう派。
0079nobodyさん
2006/02/19(日) 01:44:34ID:???いやあperlほど不便なものはない。。
0080nobodyさん
2006/02/19(日) 02:17:35ID:???0082nobodyさん
2006/02/19(日) 03:06:31ID:???0083nobodyさん
2006/02/19(日) 04:24:56ID:SHjAEm2nprint"<img src="sky.jpg" width="" height="" alt="">";
↑この文章のところでエラーになってしまうんですが
なにかいい方法ないですか?
0085nobodyさん
2006/02/19(日) 04:46:34ID:???こうしろ
?>
<img src="sky.jpg" width="" height="" alt="">
<?php
0086nobodyさん
2006/02/19(日) 08:48:59ID:???0087nobodyさん
2006/02/19(日) 14:18:30ID:???0088nobodyさん
2006/02/19(日) 15:06:13ID:???釣りにマジレス
しなくても
0089nobodyさん
2006/02/19(日) 15:56:15ID:???0090nobodyさん
2006/02/19(日) 17:05:40ID:???現在この様な形式でJSTでログに記録しています。
これをGMTで
Sun, 19 Feb 2006 00:00:00 GMT
と変換したいのですが簡単な方法ありませんでしょうか。
こんな事なら最初からunixtimeでログとっておけば簡単だったのに・・・
0091nobodyさん
2006/02/19(日) 18:14:30ID:???MovableTypeに以下のスクリプトでtrackbackを送ると
「1 送信元の URL (url) が必要です。」
と帰ってくるのですが、仕様書の記載ではこれでよいはずなのです。
どなたか原因を教えていただけませんでしょうか。
<?php
$url='www.hogehoge.com';
$fp = fsockopen($url,80,$errno, $errstr, 30);
if(!$fp){echo "$errstr($errno)";}
$ping="POST http://www.hogehoge.com/tb.cgi\r\n";
$ping .= "User-Agent:BlogTool\r\n";
$ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="title=Foo+Bar&url=http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo";
fwrite($fp,$ping);
$response = "";
while (!feof($fp)) {
$response .= fgets($fp, 4096);
}
fclose($fp);
echo $response;
?>
0092nobodyさん
2006/02/19(日) 18:22:59ID:???そうやって見つけた仕様書では、
パラメータとして title, excerpt, url, blog_nameを使う事ができ、 url だけが必須、とあった。
0093nobodyさん
2006/02/19(日) 18:33:27ID:???なのにurlencodeされていないのは気にしなくてもいい?
009491
2006/02/19(日) 18:34:03ID:???お手数おかけします。
(トラックバック技術仕様書 http://lowlife.jp/yasusii/stories/8.html
$pingの最終行にurlを指定しているのですが
これが仮に送信されていないのであれば
phpの書き方に問題があるのではないかと思ったのです。
0095nobodyさん
2006/02/19(日) 18:44:22ID:???じゃあ、これならOK?
if(条件) {
?><img src="sky.jpg" width="" height="" alt=""><?php
}
0096nobodyさん
2006/02/19(日) 18:50:05ID:???仕様書も読まないで想像で回答しちゃうけど、
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";
でいけねー?
009890
2006/02/19(日) 22:37:05ID:???ありがとうございました。解決できました。
2006/02/19(Sun) 00:00:00 で (Sun) とかが入っていても見事に変換できるのですね
009991
2006/02/20(月) 00:36:09ID:???空行を入れる
のいずれも駄目でした…。
思いついてUTF-8に変換してみたりもしたのですが
やはり同じ症状です。
はてさて…
0100nobodyさん
2006/02/20(月) 04:23:54ID:???多分今回の問題とは直接は関係ないと思うが
> $ping="POST http://www.hogehoge.com/tb.cgi\r\n";
> $ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";
は
$ping="POST http://www.hogehoge.com/tb.cgi/1\r\n";
$ping .= "Host: http://www.hogehoge2.com/\r\n";
だと思う。
0101nobodyさん
2006/02/20(月) 07:53:04ID:???■ このスレッドは過去ログ倉庫に格納されています