2012-03-16 6 views
-1
$string = "This is <a href="http://www.google">a</a> string with a link and I want to count the value of href attribute" 

У меня есть строка, и я хочу вывести 10 символов из этой строки в html.Подсчитайте подстроку внутри строки

Проблема в том, что я повторяю 10 символов, но я также подсчитываю символы внутри тега. Я мог бы просто простое объявление с StrLen из "<a href=""></a> ", но я никогда не буду теперь длина значения HREF ATTR Как найти это значение

Edit:.?

На блоге есть отрывок вы видите боковая панель, а не отверстие. Я использую пользовательскую функцию, чтобы получить выдержку, посчитав буквы. Я хочу, чтобы 100 символов из сообщения. Я хочу также сохранить возможную ссылку. Но функция также учитывает символ «< a href = "..."> </a> ", а окончательная строка короче. Я просто хотел узнать длину этого динамически генерируемого значения href, чтобы добавить его к моей переменной длины выдержки.

Является ли это достаточно ясным, или я получу еще один минус?

+0

Я не понимаю, что вы пытаетесь сделать. 'http: // www.google' не является 10 символами (и пропускает tld btw), равно как и' '. Просьба уточнить вопрос. Что вы пытаетесь считать/добиваться? – Gordon

+0

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

+2

Вопросы непонятны. Я думаю, вы хотите считать буквы вместо тегов? – Ben

ответ

2

Используйте функцию strip_tags(), чтобы удалить html внутри, а затем подстройте очищенную строку.

<? 

$string = "i am <a href='http://www.google.com'>a</a> string with links"; 

$clean = strip_tags($string); 

echo substr($clean,0,10); 

?> 
+0

Это была моя догадка тоже. (Я имею в виду, если бы мы получили то, о чем должен был подразумевать этот вопрос) –

+0

Я полагаю, что вопрос был не так хорошо написан, но я уверен, что это решение - это то, что ему нужно, потому что он сказал: «Но я считаю также символы внутри тег". Я не думаю, что он действительно хотел получить длину атрибута href, даже если строка может содержать более одного тега или других атрибутов или других тегов. – kappa

0

Я не уверен, что я понял, что вы пытаетесь сделать, но только идея:

Если вы полный стрип теги из строки и есть что-то вроде «Это строка со ссылкой ... », будет ли это работать? Если да, то вот что вам нужно ...

$string = strip_tags($string); 
0

Блоги содержат якоря, изображения, метки и абзацы.

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

if(!function_exists('excerpt')){ 

    function excerpt($string, $len='300'){ 

     // look for the first instance of a closing paragraph tag 
     // +4 to add the closing tag back, then strip them. 
     $new_string = strip_tags(substr($string, 0, strpos($string, "</p>")+4)); 

     // now shorten the string to the required length. 
     $str = substr($new_string, 0, $len); 

     // find the last space in the string 
     // this will be used as the offset in the last substr 
     // so we dont end up with words like (paragr) 
     $index = strrpos($str, ' '); 

     // finally return the new string and append (...) 
     return substr($str, 0, $index) . '&hellip;'; 

     //you might want to wrap it in a <p> tag when done 
    } 
} 

-

echo htmlspecialchars_decode(excerpt($string, 200)); 
Смежные вопросы