Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отредактиромать регулярку
 
 автор: rurgil   (01.09.2014 в 14:19)   письмо автору
 
 

отредактироВать-из. за олечатку

Здравствуйте,отредактируйте пожалуйста сокращение ссылок, так, чтобы одновременно сокращался текст,сезависимо от ссылок.пожалуйста
  <?php 
    
if(preg_match("/(http:\\/\\/www.|www.|http:\\/\\/)(\\S+)/si"$comment$save)) 
    {  
    
$link $save[2];  
    
$link "http://".$link;  
    if(
strlen($link)>40)  
    {  
    
$link substr($link,0,40);  
    
$link $link."...";  
    }  
    
$comment preg_replace("/(http:\\/\\/www.|www.|http:\\/\\/)(\\S+)/si",'<a href="http://\\2"  onclick="this.target=\'target\'">'.$link.'</a>',$comment);   
    }  
    echo 
$comment
?> 

  Ответить  
 
 автор: rurgil   (01.09.2014 в 15:55)   письмо автору
 
   для: rurgil   (01.09.2014 в 14:19)
 

Может collabs?

  Ответить  
 
 автор: Deed   (01.09.2014 в 22:48)   письмо автору
 
   для: rurgil   (01.09.2014 в 15:55)
 

Я ничего не понял.
Напишите примеры: "длинная ссылка", "короткая"... Что есть, и что хотим получить.
Но, если я правильно понял, то:


<?php
   $str
='<h3> Original text</h3>ndfjg варв авф ghgl <a href="http://adidas.com" target="_blank">many text_blah_blah_blah a vacation in the foreign land</a> john hubble. Iron Maiden accept urian heep <a id="ptn_pnh" href="http://dow-johnes.ua/nyce-trading/grown/">http://dow-johnes.ua/nyce-trading/grown/</a> it\'s OK.<br><br><h3>Your cute links</h3>';
   function 
cutelink($link){
     if(
mb_strlen($link[2])>30){
       
$new_text=mb_substr($link[2],0,29);
     }
     else{
       
$new_text=$link[2];
     }
     return 
$link[1].$new_text.$link[3];
   }
   echo 
preg_replace_callback("/(<a[^>]+?>)(.+?)(<\/a>)/ui","cutelink",$str);
?>

  Ответить  
 
 автор: rurgil   (02.09.2014 в 00:41)   письмо автору
 
   для: Deed   (01.09.2014 в 22:48)
 

нет.
хотелось, чтобы сокращался и вступительный текст и последующая ссылка

 
                <?php

$comment 
"rtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtr trtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrt rtrtrtrtrtrtrtrtrtrtrtrtrtrt   http://www.softtime.ru/forum/pstadd.php?id_forum=6&id_theme=91501&id_post=544096";
                    if(
preg_match("/(http:\\/\\/www.|www.|http:\\/\\/)(\\S+)/si"$comment$save))
                    { 
                    
$link $save[2]; 
                    
$link "http://".$link
                    if(
strlen($link)>40
                    { 
                    
$link substr($link,0,40); 
                    
$link $link."..."
                    } 
                    
$comment preg_replace("/(http:\\/\\/www.|www.|http:\\/\\/)(\\S+)/si",'<a href="http://\\2"  onclick="this.target=\'target\'">'.$link.'</a>',$comment);  
                    } 
                    echo 
$comment;
                
?>                 
 

  Ответить  
 
 автор: Deed   (02.09.2014 в 07:10)   письмо автору
 
   для: rurgil   (02.09.2014 в 00:41)
 

Напишите, КАК должна выглядеть строка ПОСЛЕ обработки.

  Ответить  
 
 автор: rurgil   (02.09.2014 в 09:45)   письмо автору
 
   для: Deed   (02.09.2014 в 07:10)
 

Текст останется какой был ,ссылка сократится на 40символов... Вот для текста нужно такоеже сокращение,я в дороге простите.не смог вывести результат.там просто текст с сокращенно ссылкой этой страницы.код совершенно рабочий

  Ответить  
 
 автор: rurgil   (02.09.2014 в 10:06)   письмо автору
 
   для: rurgil   (02.09.2014 в 09:45)
 

http://intro.tin-l.ru/admin/guestbook.php?page=1 вот исход,результат

  Ответить  
 
 автор: Deed   (02.09.2014 в 11:00)   письмо автору
 
   для: rurgil   (02.09.2014 в 10:06)
 

Ну, и чем же не устраивает предложенный мною выше код?

  Ответить  
 
 автор: rurgil   (02.09.2014 в 11:19)   письмо автору
 
   для: Deed   (02.09.2014 в 11:00)
 

Спасибо но расчитывал ввод без тегов

  Ответить  
 
 автор: Deed   (02.09.2014 в 11:48)   письмо автору
 
   для: rurgil   (02.09.2014 в 11:19)
 

Ну, вот так нужно было и говорить.
Если так, то:

<?php
$str
='rtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtr trtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrt rtrtrtrtrtrtrtrtrtrtrtrtrtrt   http://www.softtime.ru/forum/pstadd.php?id_forum=6&id_theme=91501&id_post=54409644545454545454d4tf4gh454hd5fh nfnfhm#ruffertysfbththrfjhytj
rtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtr trtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrt rtrtrtrtrtrtrtrtrtrtrtrtrtrt   http://www.softtime.ru/forum/pstadd.php?id_forum=6&id_theme=91501&id_post=54409644545454545454d4tf4gh454hd5fh nfnfhm#ruffertysfbththrfjhytj'
;
$comment=preg_replace("/(https?:\/\/(www\.)?)(\S{1,39})(\S*)/uis","<a href=\"$1$3$4\">$3</a>",$str);
?>


P.S. Корявый парсер-параноик этого сайта рвет длинные строки без пробелов.

  Ответить  
 
 автор: rurgil   (02.09.2014 в 21:03)   письмо автору
 
   для: Deed   (02.09.2014 в 11:48)
 

Как можно добюавить [[:alnum:]],чтобы сокращался не только ссылочный текст.

  Ответить  
 
 автор: Deed   (03.09.2014 в 10:51)   письмо автору
 
   для: rurgil   (02.09.2014 в 21:03)
 

Сколько слов текста должно остаться?

  Ответить  
 
 автор: rurgil   (03.09.2014 в 12:14)   письмо автору
 
   для: Deed   (03.09.2014 в 10:51)
 

До 50-ти,ой что я несу .10 примерно

  Ответить  
 
 автор: Deed   (03.09.2014 в 20:17)   письмо автору
 
   для: rurgil   (03.09.2014 в 12:14)
 

Завтра что-нибудь придумаем. Сегодня нет времени.

  Ответить  
 
 автор: rurgil   (03.09.2014 в 21:02)   письмо автору
 
   для: Deed   (03.09.2014 в 20:17)
 

Спасибо а подробности целиком выведу.такая была задумка

  Ответить  
 
 автор: deed_worker   (04.09.2014 в 14:49)   письмо автору
 
   для: rurgil   (03.09.2014 в 21:02)
 

Это все решается без регулярки:

<?php
$str
='rtrtrt r trtrtrt rtrtrt rtrt rtrtrtrtrt r trtrtrtrt rtrtr trt rtrt rtrtrtrtr trtrt rtrtrtrtr tr trtrtrtr trt rtrtrt rtrtrt r trtrtrt rtrtrt rtrt rtrtrtrtrt r trtrtrtrt rtrtr trt rtrt rtrtrtrtr trtrt rtrtrtrtr tr trtrtrtr trt rtrtrt rtrtrt r trtrtrt rtrtrt rtrt rtrtrtrtrt r trtrtrtrt rtrtr trt rtrt rtrtrtrtr trtrt rtrtrtrtr tr trtrtrtr trt rtrtrt  http://www.softtime.ru/forum/pstadd.php?id_forum=6&id_theme=91501&id_post=54409644545454545454d4tf4gh454hd5fh nfnfhm#ruffertysfbththrfjhytj r trtrtrt rtrtrtrtrtrtr t rtrtrtrt rtrtr trtrtrt rtrt r trtrtrtrt rtrtrtrtrtrtrt rtrt rt rtrtrtrtr tr trtrtrtrtrt   http://www.softtime.ru/forum/pstadd.php?id_forum=6&id_theme=91501&id_post=54409644545454545454d4tf4gh454hd5fh nfnfhm#ruffertysfbththrfjhytj';
//$comment=preg_replace("/(https?:\/\/(www\.)?)(\S{1,39})(\S*)/uis","<a href=\"$1$3$4\">$3</a>",$str);
$a=explode(' ',$str);
$c="";
$l='';
$j=0;
for(
$i=0;$i<count($a);$i++){
  if(!
mb_strpos($a[$i],'http://')&&$j<11){
    
$c.=' '.$a[$i];
    
$j++;
  }
  elseif(
mb_strpos($a[$i],'http://')===0){
    
$l.=' <a href="'.$a[$i].'">Link</a>';
  }
}
echo 
trim($c.'...'.$l);
?> 


P.S. Забыл пароль от deed...

  Ответить  
 
 автор: rurgil   (04.09.2014 в 17:41)   письмо автору
 
   для: deed_worker   (04.09.2014 в 14:49)
 

Вот это да!огромное спасибо !

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования