powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP // Строка в массив
7 сообщений из 7, страница 1 из 1
PHP // Строка в массив
    #37973152
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер,

имеется строка:

Код: php
1.
$string = 'Welcome to «PHP$raquo;!';



нужно получить массив, вида:

Код: php
1.
2.
3.
4.
5.
6.
7.
array(
[0] => Welcome to ,
[1] => «,
[2] => PHP,
[3] => $raquo;,
[4] => !
);



Т.е. разбить строку по html-сущностям, при этом важно сохранить порядок слов и не потерять сами сущности.
Как решить такую задачу?
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973224
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function splitter($input) {
  return preg_split("[\\\\]", preg_replace('/((?:\&|\$)\w+;)/', "\\,$1,\\", $input));
}

print_r(splitter('Welcome to «PHP$raquo;!'));

Array
(
    [0] => Welcome to
    [1] => ,«,
    [2] => PHP
    [3] => ,$raquo;,
    [4] => !
)
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973232
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explode(' ', $str), да
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973285
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
// Исправленный вариант

function splitter($input) {
  return preg_split('[~]', preg_replace('/([^\&\$]+)((\&|\$)\w+;)/', "$1,~$2,~", $input));
}

var_dump(splitter('Welcome to «PHP$raquo;!'));

array(5) {
  [0]=>
  string(12) "Welcome to ,"
  [1]=>
  string(8) "«,"
  [2]=>
  string(4) "PHP,"
  [3]=>
  string(8) "$raquo;,"
  [4]=>
  string(1) "!"
}
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973305
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman , спасибо, а можно как то сделать, чтобы в массиве, html сущносты были без & и ;, т.е. чтобы не

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
Array
(
    [0] => Welcome to ,
    [1] => «,
    [2] => PHP,
    [3] => »,
    [4] => !
)



а

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
Array
(
    [0] => Welcome to ,
    [1] => laquo,
    [2] => PHP,
    [3] => raquo,
    [4] => !
)
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973308
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

Код: php
1.
2.
3.
function splitter($input) {
  return preg_split("[~]", preg_replace('/([^\&\$]+)(?:\&|\$)(\w+);/', "$1,~$2,~", $input));
}
...
Рейтинг: 0 / 0
PHP // Строка в массив
    #37973310
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman , большое спасибо, всё отлично работает!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP // Строка в массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]