首页 后端开发 php教程 PHP中的多行字符串传递给JavaScript的两种方法_PHP教程

PHP中的多行字符串传递给JavaScript的两种方法_PHP教程

Jul 13, 2016 am 10:24 AM
传递 多行字符串

PHP和JavaScript都是初学。最近有这么个需求:

比方说有一个PHP的多行字符串:

$a = <<<EOF 
thy38 
csdn 
blog 
EOF;
登录后复制

传递给JavaScript后要等价于:

var c='thy38\n\ 
csdn\n\ 
blog';
登录后复制

因为对这两门语言的理解低到不知如何Google,只好自己摸索出方法两则:

1. 将PHP先转义,然后分割,然后转JSON,然后JavaScript parse,最后用\n拼接。

var b=JSON.parse(<&#63;php echo '\''.json_encode(explode("\r\n", $a)).'\''; &#63;>).join('\n'); 
alert(b==c); 
登录后复制

2. 在页面上安排一个隐藏的input,然后先由php把值给它,然后JavaScript从它里面读,就实现了多行值的传递

<input type="hidden" id='testphp' value="<&#63;php echo $a&#63;>" /> 
var a=document.getElementById("testphp").value; 
var b=JSON.parse(<&#63;php echo '\''.json_encode(explode("\r\n", $a)).'\''; &#63;>).join('\n'); 
alert(a==b); 
alert(b==c); 
登录后复制

PS: 以上方法是在跟一个PHP加JavaScript程序员同学的讨论中逐步得出的。
写完了文章回头再想想,其实这两个很绕的方法还是源于对PHP和JavaScript的多行字符串理解不透。
理解透了也就简单了,远不用这么复杂,直接字符串替换就行:

var d=<&#63;php echo '\''.str_replace("\r\n", "\\n\\\n", $a).'\''; &#63;>; 
alert(d==c);
登录后复制

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/825410.htmlTechArticlePHP和JavaScript都是初学。最近有这么个需求: 比方说有一个PHP的多行字符串: $a = EOF thy38 csdn blog EOF; 传递给JavaScript后要等价于: var c='thy...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

什么是 Windows 11 中的传递优化文件,您可以删除它们吗? 什么是 Windows 11 中的传递优化文件,您可以删除它们吗? Sep 29, 2023 pm 04:09 PM

传递优化是帮助Windows更新和Windows应用商店更快地运行和交付更新的功能。传递优化中的缓存文件应该在一段时间后删除,但对于我们的一些读者来说,它们不断堆积并占用不必要的空间。删除传递优化文件是否安全?是的,删除传递优化文件是安全的,在本文中,您会发现在Windows11中这样做非常容易。尽管不建议手动删除传递优化文件,但可以自动执行此操作。如何删除Windows11上的传递优化文件?单击搜索栏,键入磁盘清理,然后从结果中打开该工具。如果您有多个驱动器,请选择带有系统的驱动器(通常是C:

Python中的多行字符串的水平连接 Python中的多行字符串的水平连接 Aug 27, 2023 pm 11:49 PM

在Python中,字符串的连接是一种常见操作,它允许您将两个或多个字符串合并为一个字符串。虽然垂直连接字符串(即,一个在另一个下方)很简单,但是横向连接字符串(即,并排放置)需要一些额外的处理,特别是在处理多行字符串时。在本文中,我们将探讨在Python中执行多行字符串的横向连接的不同方法。Method1:Usingthe+OperatorThe+operatorcanbeusedtocombinetwoormorestringsintoasinglestring.However,whendea

Go中如何使用context实现请求参数传递 Go中如何使用context实现请求参数传递 Jul 22, 2023 pm 04:43 PM

Go语言中的context包是用来在程序中传递请求的上下文信息的,它可以在跨多个Goroutine的函数之间传递参数、截取请求和取消操作。在Go中使用context包,我们首先需要导入"context"包。下面是一个示例,演示了如何使用context包实现请求参数传递。packagemainimport("context&quot

如何解决Vue报错:无法使用props传递数据 如何解决Vue报错:无法使用props传递数据 Aug 17, 2023 am 10:06 AM

如何解决Vue报错:无法使用props传递数据前言:在Vue的开发过程中,使用props来进行父子组件之间的数据传递是非常常见的。然而,有时候我们可能会遇到一个问题,即在使用props传递数据时,会出现报错的情况。本文将重点介绍如何解决Vue中无法使用props传递数据的报错。问题描述:在Vue开发中,当我们在父组件中使用props来传递数据给子组件时,如果

在Java中的消息传递 在Java中的消息传递 Aug 26, 2023 pm 10:13 PM

简介消息传递是一种在项目或线程之间传输通信的方法,是分布式系统和并行编程中的基本思想。根据实现的特定需求,Java中的消息传输可以通过各种方法和结构来完成使用动力源java.util.concurrent容器,它提供了一系列接口和类库,用于建立和处理作为活动锁的线程以及同步机制,是Java中实现传递消息的单一方法,例如实例。例如,Executor接口可以立即使用来执行任务,而BlockingQueue连接可用于在并发进程之间传递语句。以上是Java中消息传递的整个流程的流程图。接口类型Execu

如何通过引用传递PHP变量 如何通过引用传递PHP变量 Aug 26, 2023 am 09:01 AM

在PHP中,您可以使用和号(&)符号将变量按引用而不是按值传递。这样可以在函数或方法内修改原始变量。主要有两种方式可以通过引用传递PHP变量:使用ampersand符号在函数/方法声明中使用和符号将变量传递给函数/方法时在函数/方法声明中使用和号在PHP中,您可以使用函数/方法声明中的和号符号(&)通过引用传递变量。以下是更新的解释:要通过在函数/方法声明中使用&符号来传递引用变量,您需要在函数/方法定义中在参数名称之前包含&符号。这表示参数应该通过引用传递,允许

如何在Go中使用函数参数传递? 如何在Go中使用函数参数传递? May 11, 2023 pm 05:00 PM

Go是一个强类型的编程语言,它的函数参数传递是按值传递的。这意味着当你给函数传递参数时,实际上是复制了一份该参数的值,并将该值传递给函数进行处理。因此,在Go中使用函数参数传递时,需要注意以下几点:值类型和引用类型的区别在Go中,除了基本数据类型是值类型以外,所有的数据类型都是引用类型。值类型的数据在进行函数参数传递时,会复制一份值并传递给函数;而引用类型的

C#开发中如何处理分布式事务和消息传递问题及解决方法 C#开发中如何处理分布式事务和消息传递问题及解决方法 Oct 10, 2023 am 11:42 AM

C#开发中如何处理分布式事务和消息传递问题及解决方法在分布式系统中,分布式事务和消息传递是常见的问题。分布式事务指的是涉及多个数据库或服务的事务,而消息传递则指的是系统中不同组件之间的异步通信。本文将介绍在C#开发中如何处理这些问题,并提供具体的代码示例。一、分布式事务问题及解决方法在传统的单节点事务中,事务的处理逻辑被封装在一个数据库操作中。然而,在分布式

See all articles