2015-07-08 4 views
-1

generirajSkripte() - моя функция, но это не важно для обнаружения проблемы. Таким образом, следующий код работать хорошо:php, проблемы с косой чертой

generirajSkripte('pages/','developingStyles/','develop'); 
generirajSkripte('pages/','developingStyles/fonts/','fonts'); 

Этот код работа тоже хорошо:

//All these variable matching strings above! 
generirajSkripte('pages/',$Pages[0].'/',$ScriptNames[0]); 
generirajSkripte('pages/',$Pages[0].'/fonts/',$ScriptNames[1]); 

И этот код не работает:

generirajSkripte('pages/',$Pages[0].'/',$ScriptNames[0]); 
generirajSkripte('pages/',$Pages[0].'/'.$Pages[1].'/',$ScriptNames[1]); 

переменной $ Страницы [1] ==» fonts '101%, я потратил 8 часов на проверку и многое другое ... ничего нет смысла!

Таким образом, позволяет внутри generirajSkripte():

function generirajSkripte($pageFolderName,$path,$scriptName) 
    { 
    if(!file_exists(noSlashRight($pageFolderName.$path))) 
     { 
     echo '(test echo) dont exist: '.$pageFolderName.$path;br(); 
     //die('miki'); 
     if (!mkdir(noSlashRight($pageFolderName.$path), 0777, true)) {die('Failed to create folders...');}; 

     //model.php 
     $file=fopen($pageFolderName.$path.$scriptName."_m.php", "w"); 
     fwrite($file, "<?php nnnnn?>"); fclose($file); 

     //wiev php (content) 
     $file=fopen($pageFolderName.$path.$scriptName."_w.php", "w"); 
     $fileTxt=""; 
     fwrite($file, $fileTxt); 
     fclose($file); 

     //file.js 
     $file=fopen($pageFolderName.$path.$scriptName.".js", "w"); 
     fwrite($file, "/*\n onload(function()\n\t{\n\t});\n*/"); 
     fclose($file); 

     //file.css 
     $file=fopen($pageFolderName.$path.$scriptName.".css", "w"); 
     fclose($file); 


     echo 'There is new script for path: '.$pageFolderName.$path;br(); 
     } 
    } 

В ситуации, когда код не работает, есть генерировать кучу странных папок, но тест эхо линии не срабатывает. Так странно !!

Ошибка? Ошибка не возникает, только я получаю дополнительную бесчувственную и неожиданную иерархию папок. Имена этих папок становятся похожими на мою основную папку. Некоторые имена папок похожи на мои изображения в моей папке img, которая находится на верхнем уровне структуры.

Когда я печатал переменные ... что я получил в функции generirajSkripte(), все переменные были точно такими же, как ожидалось ... и то же самое в обоих случаях!

Я искал несколько дополнительных символов в $ Страницы, так что я сделал тест:

echo '<pre>'; 
print_r($Pages); 
print_r($ScriptNames); 
echo '</pre>'; 

и получил:

Array 
( 
    [0] => developingStyles 
    [1] => fonts 
    [2] => 
    [3] => 
    [4] => 
) 
Array 
( 
    [0] => develop 
    [1] => fonts 
    [2] => 
    [3] => 
    [4] => 
) 

..emtpy позиции, как ожидается, тоже!

И еще одна вещь. Когда я получаю неожиданное поведение .... Я запускаю код, пока мой целевой файл существует! Поэтому основное условие должно быть ложным ... и не предполагается, что ничего не произойдет. Но я получаю все новые папки structere со странными именами ... и не могу запускать что-либо еще в том же блоке кода, как и моя функция эхо-теста в первой строке этого блока.

+0

1. Покажите нам свою функцию. 2. Покажите нам предстоящую ошибку –

+1

Конечно, реализация функции очень актуальна для вашего вопроса. Вы вообще не объясняете проступки.Никто не может ответить «не работает», не понимая использования и цели. И вам также необходимо предоставить полное переменное содержимое. – mario

+0

просто отлаживайте $ path с помощью эха, чтобы узнать, что различается между 2-м и 3-м методом, которые вы нам показали. –

ответ

0

Это была определенно самая запутанная ошибка, которую я когда-либо видел. После 10 + часов отладки я обнаружил, что PHP был запутан с HTML-скриптом, который включен в действующий код. Не обязательно простой HTML, также если я использовал функцию эха для генерации некоторых частей HTML, это вызывает ту же путаницу.

Эта часть кода была ключом:

echo " 
<div id='userBox' class='valign_inline'> 
    <div id='avatar_and_name_box' class='valign_inline'> 
     <div id='avatarBox' class='krug24 p'><img src='img/profile-photo.png'/></div> 
    </div> 
</div>"; 

Таким образом, позволяет фокусировать IMG тег. Если я изменю имя этого тега, больше нет ошибки! Если я изменяю атрибут src этого тега, он будет напрямую вызывать разное имя неожиданных папок (при создании папок)

Это, очевидно, неожиданное поведение PHP? ... Я не знаю, что было бы моей ошибкой? :/

+0

Кроме того, я узнал, что все это путаница происходит потому, что сплит URL-адрес слэш. Что-то не так в этой строке после сплит ... –

Смежные вопросы