メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

DOMをPHPで操作できたらいいよね

そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。

PHP標準でHTMLをDOMにできるらしい

今、技術検証中ですが、new DOMDocument()とnew DomXpathを利用することで可能なようです。なんでこれやろうかと思ったかといえば、このブログ、イメージをアイキャッチで設定していなかったので、テーマ変えたら画像出ないんですね。なんで、昔の自分は、既製品より使いやすいオリジナルテーマ作れないくせに作ろうと思ったのか小一時間くらい問い詰めてやりたいですね。

DOMにしたい動機

順番違うよねって感じですが、DOMにしたい動機としては、このN1というテーマの前はアイキャッチ設定せずに、記事内にIMGぶち込んでたんですね。一番最初に入れたIMGをアイキャッチとして使おうねってルールでやってました。なので、アイキャッチに設定されているクラスとの齟齬が起きて、レイアウトが若干?崩れるんですよね。TOPの。なのでIMGタグの1件目を取得して、取得したIMGタグのClass書き換えてやろうと思ったんですね。齟齬をなくすために。

さすがにIMGの1件目は取れましたよ。

functions.phpにとりあえず、IMG取得する正規表現書いて、取得したデータの1件目を貰うというプログラムを書きました。

GISTアップしておきます。

PHPでDOM扱うのはちょっと勉強がいる

私が無知なだけなんですけど、jQueryとかの感覚でやれそうな感じなんだけど、上手く行きませんでした。行ってる人教えてください。とりあえず、DOMDocumentのインスタンス作って、そこに読み込みたいHTMLをloadHTMLして、その結果をDomXpathにぶち込んでqueryで検索してからitemの0番目にアクセスしてDOM引き当てて、removeAttributeした後setAttributeでclass合わせればいいでしょうと思ったんですが、removeAttribute使おうとしたときにcall to a member functionが発生。インスタンス作成の順序も間違っていないはずなのに、エラーが出ました。調べたらPHPのバージョンが古いからじゃねって言ってる人がいた<いってない>ので、5.5から7.2に上げましたが、結果は一緒でした。いや、エラーメッセージが変わるだけでした。こっちもGISTやっときましょう。

くわしいひといたら教えてください。

とりあえず、ひたすらコード書いて、サーバー更新したりして、楽しかった。ぶつくさ言ってないでコード書くのもたまにはいいかもしれませんねぇ。
僕は答えにたどりつけませんでしたが、この記事を読んだ人が辿り着けるかもしれないので、自分が見たものリンク貼っときますね。がんばってくだしあ。

PHPネイティブのDOMによるスクレイピング入門
DOMElement::removeAttribute
DOM, XPathを使ったスクレイピング(HTMLのタグ内容取得)
CentOS7のPHPのバージョンを5.4.xから5.6.x/7.0.x/7.1.xに..

しかし、Qiitaわっかりやすいし見やすいっすねー。


関連記事

コメントをお待ちしております