私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 129
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>900
その書き込みtwitterでみたよ。
その書き込みtwitterでみたよ。
質問です。(phpは初心者です)
1つのwebページ(Aとする)内で、
8つの異なるページ(Aとは別ドメイン)から
スクレイピングしたいのですが、どうやるのかわかりません。
8つともタグの構造は全く同じなので、全く同じ処理をしたいのですが、
file_get_contentsではなく、Curlでしょうか。
このページの内容だと具体的にどう記述していいのかわからなかったです・・。
http://nanoappli.com/blog/archives/5743
・行ってみたこと
file_get_contentsで8回処理を書いた
→見た目は思い道りにできたがページの表示が重すぎる
宜しくお願いいたします。
【PHPのバージョン】5.3
1つのwebページ(Aとする)内で、
8つの異なるページ(Aとは別ドメイン)から
スクレイピングしたいのですが、どうやるのかわかりません。
8つともタグの構造は全く同じなので、全く同じ処理をしたいのですが、
file_get_contentsではなく、Curlでしょうか。
このページの内容だと具体的にどう記述していいのかわからなかったです・・。
http://nanoappli.com/blog/archives/5743
・行ってみたこと
file_get_contentsで8回処理を書いた
→見た目は思い道りにできたがページの表示が重すぎる
宜しくお願いいたします。
【PHPのバージョン】5.3
>> 895
「ブラウザに普通に返すレスポンス」のことを話してるのに「ベンチマーク」がどうして必要なの?
そりゃ何百万バイトもmb_convert_encoding関数にかけてたら時間はかかるでしょ。
<?php
set_time_limit(0);
$time = 0.0;
for ($i = 0; $i < 10000; $i++) {
$t1 = microtime(true);
$tmp = mb_convert_encoding($str, 'SJIS-win', 'UTF-8');
$t2 = microtime(true);
$time += $t2 - $t1;
unset($t1, $tmp, $t2);
}
printf("10000回での算出平均: %f sec", $time / 10000);
?>
「ブラウザに普通に返すレスポンス」のことを話してるのに「ベンチマーク」がどうして必要なの?
そりゃ何百万バイトもmb_convert_encoding関数にかけてたら時間はかかるでしょ。
<?php
set_time_limit(0);
$time = 0.0;
for ($i = 0; $i < 10000; $i++) {
$t1 = microtime(true);
$tmp = mb_convert_encoding($str, 'SJIS-win', 'UTF-8');
$t2 = microtime(true);
$time += $t2 - $t1;
unset($t1, $tmp, $t2);
}
printf("10000回での算出平均: %f sec", $time / 10000);
?>
>>895
続き。
$strはこのスレの記事を全表示したときのHTMLな。
これをCorei7のローカルマシン上のPHP5.4で走らせたら 0.003398 sec だった。
ideoneとかcodepadではページ量的な問題で出来なかったので割愛。
この 0.003398 秒のために頑張る気になれる?
ちなみにUTF-8で一貫してWebアプリケーションを作成して、ガラケーなどの端末向けに
<?php ob_start() ?>
....
....
<?php
echo auガラケー ? mb_convert_encoding(ob_get_clean(), 'SJIS-win', 'UTF-8') : ob_get_clean();
ってやるのが一般的な手法。
実際はフレームワーク任せだと思うけどやってることはこういうイメージ。
逆にエンコーディング変換にコストがかかるとかいってそれぞれロジックを組む方がバカバカしいと思わない?
str_replaceやexplodeなどメジャーな関数を全部鬼車系の正規表現関数に書き換えなければならないってことになるよ。
続き。
$strはこのスレの記事を全表示したときのHTMLな。
これをCorei7のローカルマシン上のPHP5.4で走らせたら 0.003398 sec だった。
ideoneとかcodepadではページ量的な問題で出来なかったので割愛。
この 0.003398 秒のために頑張る気になれる?
ちなみにUTF-8で一貫してWebアプリケーションを作成して、ガラケーなどの端末向けに
<?php ob_start() ?>
....
....
<?php
echo auガラケー ? mb_convert_encoding(ob_get_clean(), 'SJIS-win', 'UTF-8') : ob_get_clean();
ってやるのが一般的な手法。
実際はフレームワーク任せだと思うけどやってることはこういうイメージ。
逆にエンコーディング変換にコストがかかるとかいってそれぞれロジックを組む方がバカバカしいと思わない?
str_replaceやexplodeなどメジャーな関数を全部鬼車系の正規表現関数に書き換えなければならないってことになるよ。
>>914
頼むからグローバル変数使うのだけはやめてお願い・・・
個人的にはシングルトンにすればいいかなーと思う。
class Hoge {
____
____private static $instance;
____private $pdo;
____
____public static function getInstance() {
________if (self::$instance === null) {
____________self::$instance = new self;
________}
________return self::$instance;
____}
____
____private function __construct() {
________$this->pdo = new PDO(~);
____}
____
}
$hoge1 = Hoge::getInstance();
$hoge2 = Hoge::getInstance();
// ↑この2つは完全に同じものを指していることになる
コンストラクタをprivateにしてもクラス内からの呼び出しならば動くってこと意外と知らない人いたり。
頼むからグローバル変数使うのだけはやめてお願い・・・
個人的にはシングルトンにすればいいかなーと思う。
class Hoge {
____
____private static $instance;
____private $pdo;
____
____public static function getInstance() {
________if (self::$instance === null) {
____________self::$instance = new self;
________}
________return self::$instance;
____}
____
____private function __construct() {
________$this->pdo = new PDO(~);
____}
____
}
$hoge1 = Hoge::getInstance();
$hoge2 = Hoge::getInstance();
// ↑この2つは完全に同じものを指していることになる
コンストラクタをprivateにしてもクラス内からの呼び出しならば動くってこと意外と知らない人いたり。
>>914までたどりついてSingleton思い浮かばないようならデザパタ入門コースだな
>>924
3行で出力まですればいいの?
foreach ($ary=array("○", "○", "○", "△", "△", "×") as $val1) foreach ($ary as $val2) $a[$x=$val1>$val2?$val1.$val2:$val2.$val1] = isset($a[$x]) ? ++$a[$x] : 1;
arsort($a);
print_r($a);
3行で出力まですればいいの?
foreach ($ary=array("○", "○", "○", "△", "△", "×") as $val1) foreach ($ary as $val2) $a[$x=$val1>$val2?$val1.$val2:$val2.$val1] = isset($a[$x]) ? ++$a[$x] : 1;
arsort($a);
print_r($a);
>>926をもっと短く書いたコードください
foreach ($a=@[○,○,○,△,△,×]as$v)foreach($a as$k) $a[$x=$v>$k?$v.$k:$k.$v]=isset($a[$x])?++$a[$x]:1;arsort($a);print_r($a);
他の言語からPHPやったらどうしたらいいかわからないケースでも
逆はその言語知ってる人にとっては回りくどいし汚くみえるけど対応可能
C言語の流れを汲んでてよかったね
逆はその言語知ってる人にとっては回りくどいし汚くみえるけど対応可能
C言語の流れを汲んでてよかったね
>>917
こんなインスタンスを1つしか作らせない技があったんですね。
これなら異なるクラス間でPDOのインスタンスを共有できますね。
使わせていただきます、ありがとうございました。
#ついでで失礼ですが、こういったテクニック・パターンが学べる
サイトや書籍で何かオススメがあったら教えてください
こんなインスタンスを1つしか作らせない技があったんですね。
これなら異なるクラス間でPDOのインスタンスを共有できますね。
使わせていただきます、ありがとうございました。
#ついでで失礼ですが、こういったテクニック・パターンが学べる
サイトや書籍で何かオススメがあったら教えてください
google開きます
もっと見るおして書籍選びます
デザインパターン GoF
って入れてみます
もっと見るおして書籍選びます
デザインパターン GoF
って入れてみます
>>934
これとは関係ない例だけど、PDOを扱うなら是非見ていただきたいものがあるのでリンク貼っときます。
飽きるぐらい貼りまくったけど自重しませんw
http://qiita.com/mpyw/items/b00b72c5c95aac573b71
>>912に個人特定されてるからもう何も気にしなくていいやw
これとは関係ない例だけど、PDOを扱うなら是非見ていただきたいものがあるのでリンク貼っときます。
飽きるぐらい貼りまくったけど自重しませんw
http://qiita.com/mpyw/items/b00b72c5c95aac573b71
>>912に個人特定されてるからもう何も気にしなくていいやw
【OS名】リナックス
【PHPのバージョン】5.3
【連携ソフトウェア】SqLite
$sql = "SELECT * FROM Review WHERE EXISTS (SELECT * FROM Review WHERE Number = ? AND IP = ?)";
$query = $dbh->prepare($sql);
$query->execute(array($Number,$IP));
$res = $query->fetchAll(PDO::FETCH_ASSOC);
IPとNumberがDBに入ってなかった場合にFALSEを返して貰いたいのですが、
Fatal error: Call to a member function fetchAll() on a non-object in
のエラーが出てしまいます。
どこが駄目なのでしょうか?
【PHPのバージョン】5.3
【連携ソフトウェア】SqLite
$sql = "SELECT * FROM Review WHERE EXISTS (SELECT * FROM Review WHERE Number = ? AND IP = ?)";
$query = $dbh->prepare($sql);
$query->execute(array($Number,$IP));
$res = $query->fetchAll(PDO::FETCH_ASSOC);
IPとNumberがDBに入ってなかった場合にFALSEを返して貰いたいのですが、
Fatal error: Call to a member function fetchAll() on a non-object in
のエラーが出てしまいます。
どこが駄目なのでしょうか?
>>947
投稿前にメール欄の確認すらできないヴァカは消えろ
投稿前にメール欄の確認すらできないヴァカは消えろ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 128 (1001) - [98%] - 2013/8/4 14:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 124 (1001) - [98%] - 2013/1/10 6:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 119 (1001) - [98%] - 2012/6/21 11:46
- 【PHP】下らねぇ質問はID出して書き込みやがれ 121 (1001) - [98%] - 2012/8/14 7:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 139 (994) - [98%] - 2015/7/25 21:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 127 (1001) - [98%] - 2013/5/26 14:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 123 (1001) - [98%] - 2012/11/20 5:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 126 (1001) - [98%] - 2013/3/19 13:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 125 (1001) - [98%] - 2013/2/4 13:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 120 (1001) - [98%] - 2012/7/25 6:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 109 (1001) - [98%] - 2011/8/30 2:02
- 【PHP】下らねぇ質問はID出して書き込みやがれ 110 (1001) - [96%] - 2011/9/29 22:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 117 (1001) - [96%] - 2012/4/23 19:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 104 (1001) - [96%] - 2011/3/18 9:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 103 (1001) - [96%] - 2011/2/14 19:50
- 【PHP】下らねぇ質問はID出して書き込みやがれ 132 (1000) - [96%] - 2014/6/18 20:58
- 【PHP】下らねぇ質問はID出して書き込みやがれ 131 (1001) - [96%] - 2014/1/19 21:30
トップメニューへ / →のくす牧場書庫について