我使用PHP将JSON数据转换为不带HTML标记的excel文件。一切正常,但一些字段ex:field_hcpg包含链接,并将其删除。下面我试着删除所有的HTML标签,除了链接没有运气。请建议如何解决此问题。
下面的代码移动所有HTML标记
fputcsv($fh,["title", "field_tags","field_risk_minimization_type","field_drug_class","field_hcpg","field_patient_card","field_risk_1","field_risk_minimization_type_1", "field_tags_1", "field_specialty_theraputic_area_","field_healthcare_provider_checkl","field_dhpc" ]);
if (is_array($jsonDecoded)) {
foreach ($jsonDecoded as $line) {
if (is_array($line)) {
$data = array_map( 'strip_tags', $line);
fputcsv($fh,$data);
}
}
}
fclose($fh);此脚本是我尝试只保留链接的脚本
fputcsv($fh,["title", "field_tags","field_risk_minimization_type","field_drug_class","field_hcpg","field_patient_card","field_risk_1","field_risk_minimization_type_1", "field_tags_1", "field_specialty_theraputic_area_","field_healthcare_provider_checkl","field_dhpc" ]);
if (is_array($jsonDecoded)) {
foreach ($jsonDecoded as $line) {
if (is_array($line)) {
$data = array_map( 'strip_tags', $line, ['<a>']);
$data = preg_replace('~<a href="(https?://[^"]+)".*?>.*?</a>~', '$1', $data);
$data = preg_replace('~<a href="(?!https?://)[^"]+">(.*?)</a>~', '$1', $data);
fputcsv($fh,$data);
}
}
}最后一个脚本的结果是,这是错误的,因为我需要显示href标记中的文件url
filename.pdf发布于 2021-08-29 01:36:44
要从您的行所在的数组中剥离标记,但保留锚点,您可以尝试
$data = array_map('strip_tags',$line,array_fill(0,count($line),'<a>'));示例假设您的行是一个类似于以下内容的数组
array (
0 => '<b><a href="#">text</a></b>',
1 => '<b><a href="#">text</a></b>',
2 => '<b><a href="#">text</a></b>',
)输出
Array
(
[0] => <a href="#">text</a>
[1] => <a href="#">text</a>
[2] => <a href="#">text</a>
)https://stackoverflow.com/questions/68963321
复制相似问题