PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (106): В начало « ... 13 14 15 16 [17] 18 19 20 21 ... » В конец
Найдено сообщений: 1581
Строитель
Отправлено: 29 Октября, 2018 - 11:06:58 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 316
Glomar , а как я скопирую структуру массива с ваших скриншотов? Вы простите помощи, и в то же время не предоставляете минимальный набор данных.
Строитель
Отправлено: 28 Октября, 2018 - 20:09:39 • Тема: Поиск между тегами • Форум: Регулярные выражения
Ответов: 13 Просмотров: 988
mikka пишет: после удаления в начале регулярного выражения ?<= ошибка ушла
Это ж какая версия php у вас используется? O.о
Если у вас не поддерживается Ретроспективная проверка , тогда можно просто сгруппировать НЕ сохраняющими скобками (?: ...) Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
function get_content( $url ) {
$pcre = "~(?:</script>\r \n |\h)<a[^>]*>(.+?)</a>~s" ;
return $katalog_link ;
}
url= 'http://test1.ru/' ;
$nameNum = get_content( $url ) ;
print_arr( $nameNum ) ;
Искомая подстрока будет соответствовать шаблону, если:
1. Начинается с тега </script> после которого обязательно следуют символы перевода каретки и новой строки \r\n , или | символ горизонтального отступа (пробел) \h .
Описанную выше последовательность символов необходимо сгруппировать с помощью конструкции не сохраняющих скобок:
(?: </script> \r\n | \h )
2. Далее ожидается html-тег <a , за которым может следовать любая последовательность символов, кроме символа > , и эта последовательность символов должна заканчиваться символом > :
<a[^>]*>
3. Далее следует любая группа символов .+? , за которой обязательно должен следовать закрывающий html-тег </a> . Обратите внимание, что для "захвата" группы символов между html-тегами <a[^>]*> и </a> в отдельный элемент массива, используется захватывающая группировка ( .+? ) :
<a[^>]*>(.+?)</a>
4. Символы ~ - это ограничители шаблона.
5. Модификатор s - задаёт режим соответствия для символьного класса ". " (точка - это символьный класс в регулярных выражениях) .
По умолчанию символ ". " соответствует почти любому символу, кроме символа перевода на новую строку (и ещё каких-то непечатаемых символов, точно не помню) . Для включения режима полного соответствия любому символу, в конец шаблона добавляется модификатор s .
Строитель
Отправлено: 28 Октября, 2018 - 18:14:38 • Тема: Поиск между тегами • Форум: Регулярные выражения
Ответов: 13 Просмотров: 988
mikka пишет: теперь получаю ошибку
Значит вы допустили ошибку при копировании или редактировании моего кода -- я на локальном сервере проверял этот код перед публикацией.
(Добавление)
mikka , покажите, как вы его используете.
Строитель
Отправлено: 28 Октября, 2018 - 17:24:51 • Тема: Поиск между тегами • Форум: Регулярные выражения
Ответов: 13 Просмотров: 988
mikka , это вы привели строку, которую надо получить. А ещё нужна строка, ИЗ которой надо получить. Или я не так понял?
Строитель
Отправлено: 28 Октября, 2018 - 02:18:23 • Тема: Вложенные массивы • Форум: Вопросы новичков
Ответов: 20 Просмотров: 696
Кровавый Помидор пишет: это все необходимо чтобы выполнялось непосредственно в консоли
Сегодняшняя попытка (как-то громоздко у меня получилось) Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$data = [
'role' => 'ceo' ,
'name' => "benjamin button" ,
[
'role' => 'cto' , 'name' => 'steve wonder' ,
[ 'role' => 'head of finance dep' , 'name' => 'donald duck' ] ,
[ 'role' => 'team lead' , 'name' => 'rude mustach' ] ,
[ 'role' => 'second team lead' , 'name' => 'senior pomidor' ] ,
[ 'role' => 'senior dev' , 'name' => 'jar-jar bings' , 'tech spec' => '.net' , 'salary' => '5 majorlion dollars' ] ,
[
'role' => 'senior dev' , 'name' => 'obi-wan kenoby' , 'tech spec' => 'java' , 'salary' => '10% of all revenues' ,
[ 'role' => 'junior dev' , 'name' => 'little any skywalking' , 'teachedby' => 'obi-wan kenoby' ]
] ,
[ 'role' => 'owner' , 'name' => 'mister beans' ] ,
]
] ;
$all_elements = 0 ;
$maxLen = 0 ;
$cli = [ ] ;
$head = [ ] ;
$body = [ ] ;
$asort = [ ] ;
$maxLen >= $len ?: $maxLen = $len ;
} ) ;
get_array( $data ) ;
uksort ( $asort , function ( $a , $body ) { return $a <=> $body ; } ) ;
foreach ( $asort as $key => $item ) {
$head [ ] = str_pad ( $key , $maxLen , ' ' , STR_PAD_BOTH
) ; $all_elements >= $count ?: $all_elements = $count ;
foreach ( $item as $val ) {
$body [ $key ] [ ] = '|' . str_pad ( $val , $maxLen , ' ' , STR_PAD_BOTH
) . '|' ; }
}
$print = '|' . join ( '|' , $head ) . '|' ; $dash = "\n |" . str_repeat ( '-' , ( $length - 2 ) ) . "|\n " ; $view = $eq . $print . $dash ;
foreach ( $body as $header => $array ) {
$tmp = [ ] ;
for ( $i = 0 ; $i < $all_elements ; $i ++ ) {
$tmp [ ] = empty ( $shift ) ?
'|' . str_pad ( '' , $maxLen , ' ' , STR_PAD_BOTH
) . '|' : $shift ; }
$cli [ ] = $tmp ;
}
for ( $x = 0 ; $x < $all_elements ; $x ++ ) {
for ( $i = 0 ; $i < count ( $cli ) ; $i ++ ) { $view .= $cli [ $i ] [ $x ] ;
}
$view .= "\n " ;
}
function get_array( $arr )
{
foreach ( $arr as $key => $item ) {
is_array ( $item ) ? get_array
( $item ) : $GLOBALS [ 'asort' ] [ $key ] [ ] = $item ; }
}
Строитель
Отправлено: 25 Октября, 2018 - 16:26:00 • Тема: Вложенные массивы • Форум: Вопросы новичков
Ответов: 20 Просмотров: 696
Кровавый Помидор , вроде бы то, что было нужно:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
'role' => 'ceo' ,
'name' => "benjamin button" ,
array ( 'role' => 'cto' , 'name' => 'steve wonder' , array ( 'role' => 'head of finance dep.' , 'name' => 'donald duck' ) , array ( 'role' => 'team lead' , 'name' => 'rude mustach' ) , array ( 'role' => 'second team lead' , 'name' => 'senior pomidor' ) , array ( 'role' => 'senior dev' , 'name' => 'jar-jar bings' , 'tech spec' => '.net' , 'salary' => '5 majorlion dollars' ) , array ( 'role' => 'senior dev' , 'name' => 'obi-wan kenoby' , 'tech spec' => 'java' , 'salary' => '10% of all revenues' , array ( 'role' => 'junior dev' , 'name' => 'little any skywalking' , 'teachedby' => 'obi-wan kenoby' ) ) ,
array ( 'role' => 'owner' , 'name' => 'mister beans' ) , ) ) ;
$new = [ ] ;
function get_array( $arr )
{
foreach ( $arr as $key => $item ) {
is_array ( $item ) ? get_array
( $item ) : $GLOBALS [ 'new' ] [ $key ] [ ] = $item ; }
}
get_array( $data ) ;
uksort ( $new , function ( $a , $b ) { return $a <=> $b ; } ) ;
$view = '<table border="1"><tr>' ;
foreach ( $new as $key => $item ) {
$view .= '<td>' . $key . '</td>' ;
}
$view .= '<tr>' ;
foreach ( $new as $item ) {
$view .= '<td>' . join ( '<br>' , $item ) . '</td>' ; }
echo $view .= '</tr></tr></table>' ;
Строитель
Отправлено: 25 Октября, 2018 - 16:03:58 • Тема: Вложенные массивы • Форум: Вопросы новичков
Ответов: 20 Просмотров: 696
Кровавый Помидор пишет: такой вариант получается немножечко отличным от такого, какой нужно получить)
Согласен ) Только я не понимаю, откуда берутся строки эти
Их же нет в массиве? Вы вручную их просто дописываете, или я не туда смотрю ? ...
(Добавление)
Вы мне свой оригинал массива скиньте - мне визуально будет понятнее.
Страниц (106): В начало « ... 13 14 15 16 [17] 18 19 20 21 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB