Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 823
1

Strpos вроде видит квадратные скобки, но результат в массив не передается

16.05.2019, 11:59. Показов 893. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть файл с проверочным кодом в двух видах: в первом варианте переменные получают данные из функций, во втором из текста. Назвал файл eror.php. Положил его на один уровень с единственной папкой в которой есть файл. Имя папки периодически меняю, вставляя туда квадратные скобки. При этом strpos постоянно видит вхождения, но в результатах (выводе массива) имя папки с квадратными скобками не отображается. Как только убираю хоть одну квадратную скобку,папка появляется и в ней виден файл. Функцию получения имени папки упростил с расчетом, что она одна.
Ну и для примера работа того же варианта строки strpos при работе с текстовыми данными. Правда для наглядности работы добавил в имени файла несколько точек в пути. Тогда вхождение смещается для наглядности. Вот код файла:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <?php
    $dir='.';
     
    $folders=glob($dir.DIRECTORY_SEPARATOR."*", GLOB_ONLYDIR);
    foreach ($folders as $folder)
    {
    if (is_dir($folder))  echo $folder; echo '<br>----<br>'; // тут для проверки результата
     }
    echo '<br>----<br>';
    function find_all_files($path)
    {
      global $file;
      foreach (glob($path.DIRECTORY_SEPARATOR."*") as $file)
      {
         if (is_dir($file))
         {
            if (!find_all_files($file)) continue;
         }
         else
         {
            $parth_on[] =$file; print_r($parth_on); // тут проверяю массив и при добавлении квадратных скобок папка пропадает
         }
      }
    }
    find_all_files('.');
        $pos = strpos($file,$folder);
     
        if ($pos !== FALSE) {
          echo "позиция: $pos";
        } else {
          echo "Позиция не найдена";}
     
    ?>
     
    <?php
        $file='.....\в ней ещё одна[hhh]kkk\file.jpg';
        $folder='.\в ней ещё одна[hhh]kkk';
    $pos = strpos($file,$folder);
     
        if ($pos !== FALSE) {
         echo "позиция: $pos";
        } else {
          echo "Позиция не найдена";}
    ?>
Вот что получается, если нет квадратных скобок
PHP
1
2
3
    .\в ней ещё одна[hhhkkk
    ----
    Array ( [0] => .\eror.php ) Array ( [0] => .\в ней ещё одна[hhhkkk\file.jpg ) позиция: 0 позиция: 4
А вот что с квадратными скобками
PHP
1
2
3
    .\в ней ещё одна[hhh]kkk
    ----
    Array ( [0] => .\eror.php ) позиция: 0 позиция: 4
Если проблема не в работе strpos, то как решить проблему? И какое же вхождение он видит?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 11:59
Ответы с готовыми решениями:

Квадратные скобки
Где то недавно затрагивали эту тему, но лучше разобраться отдельно. О квадратных скобках в...

Квадратные скобки
Здравствуйте. Ситуация следующая. Перебираю запрос, в результате есть несколько колонок, среди...

Квадратные скобки []
Здравствуйте! Объясните, пожалуйста, значение квадратных скобок в следующих строчках: delete...

Квадратные скобки в таблице
Начал делать работу и наткнулся на трудности((Надо получить саммарную силу Fi.На картинке все...

0
16.05.2019, 11:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2019, 11:59
Помогаю со студенческими работами здесь

Квадратные скобки в BAT
Встречаются в команде FIND как задание диапазона либо задание диапазона по знакоместу в слове. ...

Убрать квадратные скобки
n = int(input()) squares = print(squares) При выводе программа выводит следующее: Пример -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru