首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MySQL中,如何从长文本串中提取网址?

在MySQL中,如何从长文本串中提取网址?
EN

Stack Overflow用户
提问于 2015-01-03 06:30:03
回答 4查看 1.4K关注 0票数 3

我正在学习MySQL,并使用phpMyAdmin在我的Wordpress数据库中为一个有成千上万种产品的商店做更改。

我正在尝试做一个快速更新,我拉出一个URL并将其粘贴到我想要添加的短代码中。

目前,我的表中的每一条记录都在一堆其他文本中包含此内容。

代码语言:javascript
复制
<input type="hidden" name="prtks" value="http://domainname/folder/filename.mp3"/>

我希望保留此字段并添加到同一字段中的每个记录中

代码语言:javascript
复制
[sc_embed_player_template1 fileurl="url from above"/"]

这是相当棘手的,因为我知道我可以通过计算字符找到一个子字符串,但是有没有办法从http一直拉到最终的.mp3?

非常感谢!

EN

回答 4

Stack Overflow用户

发布于 2015-01-06 23:56:47

这不是在MySQL中实现的,但如果我没理解错的话,您似乎是在谈论通过执行以下操作在php文件中执行此操作:

代码语言:javascript
复制
<?php 
    $url = '<input type="hidden" name="prtks" value="http://domainname/folder/filename.mp3"/>';
    $parts = explode('"', $url);
    echo 'URL: '.$parts[5];
?>

它使用php字符将字符串分解成一个基于“explode()”的数组。

然后你就可以回想第六部分($parts[5])

票数 0
EN

Stack Overflow用户

发布于 2015-03-29 11:10:42

为什么不使用一个简单的正则表达式来提取url呢?

代码语言:javascript
复制
$str = '<input type="hidden" name="prtks" value="http://domainname/folder/filename.mp3"/>';
preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $str, $match, PREG_PATTERN_ORDER);
var_dump($match[0][0]);
// string 'http://domainname/folder/filename.mp3' (length=37)
票数 0
EN

Stack Overflow用户

发布于 2015-03-29 12:37:05

代码语言:javascript
复制
<?php

function urltxt($string)
{

$regex = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i"; ///(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
preg_match_all($regex, $string, $matches);
  return $matches[0];
}

$url = urltxt($sqlresult);
echo $url[0];

//this way its more easier i guess
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27749380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档