我正在学习MySQL并使用phpMyAdmin在我的Wordpress数据库中为包含数千种产品的商店进行更改。
我正在尝试快速更新,我在其中提取网址并将其粘贴到我想要添加的短代码中。
目前,我的表中的每条记录都在其他文本中的某处。
<input type="hidden" name="prtks" value="http://domainname/folder/filename.mp3"/>
我想保留它并添加到同一字段中的每条记录
[sc_embed_player_template1 fileurl="url from above"/"]
它相当棘手,因为我知道我可以通过计算字符来找到一个子字符串,但有没有办法将完整的URL从http一直拉到最终的.mp3?
非常感谢!
答案 0 :(得分:0)
这不是MySQL中的问题,但如果我理解你的问题,你似乎就是在谈论在php文件中执行此操作时,通过执行以下操作:
<?php
$url = '<input type="hidden" name="prtks" value="http://domainname/folder/filename.mp3"/>';
$parts = explode('"', $url);
echo 'URL: '.$parts[5];
?>
这使用php explode()
将字符串分解为基于&#34;的数组。字符。
然后您可以回显第6部分($parts[5]
)
答案 1 :(得分:0)
为什么不使用简单的正则表达式来提取网址?
$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)
答案 2 :(得分:0)
<?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
?>
答案 3 :(得分:0)
如果文件扩展名都是3个字符,您可以使用像http://*\.{3}
这样的正则表达式来查找URL,但除非它们有某种分隔符,否则很难找到。如果它们不同,您可以尝试http://*\.(mp3|html|gif|png|exe|php|aif|wav)
并列出所有可能的扩展名。您还可以尝试仅列出超过3个字符的扩展程序:http://*\.({3}|html|jpeg|aiff|torrent)
。