PHP 如果 URL 包含特定字母,则从字符串中删除 URL
PHP remove URL from string if URL contains specific letters
我有一个字符串,想删除任何 URL 图片 URL,例如。包含一个 .jpg 结尾。
我能够使用 preg_match_all 和 strpos 从字符串中提取和分离图像 URL,但现在我需要 "remove" 显示的图像 URL 来自字符串本身(以便我可以将图像与字符串分开处理)
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $string, $match);
foreach ($match[0] as $link){
$strpos = strpos($link, '.jpg');
if ($strpos !== false){
echo $link;
break;
}
}
输入
$string = 'This is a string with a URL http://google.com and an image URL http://website.com/image.jpg';
期望的输出:
$string 'This is the string with a URL http://google.com and an image URL';
$image = '<img src="http://website.com/image.jpg"/>';
你可以使用til方法来检查字符串,
$list = 您要检查的内容
$endOfString = 您要查找的内容
function endsWith($list, $endOfString)
{
$length = strlen($endOfString);
if ($length == 0) {
return true;
}
return (substr($list, -$length) === $endOfString);
}
匹配时的字符串替换可以为您完成这个
<?php
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\(\w+\)|([^,[:punct:]\s]|/))#', $string, $match);
foreach ($match[0] as $link){
if (strpos($link, '.jpg') !== false){
//Format the image url to an image element
$image = '<img src="'.$link.'" />';
//To substitute the image into the string
echo str_replace($link, $image, $string);
//To remove the link from original text:
echo str_replace($link, '', $string);
break;
}
}
希望对您有所帮助。
编辑:
为您删除不必要的变量使用,无需存储上例中的 strpos 结果。
编辑 2:修复了 $link 字符串连接的语法错误。
我有一个字符串,想删除任何 URL 图片 URL,例如。包含一个 .jpg 结尾。
我能够使用 preg_match_all 和 strpos 从字符串中提取和分离图像 URL,但现在我需要 "remove" 显示的图像 URL 来自字符串本身(以便我可以将图像与字符串分开处理)
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $string, $match);
foreach ($match[0] as $link){
$strpos = strpos($link, '.jpg');
if ($strpos !== false){
echo $link;
break;
}
}
输入
$string = 'This is a string with a URL http://google.com and an image URL http://website.com/image.jpg';
期望的输出:
$string 'This is the string with a URL http://google.com and an image URL';
$image = '<img src="http://website.com/image.jpg"/>';
你可以使用til方法来检查字符串, $list = 您要检查的内容 $endOfString = 您要查找的内容
function endsWith($list, $endOfString)
{
$length = strlen($endOfString);
if ($length == 0) {
return true;
}
return (substr($list, -$length) === $endOfString);
}
匹配时的字符串替换可以为您完成这个
<?php
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\(\w+\)|([^,[:punct:]\s]|/))#', $string, $match);
foreach ($match[0] as $link){
if (strpos($link, '.jpg') !== false){
//Format the image url to an image element
$image = '<img src="'.$link.'" />';
//To substitute the image into the string
echo str_replace($link, $image, $string);
//To remove the link from original text:
echo str_replace($link, '', $string);
break;
}
}
希望对您有所帮助。
编辑:
为您删除不必要的变量使用,无需存储上例中的 strpos 结果。
编辑 2:修复了 $link 字符串连接的语法错误。