有人可以帮我这个。我需要将它作为长字符串存储在变量中。我有一个名为simple的函数,将其插入附加到另一个div的DOM中。一切都运行得很好,除了我不知道如何存储这个字符串与其中的所有"和#34; s。我已经尝试使用我在搜索中找到的\和unescape方法,但似乎无法正常工作。有人可以帮帮我吗?
'<div class="centerContent"><P>Please fill in the form below to send an email to H.O.V.A.R.<br/>All fields are required.</p><?php if(!empty($errors)): ?><div class="errorPanel"><ul><li><?php echo implode('</li><li>',$errors); ?></li></ul></div><?php endif ?><form action="contact.php" method="post" accept-charset="utf-8"><label>Your Name:<input type="text" name="name" style="display:block" autocomplete="off"<?php echo isset($fields['name']) ? 'value="' . e($fields['name']) . '"' : '' ?>></label><label>Your email address:<input type="text" name="email" style="display:block" autocomplete="off"<?php echo isset($fields['email']) ? 'value="' . e($fields['email']) . '"' : '' ?>></label><label>Your Message:<textarea name="message" rows="10" style="display:block"><?php echo isset($fields['message']) ? e($fields['message']) : '' ?></textarea></label><input type="submit" value="Send" style="display:block"></form></div>'
答案 0 :(得分:0)
虽然以下显示了如何逃避引号,但是如此长的字符串是非常笨拙的,并且不清楚你最终要实现的目标......
此外,由于您还尝试从PHP插入内容,因此还需要以类似的方式进行转义。
# some segment-segment intersection code
# http://paulbourke.net/geometry/pointlineplane/
ssi <- function(x1, x2, x3, x4, y1, y2, y3, y4){
denom <- ((y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1))
denom[abs(denom) < 1e-10] <- NA # parallel lines
ua <- ((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3)) / denom
ub <- ((x2 - x1)*(y1 - y3) - (y2 - y1)*(x1 - x3)) / denom
x <- x1 + ua * (x2 - x1)
y <- y1 + ua * (y2 - y1)
inside <- (ua >= 0) & (ua <= 1) & (ub >= 0) & (ub <= 1)
data.frame(x = ifelse(inside, x, NA),
y = ifelse(inside, y, NA))
}
# do it with two polylines (xy dataframes)
ssi_polyline <- function(l1, l2){
n1 <- nrow(l1)
n2 <- nrow(l2)
stopifnot(n1==n2)
x1 <- l1[-n1,1] ; y1 <- l1[-n1,2]
x2 <- l1[-1L,1] ; y2 <- l1[-1L,2]
x3 <- l2[-n2,1] ; y3 <- l2[-n2,2]
x4 <- l2[-1L,1] ; y4 <- l2[-1L,2]
ssi(x1, x2, x3, x4, y1, y2, y3, y4)
}
# testing the above
d1 <- cbind(seq(1, 10), rnorm(10))
d2 <- cbind(seq(1, 10), rnorm(10))
plot(rbind(d1, d2), t="n")
lines(d1)
lines(d2, col=2)
points(ssi_polyline(d1, d2))
# do it with all columns of a matrix (common xs assumed)
# the general case (different xs) could be treated similarly
# e.g by doing first a linear interpolation at all unique xs
ssi_matrix <- function(x, m){
# pairwise combinations
cn <- combn(ncol(m), 2)
test_pair <- function(i){
l1 <- cbind(x, m[,cn[1,i]])
l2 <- cbind(x, m[,cn[2,i]])
pts <- ssi_polyline(l1, l2)
pts[complete.cases(pts),]
}
ints <- lapply(seq_len(ncol(cn)), test_pair)
do.call(rbind, ints)
}
# testing this on a matrix
m <- replicate(5, rnorm(10))
x <- seq_len(nrow(m))
matplot(x, m, t="l", lty=1)
test <- ssi_matrix(x, m)
points(test)
# now, apply this to the dataset at hand
library(ggplot2)
library(reshape2)
library(plyr)
set.seed(123)
data <- data.frame(decade=1:10)
n=nrow(data)
data$maxa <- runif(n,1000,2000)
data$maxb <- runif(n,1000,2000)
data$maxc <- runif(n,1000,2000)
data$maxd <- runif(n,1000,2000)
data$maxe <- runif(n,1000,2000)
newpoints <- setNames(data.frame(ssi_matrix(data$decade, data[,-1L]),
"added"), c("decade", "value", "variable"))
mdata <- melt(data, id=1L)
interpolated <- ddply(mdata, "variable", function(d){
xy <- approx(d$decade, d$value, xout=newpoints[,1])
data.frame(decade = xy$x, value=xy$y, variable = "interpolated")
})
all <- rbind(mdata, interpolated, newpoints)
rib <- ddply(all, "decade", summarise,
ymin=min(value), ymax=max(value))
ggplot(mdata, aes(decade)) +
geom_ribbon(data = rib, aes(x=decade, ymin=ymin, ymax=ymax),
alpha=0.40,fill="#3985ff")+
geom_line(aes(y=value, colour=variable))
答案 1 :(得分:0)
由于您的字符串以单引号开头,因此您需要在构建字符串期间转义每个单引号(如果您使用双引号启动字符串,则必须转义双引号)。在字符串内部,每个单引号都需要通过前面的反斜杠进行转义(如下所示:\&#39;)。使用字符串时不能这样做,因为PHP和/或Javascript会抱怨字符串中有非法令牌。
当你这样做时,你可以在PHP中回显它,但由于它是一个字符串,它不会给你想要的结果。根据所使用的技术,您将获得扭曲的形式或错误。
这一切都归结为在字符串中调用PHP。你应该做的是消除字符串中的php调用。因此输入&#34; <?php .... ?>
&#34;在字符串中,您应该将PHP调用的结果输入到字符串中。