Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как удалить символы в строке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
neuk
Отправлено: 09 Апреля, 2012 - 12:46:11
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Здравствуйте.
я делаю сайт в WordPress и никак не могу побороть PHP. в файле sidebar.php вывожу список дочерних страниц:
CODE (text):
скопировать код в буфер обмена
  1.         <?php  
  2.   if($post->post_parent)
  3.   $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
  4.   else
  5.   $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  6.   if ($children) { ?>  
  7.  
  8.   <ul>
  9.   <?php
  10.   echo $children; ?>
  11.   </ul>
  12.   <?php } ?>

всё работает, получается список:
* школа 1
* школа 2
* школа 3 и т. д.

после этого пытаюсь убрать "школа " и оставить только "1", "2", и т. д. пробовал вставить в строку echo $children; ?> функции substr и preg_replace - выдает ошибку.

пожалуйста, помогите, кто чем может.
 
 Top
zypikov
Отправлено: 09 Апреля, 2012 - 13:34:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




neuk пишет:
т. д. пробовал вставить в строку echo $children; ?> функции substr и preg_replace - выдает ошибку.

Кусок кода напишите как пробовали вставить. И какую ошибку выдают функции, тоже в студию)


-----
У всего есть обратная сторона.
 
 Top
neuk
Отправлено: 09 Апреля, 2012 - 14:02:39
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




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

вариант 1.
<ul>
<?php
$child = substr($children,5)
echo $child; ?>
</ul>
<?php } ?>

syntax error, unexpected T_ECHO

вариант 2.
<ul>
<?php
echo substr($children,5); ?>
</ul>
<?php } ?>

вместо маркера списка, перед "школа 1" появляется lass="page_item page-item-87">

вариант 3.
<ul>
<?php
echo preg_replace('школа ','',$child);
echo $child; ?>
</ul>
<?php } ?>

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash
 
 Top
zypikov
Отправлено: 09 Апреля, 2012 - 14:42:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




В варианте 1 вы пропустили ; после


neuk пишет:
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");

Не зная, что делает функция wp_list_pages, не могу точно сказать что попадает в $children, но даже из этого кода видно что к значению $post->post_parent (это школа 1, школа 2 и т.д.) добавляется еще строковое значение. Т.е. по идее должно быть



В третьем разграничители пропустили



-----
У всего есть обратная сторона.
 
 Top
neuk
Отправлено: 09 Апреля, 2012 - 15:08:42
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




(((( добавил ";" - в результате тоже, что и во втором варианте: "появляется lass="page_item page-item-87">"

в третьем добавил разграничители - список страниц исчез вообще.

wp_list_pages - Выводит список страниц в виде ссылок.
child_of (integer) - Выводит внутренние страницы только одной страницы; используйте ID страницы как значение.

в данном случае, если у страницы есть родительская страница - выводится список внутренних страниц родительской страницы ($post->post_parent)

если у страницы нет родительской - выводится список внутренних страниц текущей страницы ($post->ID)

(Отредактировано автором: 09 Апреля, 2012 - 15:09:15)

 
 Top
zypikov
Отправлено: 09 Апреля, 2012 - 16:27:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




neuk пишет:
всё работает, получается список:
* школа 1
* школа 2
* школа 3 и т. д.


Так это список ссылок?

Я сначала не понял..выходит $children - сформированный список ссылок. Кроче тогда это правда все бред что я и вы написали выше.

Скорее всего post_parent метод объекта присвоенного переменной $post. Можно и регуляркой обработать список ссылок $children. Но мне кажется лучше сформировать его уже в классе. $post чему присваивается?

И какой вам нужен конечный результат? Должен быть этот же список, только без слов "школа"?


-----
У всего есть обратная сторона.
 
 Top
neuk
Отправлено: 09 Апреля, 2012 - 16:42:18
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




zypikov пишет:
Должен быть этот же список, только без слов "школа"?

так точно!

zypikov пишет:
...метод объекта...Можно и регуляркой обработать...сформировать его уже в классе...$post чему присваивается?

моя не понимать(((
 
 Top
zypikov
Отправлено: 09 Апреля, 2012 - 17:32:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




КМСки типа WordPress пока не изучал. Список из базы формируется? Разве нельзя его из этой КМСки отредактировать?

Вообщем мне нужно точно знать, что попадает в $children.
В след посте забейте результат echo $children;

Можете еще попробовать
PHP:
скопировать код в буфер обмена
  1. $children = str_replace("школа", "", $children);    


-----
У всего есть обратная сторона.
 
 Top
neuk
Отправлено: 09 Апреля, 2012 - 17:55:04
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




в базу внесены названия страниц "школа 1" и др. назвать страницу просто "1" я не могу, хотя это решило бы проблему.
далее я создаю меню, которое берет из базы названия страниц, получается:

Школы:
- школа 1
- школа 2
....
- школа 31

выходит слишком громоздко. я же хочу добиться, чтобы меню выглядело примерно так:

Школы:
1 2 3 4 5 6 7
8 9 10 11 12 13 14
...31

zypikov пишет:
В след посте забейте результат echo $children;

если я правильно вас понял, то получается то, что я написал в начале этого поста после получается:
 
 Top
zypikov
Отправлено: 09 Апреля, 2012 - 21:00:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




пардон, мне нужен html-код результата вывода

а что после применения str_replace?


-----
У всего есть обратная сторона.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB