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

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

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

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

Q&A

1回答

1005閲覧

PHPの中でtextlintの文章校正をするウェブシステムを作りたい。

tiki-

総合スコア18

PHP

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

0グッド

1クリップ

投稿2019/05/07 11:52

前提・実現したいこと

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?>

試したこと

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

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

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

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

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

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

guest

回答1

0

textlintについてはほぼ知りませんが、多分こんな感じのアプローチで解決出来るんじゃないかと思います。

エラーを読んでみると
No rules found, textlint hasn’t done anything
なので、ルールが読み込まれていないことがわかります。

どの様にtextlintの設定を行って、
PHPをどのように実行しているのか不明ですが、
ブラウザからPHPを実行した場合コマンドを叩くのはApacheになり、
.textlintrcがApacheから見たら存在しない様に見えるんじゃないかなと思われます。
が、原因は置いておいて、
大事なのはルールが読み込まれていないという事実です

ルールを明示的に指定出来ればいけるんじゃないかなと言う気がするので、そういったオプションが存在しないか確認します。

readme

を読んでみると、

Use with textlint-rule-no-todo rule. (Allow to short textlint-rule-no-todo to no-todo)

textlint --rule no-todo README.md
???? We recommended using .textlintrc to specify rules instead of --rule or --rulesdir flags. Your .textlintrc is a great way to maintain your rules.

明示的にルールのファイルを指定することが出来そうです。

修正箇所としてはたぶん

PHP

1//この行で--ruleをつけてルールを明示的に指定してやる 2$cmd = 'npx textlint docs/sample.txt'; 3

の箇所で適用したいルールを指定してあげればエラーは解消するんじゃないかと思います。

[補足]
docs/sample.txtの部分は相対パスでは無く、フルパスで指定しておいた方が安心です。

投稿2019/05/07 13:18

tanat

総合スコア18709

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問