
从看到sf上的一个问题markdown解析如何做到前后端效果一致 有人说:用nodejs可以实现。现在我的问题是php网站上怎么调用nodejs?谷歌搜索没找到相关资料,全是讲述比较php和nodejs的文章。网站是php开源系统,想用markdown编辑器。不过有些编辑器虽然好,可是没提供后端解析的php库。前端用marked.js解析markdown. 我也想输出的效果保持一致。
还有弱弱的问一下,为什么好多网站markdown解析为什么分前后端?只提交给前端有什么不好?
1 forex118899 2015-02-17 20:34:48 +08:00 apache reverse proxy |
2 invite 2015-02-17 21:31:06 +08:00 前端后端效果一致? 没看明白什么意思. |
3 oott123 2015-02-17 22:13:27 +08:00 我认为你的思路不太正确。 前端解析,或者后端解析,都好。 前端后端都要解析是干啥…… |
4 typcn 2015-02-17 22:15:29 +08:00 node.js 是一种编程语言,而不是一个软件,与PHP没有任何关系 |
5 typcn 2015-02-17 22:1:41 +08:00 好吧我只看标题了,前端后端解析一个就行了,为什么都要解析 如果要调用的话,开 Socket 吧,基于 TCP/IP 通讯比较容易 |
6 ETiV 2015-02-17 22:22:24 +08:00 markdown 准确来说是渲染吧~ 从 markdown 文本渲染成 HTML . 后端渲染出来, 给谁看? |
7 fising 2015-02-17 22:23:52 +08:00 via iPad 前端解析就ok了吧 |
8 lk09364 2015-02-17 22:27:10 +08:00 有个问题。你的『输出』是输出到那里?前端已经可以解析了啊。直接把 md 输出到前端解析不好吗。 另:如果一定要分开前端后端一起解析的话,找两个依照标准的库就应该可以了。或者把 js 库重写为 php 也行。 |
9 XueSeason 2015-02-17 22:27:20 +08:00 @typcn Node.js是一个基于Chrome V8 引擎,为简单迅速构建可扩充的网络应用的一个平台。而不是编程语言!真正的编程语言应该是Javascript。 PHP是采用:浏览器 HTTP 服务器 PHP 解器的架构,而Node.js直接将HTTP服务器抽离,直接面向浏览器用户。 和PHP还是有那么一点微妙的关系就是都是用于服务器。 |
11 heiybb 2015-02-17 22:42:05 +08:00 根本看不到内容,非得ctrl+A,这样的样式真是讨厌= = |
12 lincanbin 2015-02-17 23:12:17 +08:00 内网通讯,node.js监听一个端口,收发数据。 PHP用Socket类函数来与node.js交互。 话说node.js能做的话,PHP九成九也能做,为什么不重写个PHP版本的? |
13 mkeith 2015-02-17 23:18:53 +08:00 后端肯定还要再解析一遍的吧 |
14 imzyxwvu 2015-02-18 01:32:09 +08:00 via iPhone php调用node app提供的api |
15 akfish 2015-02-18 01:55:03 +08:00 Markdown在后端完全可以不用解析,当纯文本就行,该怎么存怎么存。 其实就算你在后端撸了,结果是HTML,依然是纯文本。 前端解析只要做了sanitization防止XSS,就没有什么问题,这基本上是前端parser的标配。 前后端都撸那是纯蛋疼。 至于所谓的前后端效果不一致,那是因为Markdown没有一个统一的标准(当然有个社区发起的CommonMark标准,但不是所有parser都完全遵守),于是各种parser实现都有差异。可以参见babelmark项目,对比了各种流行parser输出结果的区别: http://johnmacfarlane.net/babelmark2/ 用node.js能避免这一点,完全是因为前后端都是Javascript,能跑同样的parser,自然就没有一致性的问题。 |
16 ugmc OP 感谢楼上解答。现在github找到一个开源markdown编辑器。功能不错。而这编辑器的前端解析器就是marked.js。存到数据库是原markdown格式文本。而后端渲染成html格式输出到页面时因没有匹配的php解析库效果肯定会不一样。所以把merked.js运行在node.js中,然后后端nodejs渲染格式返回的结果调用到php网站页面上,就是不知道怎么实现。有经验的可以分享一下。 |
18 bsbgong 2015-02-18 08:52:26 +08:00 如果我没理解错,就是进程间通信 1. 把你的node程序准备好(定义好输入输出),命令行能启动它运行输出结果。 2. 在php里使用exec调用node程序,获取输出。http://php.net/manual/zh/function.exec.php 3. php把结果返回到前端(echo, ob等随便你) 中间的输入输出可以使用临时文件 |
19 lizheming 2015-02-18 09:26:51 +08:00 http://segmentfault.com/q/1010000000671600/a-1020000000671629 直接 PHP 和 node.js 通信,走 API...=!如果你是评论那个 raymil 的话就当我没说吧.... |
21 hanan321 2015-02-18 16:52:27 +08:00 nodejs提供一个接口,php从接口取数据不就行了吗? |
22 lizheming 2015-02-18 16:55:01 +08:00 |