質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RedPen

RedPen は技術文書に対する簡単なチェックを行うツールです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

516閲覧

文書校正textlint,RedPenをPHPと連携させて使いたい

tiki-

総合スコア18

RedPen

RedPen は技術文書に対する簡単なチェックを行うツールです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/05/05 06:04

編集2019/05/07 11:30

PHPで文書校正をするウェブシステム制作

PHPで文書校正をするウェブシステムを作りたいと思っています。
文書校正に使えるものを探していたらtextlintとRedPenを見つけましたが、これらのものはウェブのシステムとして組み込んで使えますか?
また、他に適したものがあれば教えていただきたいです。

#追記

前提・実現したいこと

PHPの中でtextlintの文章校正をするウェブシステムを作っています。
入力フォームから文章のデータを飛ばして、exec()でコマンドを実行して文章校正をして表示させたい。

発生している問題・エラーメッセージ

チェックしてみましょう実行結果:1 Array ( [0] => [1] => == No rules found, textlint hasn’t done anything == [2] => [3] => Possible reasons: [4] => * Your textlint config file has no rules. [5] => * You have no config file and you aren’t passing rules via command line. [6] => * Your textlint config has a syntax error. [7] => [8] => => How to set up rules? [9] => https://github.com/textlint/textlint/blob/master/docs/configuring.md [10] => )

該当のソースコード

PHP

1<?php 2print 'チェックしてみましょう'; 3$cmd = 'npx textlint docs/sample.txt'; 4echo exec($cmd, $opt, $return_ver); 5echo '実行結果:'.$return_ver; 6print_r($opt); 7 8?>

試したこと

textlintをコマンドラインで実行してみた所、満足ができる範囲の文章校正はすることができました。
今はその実行コマンドをPHPの中に組み込んでいるだけなので、エラーが出てくるのは当たり前だと思いますがそもそもデータをどうやって参照したらいいのか不明。
データの参照が上手くいっていないのかなと思い、調べてみましたがわからず。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/05 06:13

見つけたのでしたら、ドキュメント読んで試してみられては…
tiki-

2019/05/06 09:07

わかりました。一度読んだんですが、連携させるための情報が見当たらなかったので質問させていただきました。もう一度確認してみようと思います。
guest

回答1

0

ベストアンサー

文書校正に使えるものを探していたらtextlintとRedPenを見つけましたが、これらのものはウェブのシステムとして組み込んで使えますか?

技術的にはコマンドラインから実行できるものなので、PHPからexec()shell_exec()で叩いてやれば連携出来るでしょうね。
(もっと簡単に出来るライブラリも存在するかもしれませんが)

投稿2019/05/05 16:48

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiki-

2019/05/06 09:05

回答ありがとうございます。確かにexec()やshell_exec()を使って連携ができそうですね。 ただ、まだまだ勉強不足な所もありイメージはついたんですが、具体的なやり方がさっぱりです(笑)
tanat

2019/05/06 09:19

具体的なやり方まで作る前からイメージ出来る人は既にプロなので、まずは作ってみるのが良いかと思いますよ。 わからない所が具体的にならないと調べる事もできません。 ポイントとしては、分割出来るところは分割して最小限の構成でそれぞれ動くものを作ってみることです。 今回のケースだと、コマンドラインで連携出来る事は分かっている訳なので、 1. 単に手動でコマンドラインから文章を渡して結果を取得し、その使い方を把握する 2. webのフォームから文章を受け取ってexecに渡して結果を受け取る の2点をクリア出来ればあとは普通のwebアプリケーションと同じ作りで作れます。
tiki-

2019/05/06 09:30

確かにそうですね。少しずつ進めながらやってみようと思います! すごくわかりやすいアドバイスありがとうございます。
tiki-

2019/05/07 11:19

1. 単に手動でコマンドラインから文章を渡して結果を取得し、その使い方を把握する まず、textlintを使ってみました。一通り試してみて、満足できる設定での文章校正はコマンドライン上でできるようになりました。 2. webのフォームから文章を受け取ってexecに渡して結果を受け取る これがまだできていない状態です。 まずexecの動きだけで試してみました。コマンドの実行まではできましたが、結果は『No rules found,textlint hasn’t done anything』というエラーで上手く動けていない状態です。 .txtのファイルからどうやって文章のデータをもってくるのか、ルールを書いたデータはどうやって関連づけるのか。謎な部分が少しずつ見えてきました。
tanat

2019/05/07 11:41

進んでる様で良かったです。 課題が具体的になっているのでそれぞれ解決出来そうですね。 今躓いている部分と関係するか分かりませんが、exec()はパス周りで躓きやすいので、PHPから渡すコマンドとその引数のパスは常にフルパスで渡す様にすると失敗が減ります。 どうしても解決出来なければ、 具体的なコードとエラー、考えたアプローチの方向性を整理して質問を新たに立てると的確な回答が得られると思います(整理してる途中で解決することも多いです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問