我正在为一个样式指南生成器调整一点PHP以引入.scss文件并显示它,但在第56行我收到通知:未定义的变量。
有问题的行是
$sass = 'sass'.strstr($path, "/");
并且整个functions.php是
<?php
// Display title of each markup samples as a list item
function listMarkupAsListItems ($type) {
$files = array();
$handle=opendir('markup/'.$type);
while (false !== ($file = readdir($handle))):
if(stristr($file,'.html')):
$files[] = $file;
endif;
endwhile;
sort($files);
foreach ($files as $file):
$filename = preg_replace("/\.html$/i", "", $file);
$title = preg_replace("/\-/i", " ", $filename);
$title = ucwords($title);
echo '<li><a href="#sg-'.$filename.'">'.$title.'</a></li>';
endforeach;
}
// Display markup view and source
function showMarkup($type) {
$files = array();
$handle=opendir('markup/'.$type);
while (false !== ($file = readdir($handle))):
if(stristr($file,'.html')):
$files[] = $file;
endif;
endwhile;
sort($files);
foreach ($files as $file):
$filename = preg_replace("/\.html$/i", "", $file);
$title = preg_replace("/\-/i", " ", $filename);
$documentation = 'doc/'.$type.'/'.$file;
echo '<div class="sg-markup sg-section">';
echo '<div class="sg-display">';
echo '<h2 id="sg-'.$filename.'" class="sg-h2">'.$title.'</h2>';
if (file_exists($documentation)) {
echo '<div class="sg-doc">';
include($documentation);
echo '</div>';
}
include('markup/'.$type.'/'.$file);
echo '</div>';
echo '<div class="sg-markup-controls"><button type="button" class="sg-btn sg-btn--source">View Source</button> <a class="sg-btn--top" href="#top">Back to Top</a></div>';
echo '<div class="sg-source sg-animated">';
echo '<button type="button" class="sg-btn sg-btn--select">Copy Source</button>';
echo '<pre class="line-numbers"><code class="language-markup">';
echo htmlspecialchars(file_get_contents('markup/'.$type.'/'.$file));
echo '</code></pre>';
echo '</div>';
echo '</div>';
$sass = 'sass'.strstr($path, "/");
$sass = str_replace(".html",".scss",$sass);
if (file_exists($sass)) {
echo '<div class="sg-sub-section">';
echo '<div class="sg-markup-controls">';
echo '<button type="button" class="sg-btn sg-btn--source">View Sass</button>';
echo '</div>';
echo '<div class="sg-source">';
echo '<button type="button" class="sg-btn sg-btn--select">Copy Sass</button>';
echo '<pre class="line-numbers"><code class="language-scss">';
echo file_get_contents($sass);
echo '</code></pre>';
echo '</div>';
echo '</div>';
}
endforeach;
}
?>
我确定这是一个简单的PHP问题我错了。任何帮助将不胜感激。
更新: $ sass的代码取自另一个片段,看两条评论(谢谢)似乎$ path变量是问题?我想我需要将其定义到我正在寻找的文件夹路径?
答案 0 :(得分:0)
您需要先定义$ path。您可以在其他地方执行此操作,并使用函数开头的行调用$ path变量到函数中,如:
function showMarkup($type) {
global $path;
// ... etc.
或者在定义函数时为其定义默认值:
function showMarkup($type, $path="my-default-path/") {