我允许用户在textarea中输入文本,但是在*https://example.com/image.png*
(由星号包围的URL)写入时,需要获取URL(它应该始终是URL)然后它将插入将其转换为<img />
标记,然后将URL和星号替换为图像标记。
我能够抓住一次这个事件,但我不确定如何多次找到这个。在一个例子中,它将取代原始的:
*https://example.com/image.png*
使用:
<img src="https://example.com/image.png" />
修改
举个简单的例子:
输入:
A load of random text *http://example.com/image.png* some more text. Some more text *http://example.com/image2.jpg* the end.
它需要能够找到两个星号中的每一个并获得内部的内容。
例如:
http://example.com/image.png
http://example.com/image2.jpg
然后我可以使用URL来显示图像。
然后完成这样的事情:
A load of random text <img src="http://example.com/image.png" /> some more text. Some more text <img src="http://example.com/image2.jpg" /> the end.
答案 0 :(得分:6)
这可以使用正则表达式完成:
$string = 'A load of random text *http://example.com/image.png* some more text. Some more text *http://example.com/image2.jpg* the end.';
$pattern = '/\*(.*?)\*/';
$replacement = '<img src="$1" />';
echo preg_replace($pattern, $replacement, $string);
关于模式,\*
匹配文字*
,(.*?)
捕获两颗星之间的任何内容(但由尽可能少的字符组成)。
查看正则表达式here。阅读preg_replace
here上的PHP文档。
如果这接受用户输入,您应该考虑XSS问题。