Php 用title属性替换img标记
我有一个包含以下内容的HTML字符串:Php 用title属性替换img标记,php,regex,Php,Regex,我有一个包含以下内容的HTML字符串: <p>your name : <img title="##name##" src="name.jpg"/></p> <p>your lastname: <img title="##lastname##" src="lastname.jpg"/></p> <p>your email : <img title="##email##" src="email.jpg"/>
<p>your name :
<img title="##name##" src="name.jpg"/></p>
<p>your lastname:
<img title="##lastname##" src="lastname.jpg"/></p>
<p>your email :
<img title="##email##" src="email.jpg"/></p>
<p>submit
<img title="submit" src="submit.jpg"/></p>
最好的方法是什么 因此,首先要选择以下区域:
以“
然后,在提取的块中,您希望找到以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。
通过这样写出来,我希望您能找到这样做的正则表达式。因此,首先要选择以下任何区域:
以“
开头
然后,在提取的块中,您希望找到以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。
通过这样写出来,我希望您能找到这样做的正则表达式。因此,首先要选择以下任何区域:
以“
开头
然后,在提取的块中,您希望找到以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。
通过这样写出来,我希望您能找到这样做的正则表达式。因此,首先要选择以下任何区域:
以“
开头
然后,在提取的块中,您希望找到以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。
通过这样写出来,我希望您能找到实现这一点的正则表达式。使用HTML解析器来完成这项任务。下面是一个使用内置类的解决方案:
$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$tags = $dom->getElementsByTagName('img');
$length = $tags->length;
for ($i=$length-1; $i>=0; $i--) {
$tag = $tags->item($i);
$title = $tag->getAttribute('title');
// check if title is of the format '##...##'
if (preg_match('/##\w+?##/', $title)) {
$textNode = $dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode, $tag);
}
}
$html = preg_replace(
'~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '',
$dom->saveHTML()
);
echo $html;
您的姓名:
##名字##
您的姓氏:
##姓氏##
您的电子邮件:
##电子邮件##
提交
使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:
$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$tags = $dom->getElementsByTagName('img');
$length = $tags->length;
for ($i=$length-1; $i>=0; $i--) {
$tag = $tags->item($i);
$title = $tag->getAttribute('title');
// check if title is of the format '##...##'
if (preg_match('/##\w+?##/', $title)) {
$textNode = $dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode, $tag);
}
}
$html = preg_replace(
'~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '',
$dom->saveHTML()
);
echo $html;
您的姓名:
##名字##
您的姓氏:
##姓氏##
您的电子邮件:
##电子邮件##
提交
使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:
$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$tags = $dom->getElementsByTagName('img');
$length = $tags->length;
for ($i=$length-1; $i>=0; $i--) {
$tag = $tags->item($i);
$title = $tag->getAttribute('title');
// check if title is of the format '##...##'
if (preg_match('/##\w+?##/', $title)) {
$textNode = $dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode, $tag);
}
}
$html = preg_replace(
'~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '',
$dom->saveHTML()
);
echo $html;
您的姓名:
##名字##
您的姓氏:
##姓氏##
您的电子邮件:
##电子邮件##
提交
使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:
$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$tags = $dom->getElementsByTagName('img');
$length = $tags->length;
for ($i=$length-1; $i>=0; $i--) {
$tag = $tags->item($i);
$title = $tag->getAttribute('title');
// check if title is of the format '##...##'
if (preg_match('/##\w+?##/', $title)) {
$textNode = $dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode, $tag);
}
}
$html = preg_replace(
'~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '',
$dom->saveHTML()
);
echo $html;
您的姓名:
##名字##
您的姓氏:
##姓氏##
您的电子邮件:
##电子邮件##
提交
试试这个
<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个
<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个
<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个
<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
我想你可以试试这个:
$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);
我想你可以试试这个:
$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);
我想你可以试试这个:
$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);
我想你可以试试这个:
$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);
谢谢,为什么###lastname###不替换也不工作!?很好,但我认为在检查格式方面,这个区域是很好的工作/##([^#]*)##/@ArazJafaripur:你为什么这么认为?正则表达式匹配(并捕获)##
,后跟任何非#
的内容,直到它找到##
-在这种情况下,您不想在正则表达式中捕获标题-您已经使用getAttribute()
方法提取了标题属性:)谢谢,为什么#lastname#不替换并且不工作!?很好,但我认为在检查f时