Php 需要帮助排除在文本数组中搜索特定url链接的函数的故障吗
嘿,伙计们,我正在构建一个脚本,通过这个脚本,我试图在twitter文本结果中找到特定的链接 该脚本主要检查文本是否包含url,然后确定该url是否为6个特定url之一,如果匹配,则将原始文本输出到标记为$imgtweets的新数组中 然而问题是,尽管我在数组中有大约4个文本字符串,但其中只有一个匹配并返回到$imgtweets数组中,我很难确定我在哪里犯了错误,任何帮助都会大有帮助 这是我的代码,我必须使数组稍微小一些,但是因为此时不允许我发布超过2个超链接:Php 需要帮助排除在文本数组中搜索特定url链接的函数的故障吗,php,Php,嘿,伙计们,我正在构建一个脚本,通过这个脚本,我试图在twitter文本结果中找到特定的链接 该脚本主要检查文本是否包含url,然后确定该url是否为6个特定url之一,如果匹配,则将原始文本输出到标记为$imgtweets的新数组中 然而问题是,尽管我在数组中有大约4个文本字符串,但其中只有一个匹配并返回到$imgtweets数组中,我很难确定我在哪里犯了错误,任何帮助都会大有帮助 这是我的代码,我必须使数组稍微小一些,但是因为此时不允许我发布超过2个超链接: <?php $tweet
<?php
$tweets = array(
"Photo: therulesofagentleman: http://tumblr.com/xc52sgx6u7",
"http://mypict.me/iysEX So this is Karly. Karly say hello to the world. We've been at this a while when your fans (cont)",
"this is some test text that doesnt contain any links for testing purposes");
$imgtweets = array();
foreach($tweets as $tweet) {
preg_match_all("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", $tweet, $matches, PREG_PATTERN_ORDER);
$tweetlinks = $matches[0];
if (!empty($tweetlinks)){
foreach($tweetlinks as $key => $link) {
if (substr($link,0,14)=="http://lockerz" || substr($link,0,12)=="http://yfrog"
|| substr($link,0,14)=="http://twitpic" || substr($link,0,13)=="http://tumblr"
|| substr($link,0,13)=="http://mypict" || substr($link,0,14)=="http://instagr" )
{
array_push($imgtweets,"$tweet");
}
}
}
}
print_r($imgtweets);
?>
基本上,您可以用以下内容替换所有代码
$hosts = "lockerz|yfrog|twitpic|etc";
$regexp = "~http://($hosts)~";
$img_tweets = preg_grep($regexp, $all_tweets);
您可以使用数组和str_替换,而不是使用substr
$urls = array(*****your urls*****);
foreach($tweets as $tweet)
{
str_replace($urls, '', $tweet, $count);
if ($count)
{
array_push($imgtweets,"$tweet");
}
}
格式太差,太难理解。重试。很抱歉,第一部分代码我无法在网站上正确格式化。在那里,花了一秒钟时间。你仍然可以编辑它,因为它的格式仍然很差。有趣的是,我对php还是有点陌生,非常抱歉,然而,我该如何用这个新函数解析foreach循环的tweets呢?我现在正在查找这个函数,看起来非常有用!我现在就要尝试实现它,看看它给了我什么,非常感谢你的帮助!哇,先生,你真是个天才!谢谢你为我指出了正确的道路,非常感谢!