真的在寻找一堆东西。
基本上我要创建的是以下字符串,它只能包含MAX 140个字符(请参阅我要使用的内容):
"Some text here from an XML feed... #tweeted http://bit.ly/123456"
所以我已经有一个$text variable
,其中包含XML Feed中的文本,此文本字符串将始终包含字符串#tweeted
,并且可以是任意长度。
让我们说这个例子有200个字符,包括标签。
我知道需要为...<space>
和http://bit.ly/123456
(共24个字符)腾出空间
删除#hashtag E.g:$removehash = str_replace("#tweeted", " ", $text);
获取长度E.g. $length = strlen($text);
如果超过140个字符,则将其修剪为116。
如果116以下的字符无效,因为有空间...和链接
添加...和网址($ url)。
任何建议,如果您之前已经完成此操作,或者有关如何修剪字符串的任何想法,请删除标签并将字符串添加到字符串的末尾,以便将其限制为最多140个字符,非常感谢。
不确定如何修剪文字?
答案 0 :(得分:2)
PHP的substr函数返回一个字符串的一部分,因此你可以通过
获取字符串的前116个字符。$s = substr( $s, 0, 116 );
听起来你正在使用140字符串+ #tweeted + URL并希望生成不超过140个字符的输出字符串?我会尝试类似的东西:
$s = "Some text here from an XML feed that is 140 chars or less #tweeted http://bit.ly/123456";
$b = explode( "#tweeted", $s );
$txt = trim( $b[0] );
$url = trim( $b[1] );
$txt = substr( $txt, 0, 139 - strlen( $url ) );
$output = $txt . " " . $url;
显然我使用了太多的临时变量,但希望能让它更清晰。如果需要还需要验证输入字符串,否则第一次爆炸将不会返回预期结果。 sub中的139是140 char输出 - 结果字符串中空格的1个char。
substr line考虑到有点URL可能有不同的长度,并且不会盲目地切断116个字符。
答案 1 :(得分:1)
删除主题标签:
// For php 5.3 +
$removeHash = function($var){
return (substr($var, 0, 1) != '#');
};
/*
For php 5.2 use the following
function removeHash($var){
return (substr($var, 0, 1) != '#');
}
$removeHash = 'removeHash';
*/
$textlst = explode(" ", $text);
$removedHashText = implode(" ", array_filter($textlst, $removeHash));
修剪超过140:
if (count($text) > 140){
$url = getUrl(); // what ever this might be
$text = substr($text, 0, 116);
$text .= "... $url";
}