PHP 将 html 标记添加到第一个单词
PHP add html tag to first word
尝试在 WooCommerce 简短描述中的每个新行的第一个单词周围添加 HTML 标签,并验证该文件是否存在。如果存在,它将输出 link.
我试过这个:
$string = $short_description;
$keys = array('a1', 'a2', 'a3');
$patterns = array();
foreach($keys as $key)
$patterns[] = '/\b('.$key.')\b/i';
echo preg_replace($patterns, '<a href="https://www.example.com/media/'.$product->get_sku().'/'.$product->get_sku().'[=12=].pdf">[=12=]</a>', $string);
$url = preg_replace($patterns, 'https://www.example.com/media/' .$product->get_sku(). '/' .$product->get_sku(). '[=12=].pdf', $string);
$handle = @fopen($url,'r');
if($handle !== false){ ?>
<?php echo preg_replace($patterns, '<li><a href="https://www.example.com/media/'.$product->get_sku().'/'.$product->get_sku().'[=12=].pdf">[=12=]</a></li>', $string);?>
<?php } else {?>
<?php echo preg_replace($patterns, '<li>[=12=]</li>', $string);?>
这是我能得到的最接近的结果,限制是您需要添加所有需要更改的单词(总共 200+)并且验证 $url 无法正常工作也回显 $string。
那么我怎样才能让 $url 正确,或者是否有更好的方法将 html 标签包装到每个新行的第一个单词?
可以使用:
$s = strip_tags($short_description, '<br>');
$rows = explode( "\n", $s );
foreach( $rows as $r ){
echo preg_replace('/^([^ ]*)/', '', $r);
}
然后
if is_readable
是否输出link
尝试在 WooCommerce 简短描述中的每个新行的第一个单词周围添加 HTML 标签,并验证该文件是否存在。如果存在,它将输出 link.
我试过这个:
$string = $short_description;
$keys = array('a1', 'a2', 'a3');
$patterns = array();
foreach($keys as $key)
$patterns[] = '/\b('.$key.')\b/i';
echo preg_replace($patterns, '<a href="https://www.example.com/media/'.$product->get_sku().'/'.$product->get_sku().'[=12=].pdf">[=12=]</a>', $string);
$url = preg_replace($patterns, 'https://www.example.com/media/' .$product->get_sku(). '/' .$product->get_sku(). '[=12=].pdf', $string);
$handle = @fopen($url,'r');
if($handle !== false){ ?>
<?php echo preg_replace($patterns, '<li><a href="https://www.example.com/media/'.$product->get_sku().'/'.$product->get_sku().'[=12=].pdf">[=12=]</a></li>', $string);?>
<?php } else {?>
<?php echo preg_replace($patterns, '<li>[=12=]</li>', $string);?>
这是我能得到的最接近的结果,限制是您需要添加所有需要更改的单词(总共 200+)并且验证 $url 无法正常工作也回显 $string。
那么我怎样才能让 $url 正确,或者是否有更好的方法将 html 标签包装到每个新行的第一个单词?
可以使用:
$s = strip_tags($short_description, '<br>');
$rows = explode( "\n", $s );
foreach( $rows as $r ){
echo preg_replace('/^([^ ]*)/', '', $r);
}
然后
if is_readable
是否输出link