Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [php]Сокращение текста либо перенос строк (https://forum.antichat.xyz/showthread.php?t=140591)

qW1zer 10.09.2009 18:57

[php]Сокращение текста либо перенос строк
 
Здравствуйте,подскажите пожалуйста как можно перенести текст(на строку) при выводе на картинку,то есть,есть картинка я на нее вывожу полученный парсером заголовок с сайта,но если заголовок длинный он уходит за грани картинки!
Как можно сделать перенос на след. строку или сделать сокращение например если в заголовке больше 200 знаков он делал что-то подобное:
Здесь название заголовка и сокращение. . . .
Заранее спасибо

L I G A 10.09.2009 19:06

PHP код:

<?php

$str
='111111111112222222223333333333333344hhhhhhhhhhhhhhhhhhh4444444444444444';
 
$max=32;//макс длина строки

for ($i=0;$i<strlen($str);$i++) { 
  if ((
$i+1)%$max==0) {
echo 
$str[$i]. "<br>"
  }else{
 echo 
$str[$i]; 
}   

}

?>


qW1zer 10.09.2009 19:09

Спасибо большое

qW1zer 10.09.2009 19:33

Странно почему-то не работает!Пишет "parse error" в 13 строке,а 13 строка это "?>"

d_x 10.09.2009 19:36

http://ru.php.net/manual/en/function.wordwrap.php

Pashkela 10.09.2009 19:36

Еще одну } снизу добавь, очередной недостаток написания кода "ахалай махалай пох"

У него for незакрыт

qW1zer 10.09.2009 19:39

Спасибо,теперь работает!

qW1zer 10.09.2009 20:12

Проблема с парсингом
 
С одним разобрался теперь другая проблема,помогите последний раз на сегодня!Чтобы не создавать тему пишу здесь
Вот код:
PHP код:

<?php $parsl file_get_contents("http://l1nux.ru/");//Собираем массив со страницы preg_match_all('|<div class="myLink">(.+)</div>|',$parsl,$link);//Загребаем из массива то что между дивом $glink=$link[1][rand(0,0)];//Забираем последнюю ссылку из массива //Next parsing $parsc = file_get_contents("$glink");//Парсим полученную ссылку в массив preg_match_all('|<div class="pmsg">(.+)</div>|',$parsc,$cmt);//Загребаем все между дивом $comment=$cmt[1][rand(0,0)];//Забираем из массива последний комент echo $comment;//Выводим комент ?>

Код:

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in C:\xampp\www\news\test.php on line 6
- Текст ошибки,в чем проблем не пойму!Возможно из-за того что используется повторение,но по идее не должно!Помогите новичку

L I G A 10.09.2009 20:21

что во время ошибки стояло
file_get_contents(тут)?

qW1zer 10.09.2009 20:23

в первом - http://l1nux.ru
во втором - $glink

qW1zer 10.09.2009 20:24

то есть как все происходит
В первом он парсит страницу и забирает последнюю ссылку расположенную между тегом <div с классом myLink>
а втором парсит полученную ссылку и оттуда забирает текст между тегом <div с классом pmsg>

qW1zer 10.09.2009 21:18

Очень нужно!Помогите пожалуйста

Deathdreams 10.09.2009 21:20

Исходник в студию

qW1zer 10.09.2009 21:29

На 1 странице предпоследний пост

FireFenix 10.09.2009 22:19

Цитата:

Сообщение от qW1zer
На 1 странице предпоследний пост

Чес слово... мало того что ты не удосужился отформатить код, так ещё и наговногодил шо ппц
Я бы тебя покарал!!!
PHP код:

file_get_contents("$glink");
$comment $cmt[1][rand(0,0)]; 

Вот нафига брать переменную в кавычки?
и какой смысл rand(0,0)? это вообще меня убило

Если просто нужно собрать все каменты с сайта, то вот нормально оформленный код
PHP код:

<?php

function get_site($site)
{
  
//Получаем контент страницы и меняем кодировку UTF-8 -> cp1251
  
return iconv('UTF-8''WINDOWS-1251'file_get_contents($site));
}

//Получаем контент страницы
$content get_site('http://l1nux.ru/');

//Парсим контент страницы на дивы
preg_match_all('/<div class="myLink"[^>]*>(.*?)<\/div>/ims'$content$links);

//Обрабатываем все ссылки в цикле
foreach($links[1] as $link)
{
  
//Получаем контент страницы по ссылке
  
$content get_site($link);

  
//Парсим контент страницы на дивы
  
preg_match_all('/<div class="pmsg">(.*?)<\/div>/ims'$content$comment);
  
  
//Выводим ссылку
  
echo('Ссылка : <a href="' $link '">' $link '</a><br><br>');
  
  
//Выводим комментарии в цикле с новой строки
  
foreach($comment[1] as $value)
  {
    echo(
$value '<br>');
  }
  
  
//Выводим разделение между ссылками
  
echo('<hr>');
}

?>


qW1zer 10.09.2009 22:24

Спасибо!Просто я начинающий,изначально выводил просто заголовок новости на картинку,то есть информер для подписи!А потом решил сделать вывод последнего комента!
Спасибо большое за разъяснение и помощь нубу))


Время: 11:20