首先这是我的PHP代码。我试图将此代码作为输出上的文本。不知道我是怎么做到的。使用html,我们可以\"
将其插入到php中但是如何在我的代码中完成这样的操作?
<?php
$stringData = "
// Start here
<?php
$width = $_GET['width'];
$heigh = $_GET['height'];
echo 'Hello';
?>
// End here
";
?>
我已经标记了那个部分,我希望在文本输出中得到它,但当我把它放在页面上时,我得到语法错误,不知道为什么。
编辑#2
下面是我的完整代码,我解释了我的代码如何工作以及为什么。 我的代码是创建页面并在创建的页面中放置一些东西
<form method="post">
<label>Page Name:</label><br>
<input type='text' name='filename' placeholder='page name'>
<label>Folders</label>
<select name="thisfolder">
<option value="">Default</option>
<option value="Folder1">Folder1</option>
<option value="Folder2">Folder2</option>
<option value="Folder3">Folder3</option>
</select><br><br>
<label>content</label><br>
<input type='text' name='strin' placeholder='content of created page'>
<input type='submit' value='Add Feed'>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
// the name of the file to create
$filename=$_POST['filename'];
// the name of the file to be in page created
$strin=$_POST['strin'];
// the name of the folder to put $filename in
$thisFolder = $_POST['thisfolder'];
// make sure #thisFolder of actually a folder
if (!is_dir(__DIR__.'/'.$thisFolder)) {
// if not, we need to make a new folder
mkdir(__DIR__.'/'.$thisFolder);
}
// . . . /[folder name]/page[file name].php
$myFile = __DIR__.'/'.$thisFolder. "/page" .$filename.".php";
$fh = fopen($myFile, 'w');
$stringData = "
<?php
$width = $_GET['width'];
$heigh = $_GET['height'];
echo '';
?>
";
fwrite($fh, $stringData);
fclose($fh);
}
?>
我想要做的是,将$stringData
内的php代码传递给将要创建的页面
答案 0 :(得分:1)
您想要逃避文本中的$
。
像这样设置$stringData
:
$stringData = "
// Start here
<?php
\$width = \$_GET['width'];
\$heigh = \$_GET['height'];
echo 'Hello';
?>
// End here
";
答案 1 :(得分:1)
使用highlight_string内部函数
echo highlight_string($stringData);
echo htmlspecialchars($stringData);
编辑,只要您不想将PHP代码直接打印到输出[正如您在评论中提到的那样]
这里的问题是你使用(双引号)来存储值,这在php中具有特殊含义
解决方案是将文本存储在单引号中,
<?php
$stringData = '
// Start here
<?php
$width = $_GET["width"];
$heigh = $_GET["height"];
echo "Hello";
?>
// End here
';
?>
答案 2 :(得分:1)
您使用的是双引号("
),可让您在单引号($variables
)不会使用的字符串中使用'
。
$color = 'red';
$string_one = "My car is $color."
echo $string_one; // My car is red.
$string_two = 'My car is $color.'
echo $string_two; // My car is $color.
因此,为了修复您的代码,您只需将双引号更改为单引号(并转义[在其他单引号之前加上反斜杠])。
像这样:
<?php
$stringData = '
// Start here
<?php
$width = \$_GET[\'width\'];
$heigh = \$_GET[\'height\'];
echo \'Hello\';
?>
// End here
';
?>
答案 3 :(得分:0)
您的代码
?>
// End here must be in out put
";
?>
没有启动php dellimiter <?php
正确的是:
?>
// End here must be in out put
<?php
";
?>
你又增加了一个php dellimiter,总计2:
<?php
$stringData = "
**?>**
// Start here must be in out put
<?php
$width = $_GET['width'];
$heigh = $_GET['height'];
echo '';
?>
// End here must be in out put
**<?php**
";
?>
答案 4 :(得分:0)
在你的代码中我添加了:
<?php
$stringData = '
// Start here
<?php
$width = $_GET["width"];
$heigh = $_GET["height"];
echo "Hello";
?>
// End here
';
echo $stringData;
?>
当我打开这个phap页面时,我在浏览器中:
//从这里开始//在此结束
在页面源视图中我有:
// Start here
<?php
$width = $_GET["width"];
$heigh = $_GET["height"];
echo "Hello";
?>
// End here
没有错误!我现在看到你不会的。
答案 5 :(得分:0)
此代码带&#34;(字符串)$ price&#34;工作:
<?php
$price = 10;
$stringData = "start here (string) $price end here";
echo $stringData;
echo "(string) $price";
?>